Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник |
Коллекция курьезных вопросов из форумов
KOL и MCK |
KOL и MCK - Компактные программы на Delphi
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

Проблемы с FloodFill [D7, WinXP]


DVBogV ©   (13.03.11 20:23

Добрый вечер, уважаемые знатоки:-)
Дело в том, что я недавно только начал писать программы на Delphy и при написании лабораторной столкнулся с такой проблемой...
Смысл задания такой: нарисовать замОк, закрашенный серым цветом! Перерыл море литературы уже....При заливке с помощью FloodFill заливается вся область экрана...Хотя разрыва в линиях нет...
Код "программы":

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ExtCtrls, Menus;

type
 TRGZ = class(TForm)
   MainMenu1: TMainMenu;
   N1: TMenuItem;
   N2: TMenuItem;
   N3: TMenuItem;
   N4: TMenuItem;
   N5: TMenuItem;
   N6: TMenuItem;
   N7: TMenuItem;
   N8: TMenuItem;
   PopupMenu1: TPopupMenu;
   Y1: TMenuItem;
   N9: TMenuItem;
   N10: TMenuItem;
   procedure N5Click(Sender: TObject);
   procedure N2Click(Sender: TObject);
   procedure N7Click(Sender: TObject);
   procedure N3Click(Sender: TObject);
   procedure N8Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 RGZ: TRGZ;

implementation

{$R *.dfm}

procedure TRGZ.N5Click(Sender: TObject);
begin
Close;
end;

procedure TRGZ.N2Click(Sender: TObject);
var i,j: integer;
begin

With Canvas do begin
RGZ.Canvas.Pen.Color:=clBlack;
RGZ.Canvas.Pen.Width:=2;
RGZ.Canvas.Brush.Color := clRed;
RGZ.Canvas.FloodFill(431, 99, clBlack,fsBorder);
End;

Canvas.MoveTo(500,100);
Canvas.LineTo(500,130);
Canvas.MoveTo(450,98);
Canvas.LineTo(450,130);

Canvas.MoveTo(520,100);
Canvas.LineTo(520,130);
Canvas.MoveTo(430,100);
Canvas.LineTo(430,130);

Canvas.MoveTo(400,130);
Canvas.LineTo(550,130);

Canvas.MoveTo(400,130);
Canvas.LineTo(400,200);
Canvas.MoveTo(550,130);
Canvas.LineTo(550,200);

Canvas.Arc( 430,70,520,130,520,100,430,100 );
Canvas.Arc( 450,90,500,110,500,100,450,100 );
Canvas.Arc( 400,150,550,250,400,200,550,200);

Canvas.MoveTo(485,190);
Canvas.LineTo(490,210);
Canvas.MoveTo(465,190);
Canvas.LineTo(460,210);
Canvas.MoveTo(460,210);
Canvas.LineTo(490,210);

Canvas.Arc( 465,180,485,200,485,190,465,190);
end;

procedure TRGZ.N7Click(Sender: TObject);
begin
ShowMessage('Ðàñ÷åòíî-ãðàôè÷åñêîå çàäàíèå ñòóäåíòà ãðóïïû ÇÏ-71 Áîãàòûðåâà Ä.Â.');
end;

procedure TRGZ.N3Click(Sender: TObject);
begin
PatBlt(RGZ.Canvas.Handle, 0, 0, RGZ.ClientWidth, RGZ.ClientHeight, WHITENESS);
end;

procedure TRGZ.N8Click(Sender: TObject);
Var T:string;
begin
T:='Íàðèñîâàòü íà ôîðìå ïðåäëîæåííîå èçîáðàæåíèå, èñïîëüçóÿ ðàçëè÷íûå ñòèëè è öâåòà äëÿ êèñòè è ïåðà. Äëÿ ðèñîâàíèÿ èñïîëüçîâàòü ñâîéñòâà è ìåòîäû Canvas ôîðìû';
Canvas.TextOut(10,300,T);
end;

end.

Буду очень признателен за помощь!


CrytoGen   (13.03.11 21:39[1]

повеселил


CrytoGen   (13.03.11 21:40[2]

ты сначала заливку делаешь, а потом рисуешь, надо бы наоборот.


DVBogV ©   (14.03.11 05:04[3]

О_о Блин....Я несколько дней убил на то, чтобы понять что не так делаю))))))) Спасибо!


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо