type TPosArray = array of TRect;
procedure TForm1.CreateBrowsers(const Positions: TPosArray);
var i, Count: Integer;
begin
Count:=High(Positions);
for i:=0 to Count do
begin
with TWebBrowser.Create(Self) do
begin
Parent:=Self;
Name:='web' + IntToStr(i + 1);
Listbox1.Add(Name, nil);
Left:=Postions.Left;
Top:=Postions.Top;
Width:=Postions.Right - Positions.Left;
Height:=Postions.Bottom - Positions.Top;
Visible:=true;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var Positions: TPosArray;
begin
// Установка позиций...
SetLength(Positions, 10);
Positions[0].Left:=0;
// ... и т.д.
CreateBrowsers(Positions);
end;
Как программно создать компонент?
Есть Form1 и button1 и Листбох1
Мне нужно при нажатии на эту кнопку, что бы на этой форме ПРОГРАММНО создавлись 10 Webbrouser-ов с разными именами, а имена(web1, web2, web3....) заносились в листбох1.
Код:
Примерно так... Это один из вариантов, не больше. Могут быть ошибки - пишу без дельфей под рукой.
Начинает орать на Разные реад онли проперти. Например парент и Имя :(
чтоб до них достучаца, надо пользовать TControl(WB).Parent и TControl(WB).Name..... где WB - созданный TWebBrowser
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
wb: TWebBrowser;
begin
for i:=0 to 10 do begin
wb :=TWebBrowser.Create(Self);
TControl(wb).Parent := Self;
TControl(wb).Name := 'web' + IntToStr(i + 1);;
wb.width:=100;
wb.height:=30;
wb.Left:=i;
wb.Top:=i+10;
// Width:=Postions.Right - Positions.Left;
// Height:=Postions.Bottom - Positions.Top;
Listbox1.items.Add(TControl(wb).Name);
Visible:=true;
end;
end;
var
i: integer;
wb: TWebBrowser;
begin
for i:=0 to 10 do begin
wb :=TWebBrowser.Create(Self);
TControl(wb).Parent := Self;
TControl(wb).Name := 'web' + IntToStr(i + 1);;
wb.width:=100;
wb.height:=30;
wb.Left:=i;
wb.Top:=i+10;
// Width:=Postions.Right - Positions.Left;
// Height:=Postions.Bottom - Positions.Top;
Listbox1.items.Add(TControl(wb).Name);
Visible:=true;
end;
end;
Большое пасиба для "verybadbug".
[COLOR=red][/COLOR]