Добрый день или вечер.
Подскажите пожалуйста как правильно создать функцию удаления фигур с формы.
Моих навыков программирования хватило только на написания функции Off которая изменяет параметр Visible, однако мне надо чтобы фигура совсем стиралась с Формы.
И ещё. Деструктор можно использовать для удаления элементов из массива (У меня под каждую фигуру выделен массив). В нем можно реализовать это удаление?
Фрагменты кода
constructor TFigure.create (x1,y1,r1 : integer; Color1 : TColor; TekForm1 : TForm);
begin
x:= x1;
y:= y1;
r:= r1;
Color:= Color1;
TekForm:= TekForm1;
Width:=5;
Visible:=True;
Draw;
end;
procedure TTreug.Draw; //Процедура рисования треугольника
var dx,dy : integer;
begin
TekForm.Canvas.Pen.Color:= Color;
TekForm.Canvas.Pen.Width:= Width;
dy:= round(r/2);
dx:= round(r*cos(pi/6));
TekForm.Canvas.MoveTo(x-dx,y+dy); //поместить карандаш в т1
TekForm.Canvas.LineTo(x,y-r); //линия 1-2
TekForm.Canvas.LineTo(x+dx,y+dy); //линия 2-3
TekForm.Canvas.LineTo(x-dx,y+dy); //линия 3-1
end;
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Ru1:=round(sqrt(sqr(X-Xu1)+sqr(Y-Yu1)));
if (FlagFig1 = True) or (FlagFig2= True) or (FlagFig3= True) or (FlagFig4=True) then
begin
ColorDialog1.Execute; // вызов цветовой палитры
ColorFig:= ColorDialog1.Color; // присвоение цвета из цветовой палитры в переменную ColorFig
if FlagFig1 = True then // Cоздание треугольника
begin
CountFigura:=CountFigura+1;
nTekFigura:=CountFigura-1;
CountTreug:= CountTreug+1;
nTekTreug:= CountTreug-1;
setlength(MTreug,CountTreug); // Увеличить массив МTreug на значение CountTreug
MTreug[nTekTreug]:= TTreug.create(Xu1,Yu1,Ru1,ColorFig,Form1);
FlagFig1:=False;
ListBox1.Items.Add(IntToStr(nTekTreug)+'-Треугольник');
ListBox1.ItemIndex:=nTekTreug;
ListBox1.Selected[nTekTreug];
if (CountTreug>1) then MTreug[nTekTreug-1].pWidth:=1; // Предыдущий треугольник становятся простой(не выделенный)
if CountKrug>0 then lst1.Selected[nTekKrug]:=False;
if CountPrUg>0 then lst2.Selected[nTekPrUg]:=False;
if CountTrap>0 then lst3.Selected[nTekTrap]:=False;
end;
setlength(MTreug,CountTreug); // Увеличить массив МTreug на значение CountTreug
MTreug[nTekTreug]:= TTreug.create(Xu1,Yu1,Ru1,ColorFig,Form1);
Why not settling on games that is fun and at the same time your earning. Well it'll make suspense because the game is well but dude just try it and it gave me hope while pandemic is real rn. https://tellingdad.com/craps-meet-the-dice-game/