Форум: "Начинающим";
Текущий архив: 2009.08.23;
Скачать: [xml.tar.bz2];
ВнизЧто делаю не так? Найти похожие ветки
← →
Новичок (2009-06-22 21:43) [0]Что делаю не так? Нужно на новой вкладке TTabSheet, динамически создать TWebBrowser. Вот код:
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
n:=Length(TabSheet)+1; //количество вкладок
SetLength(TabSheet,n); //увеличить размер массива на 1
TabSheet[n-1]:=TTabSheet.Create(self); //создать вкладку, n-1 т.к. нумерация с 0
TabSheet[n-1].Caption:="Вкладка "+IntToStr(n-1);
TabSheet[n-1].PageControl:=PageControl2;
PageControl2.ActivePage:=TabSheet[n-1]; //сделать активной
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
var
wb:^TWebBrowser;//указатель
begin
New(wb);
wb^:=WebBrowser1;//теперь указатель указывает на старый компонент
WebBrowser1:=TWebBrowser.Create(self);//создаем новый одноименный компонент
TWinControl(WebBrowser1).Parent:=TabSheet;
WebBrowser1.Width:=406;
WebBrowser1.Height:=231;
WebBrowser1.Left:=350;
WebBrowser1.Top:=15;
//WebBrowser1.OnDocumentComplete:=WebBrowser1DocumentComplete;//передаем компоненту все полномочия старого
WebBrowser1.Navigate("www.google.ru");//загружаем страничку в компанент
wb^.Free;//уничтожаем старый компонент по указателю на него
end;
← →
Anatoly Podgoretsky © (2009-06-22 21:47) [1]Хотя бы это, дальше и смотреть не стал.
wb:^TWebBrowser;//указатель
← →
Palladin © (2009-06-22 22:01) [2]
> wb:^TWebBrowser
что значит этот код?
← →
Новичок (2009-06-22 22:05) [3]
>
> > wb:^TWebBrowser
>
>
> что значит этот код?
Указатель на старый компонент
← →
Германн © (2009-06-23 00:31) [4]
> Новичок (22.06.09 22:05) [3]
>
>
> >
> > > wb:^TWebBrowser
> >
> >
> > что значит этот код?
>
> Указатель на старый компонент
>xx : ^SomeObject
было нормой в ТурбоПаскале. Сейчас другие времена.
Надо прочитать хотя бы одну книжку по Дельфи.
← →
Dennis I. Komarov © (2009-06-23 09:12) [5]
procedure TForm1.BitBtn4Click(Sender: TObject);
var
wb: TWebBrowser;
begin
WebBrowser1:=TWebBrowser.Create(self);
TWinControl(WebBrowser1).Parent:=TabSheet;
WebBrowser1.Width:=406;
WebBrowser1.Height:=231;
WebBrowser1.Left:=350;
WebBrowser1.Top:=15;
WebBrowser1.OnDocumentComplete:=WebBrowser1DocumentComplete;
WebBrowser1.Navigate("www.google.ru");
end;
Как-то так. Над выделеным - подумать
← →
Новичок (2009-06-23 15:26) [6]Может кому-то из начинающих интересно будет. Как решил эту проблему я....
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
n:=Length(TabSheet)+1; //количество вкладок
SetLength(TabSheet,n); //увеличить размер массива на 1
TabSheet[n-1]:=TTabSheet.Create(self); //создать вкладку, n-1 т.к. нумерация с 0
TabSheet[n-1].Caption:="Вкладка "+IntToStr(n-1);
TabSheet[n-1].PageControl:=PageControl2;
PageControl2.ActivePage:=TabSheet[n-1]; //сделать активной
CreateWb;
end;
procedure TForm1.CreateWb;
var
wb: TWebBrowser;
begin
WebBrowser1:=TWebBrowser.Create(self);//создаем новый одноименный компонент
TWinControl(WebBrowser1).Parent:=TWinControl(PageControl2.ActivePage); // Отобразить новый Webbrowser на активной странице PageControl
WebBrowser1.Width:=406;
WebBrowser1.Height:=231;
WebBrowser1.Left:=350;
WebBrowser1.Top:=15;
WebBrowser1.Align :=alClient;
WebBrowser1.Navigate(combobox1.Text);//загружаем страничку в компанент
end;
← →
{RASkov} © (2009-06-23 23:58) [7]> [6] Новичок (23.06.09 15:26)
> Как решил эту проблему я
ты ее не решил.... немного видоизменил а код все равно не качественный :)
И зачем в CreateWb; переменная wb?)
Вот это:
> WebBrowser1.Width:=406;
> WebBrowser1.Height:=231;
> WebBrowser1.Left:=350;
> WebBrowser1.Top:=15;
делается вызовом одного лишь метода... но если следом устанавливаешь алигн, то смысл задавать размеры и положение?
← →
Германн © (2009-06-24 00:55) [8]
> {RASkov} © (23.06.09 23:58) [7]
>
> > [6] Новичок (23.06.09 15:26)
> > Как решил эту проблему я
>
> ты ее не решил.... немного видоизменил а код все равно не
> качественный :)
> И зачем в CreateWb; переменная wb?)
Привычка. Точнее "некий перевод" с ТП. Там ведь нужно было что-то передать процедуре New в качестве параметра.
А ещё точнее - Денис виноват. :)
← →
Dennis I. Komarov © (2009-06-24 09:06) [9]
> А ещё точнее - Денис виноват. :)
Аа..а, где? =-O
Я же выделил "подумать"...
← →
Новичок (2009-06-24 14:02) [10]Согласен, что её видоизменил маленько. Но ведь работает! Учиться, учиться и ещё раз учиться! Как завещал великий дедушка Ленин!
← →
Новичок (2009-06-24 14:24) [11]А вот ещё хочу поинтересоваться. Если я динамически создаю WebBrowser, а потом его нужно закрыть. Получается его в массив тоже надо записывать?
← →
Новичок (2009-06-24 16:09) [12]После долгих измываний решил остановиться на этом.
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
n:=Length(TabSheet)+1; //количество вкладок
SetLength(TabSheet,n); //увеличить размер массива на 1
TabSheet[n-1]:=TTabSheet.Create(self); //создать вкладку, n-1 т.к. нумерация с 0
TabSheet[n-1].Caption:="Вкладка "+IntToStr(n-1);
TabSheet[n-1].PageControl:=PageControl2;
PageControl2.ActivePage:=TabSheet[n-1]; //сделать активной
CreateWb;
end;
procedure TForm1.CreateWb;
var WB:TWebBrowser;
begin
WB:=TWebBrowser.Create(tabsheet[n-1]);
tabsheet[n-1].InsertControl(WB);
wb.Align:=alclient;
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.08.23;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.005 c