![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание компонентов на форме в запущенном приложении [D7]
alex007 © (2006-06-04 20:10:00)Я хочу сделать программу которая бы создавала различные компоненты по щелчку пользователя на форме в определённом месте. Мой вопрос: как сделать чтобы эти компоненты не "накладывались" друг на друга или же меняли свое местоположение после щелчка?
...
var
i,k,j:integer;
Form1: TForm1;
Checkboxes:array[1..500] of TCheckbox;
obj1: string;
p:tpoint;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
i:=1;
end;
procedure TForm1.Checkbox1Click(Sender: TObject);
begin
click_form('checkbox');
end;
procedure TForm1.click_form(obj: string);
begin
obj1:=obj;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
panel1.Width:=form1.Width-10;
panel1.Width:=form1.height-10;
panel1.Left:=5;
panel1.Top:=5;
end;
procedure TForm1.FormResize(Sender: TObject);
begin
panel1.Width:=form1.Width-20;
panel1.height:=form1.height-56;
panel1.Left:=5;
panel1.Top:=5;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
panel1.Width:=form1.Width-20;
panel1.height:=form1.height-56;
panel1.Left:=5;
panel1.Top:=5;
end;
procedure TForm1.Panel1Click(Sender: TObject);
begin
getcursorpos(p);
if obj1='checkbox' then begin
checkboxes[i]:=TCheckbox.create(panel1);
checkboxes[i].name:='Checkbox'+inttostr(i);
checkboxes[i].Parent:=panel1;
checkboxes[i].Caption:='Ваш текст';
checkboxes[i].left:=p.x-form1.left-4;
checkboxes[i].top:=p.y-form1.top-45;
end;
...
I:=I+1;
end;
end;
end.
Kolan (2006-06-04 21:17:00) [1]
> Мой вопрос: как сделать чтобы эти компоненты не "накладывались"
> друг на друга или же меняли свое местоположение после щелчка?
>
>
Мой ответ - правильно выставляй значенияTopиLeft.