![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Задача сгенерировать через Edit n-компонентов Button и Shape, потом при нажатий на button1 один из компонентов Shape меняет позицию на 100 в низ к примеру, также с button2, сгенерировать все это получилось, но как теперь зделать чтоб Shape менял позицию?
Код:
var s1:array[1..10] of tshape; d,a:integer; n,i:integer; t1,t2,t3:string;
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var d:integer; B: TButton;
begin
for i := 1 to strtoint(edit1.Text) do
begin
B := TButton.Create(Self);
B.Caption := Format('extragerea'+inttostr(i),[i]);
B.Parent := Self;
B.Height := 23;
B.Width := 100;
B.Left := 10;
B.Top := 10 + i * 25;
end;
for i:= 1 to strtoint(edit1.text) do begin
s1[i]:=tshape.Create(self);
s1[i].Parent:=self;
s1[i].Shape:=stcircle;
s1[i].Width:=30;
s1[i].height:=30;
s1[i].Top:=30;
s1[i].Left:=130+i*30;
randomize;
a:=random(strtoint(edit1.text));
if a=0 then s1[i].Brush.Color:=clred; s1[i].Pen.Color:=clblack;
if a=1 then s1[i].Brush.Color:=clblue; s1[i].Pen.Color:=clgreen;
if a=2 then s1[i].Brush.Color:=clblack; s1[i].Pen.Color:=clred;
end;
end;
end. |
|
#2
|
||||
|
||||
|
Задайте при создании шейпы свойство таг равный переменной i, а у кнопки подключите обработчик жима по ней, и в нём по тагу можно отловить кружочек который нужно передвинуть. Вот подобное по теме
З.Ы. Немного код не рабочий должен быть - здесь Код:
...
if a=0 then s1[i].Brush.Color:=clred; s1[i].Pen.Color:=clblack;
if a=1 then s1[i].Brush.Color:=clblue; s1[i].Pen.Color:=clgreen;
if a=2 then s1[i].Brush.Color:=clblack; s1[i].Pen.Color:=clred;
...Код:
...
with s1[i] do
case Random(StrToInt(Edit1.Text)) of
1: begin Brush.Color:= clBlue; Pen.Color:= clGreen; end;
2: begin Brush.Color:= clBlack; Pen.Color:= clRed; end;
else
begin Brush.Color:= clRed; Pen.Color:= clBlack; end;
end;{case}
...З.Ы.З.Ы. Только сейчас заметил - капшн на кнопках это конечно хорошо, но имя им вменяемое присвоить, да ещё и с приплюснутым счётчиком ещё лучше бы, намного легче потом их искать будет в рантайме и веселей Последний раз редактировалось Alegun, 06.03.2014 в 10:30. |