Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.08.23;
Скачать: CL | DM;

Вниз

Что делаю не так?   Найти похожие ветки 

 
Новичок   (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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
15-1245437339
Unknown user
2009-06-19 22:48
2009.08.23
DrawGrid, только вместо ячеек - панели


1-1212574524
SergGG
2008-06-04 14:15
2009.08.23
Номер иконки курсора мыши


15-1245949320
Илья_
2009-06-25 21:02
2009.08.23
Сборка компьютера


2-1245820245
novai
2009-06-24 09:10
2009.08.23
Помогите с оптимизацией кода


1-1212569293
[i2e]
2008-06-04 12:48
2009.08.23
ActionManager и меню на его основе. А как сделать Submenu?