Добрый вечер, уважаемые знатоки:-)
Дело в том, что я недавно только начал писать программы на 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
public
end;
var
RGZ: TRGZ;
implementation
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.
Буду очень признателен за помощь!