Фрагменты кода
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;
|