Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.004 c
15-1245816012
Дмитрий С
2009-06-24 08:00
2009.08.23
Поиск точки


15-1245959313
dmk
2009-06-25 23:48
2009.08.23
15 копеек и куча счастья


11-1203360484
someone
2008-02-18 21:48
2009.08.23
Подскажите когда и как надо освобождать TOpenSaveDialog


15-1244032296
Игорь Шевченко
2009-06-03 16:31
2009.08.23
сделать для формы (фрейма, WinControl) аналог Begin/EndUpdatе


15-1245914217
DVM
2009-06-25 11:16
2009.08.23
Good Quality Applications Built With Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский