Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как обратится к свойствам компонента??? [D7, WinXP]


Vardoulacha ©   (2005-09-15 08:11:00) 

вообщем смысл такой:
1) есть PageControl на нем динамически создается TabSheet
2) на TabSheet помещается с помощью InsertControl(Frame); фрейм на котором находится компонент TWebBrowser с именем WB
3) то есть например динамически создали несколько TabSheet с помещенными на них WebBrowser

сам вопрос в следующем: как мне обратится к компоненту WebBrowser (например сделать ему Navigate) который находится на том TabSheet который в данный момент активен?


msguns   (2005-09-15 14:56:00) [1]

Только вот непонятно, за что был убит ни в чем не винный фрэйм ?
Обращение к "нужному" объекту из энного кол-ва динамически созданных из одного класса, легко и просто через св-во Screen.ActiveControl с явным преобразованием к типу объекта


Vardoulacha   (2005-09-15 11:33:00) [2]

все заработало выкинул нафиг Frame пошел он куда подальше (зато приобрел опыт его использования) динамически создаю WebBrowser (раньше тоже сначала сделал динамически создание но потом столкнулся с проблемой как к нему обратится) но теперь научился сейчас расскажу как это сделать:

создание всего что надо :)

procedure TMainForm.butNewClick(Sender: TObject);
var
 TabSheet: TAdvTabSheet;
        j: Integer;
    Flags: OLEVariant;
    WB: TWebBrowser;
begin
 TabSheet:=TAdvTabSheet.Create(Self);
 TabSheet.AdvPageControl:=PageWindows;

 WB:=TWebBrowser.Create(Self);
 with WB do begin
   Align:=alClient;
   Navigate('file:///C:/untitled.html', Flags, Flags, Flags, Flags);
 end;

 with TabSheet do begin
   InsertControl(WB);
   Caption:='123';
   ShowClose:=True;
   OnCanClose:=CloseSheet;
 end;

 inc(i);
end;


ну и соответственно обращение к тому браузеру который активен

procedure TMainForm.Button1Click(Sender: TObject);
var
 Flags: OLEVariant;
    TS: TAdvTabSheet;
begin
 TS:=PageWindows.ActivePage;
 (TS.Controls[0] as TWebBrowser).Navigate('file:///C:/file.htm', Flags, Flags, Flags, Flags);
end;


у меня на табе только один контрол поэтому нет перебора и проверки компонентов


Наверх

Титульная страница Поиск, карта сайта Написать письмо