Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2008, 07:53   #1
prizrak1390
-=PriZraK=-
Форумчанин
 
Аватар для prizrak1390
 
Регистрация: 12.12.2007
Сообщений: 399
Вопрос Активная вкладка и контролы на ней...

Доброе время суток.
Возникла небольшая проблема....
Допустим по нажатию на button,создаётся новая вкладка в компоненте PageControl1,и сразу же в этой вкладке создаётся к примеру Webbrowser. Суть проблемы такова...допустим создано вкладок 5 и открыта к примеру 3-я. И если я нажал например на button2,то в url компонента webbrowser на этой страничке,передаётся текст например из edit1.

Ступор в такой мелочи...но я без понятия как обратиться к компоненту на вкладке.
prizrak1390 вне форума Ответить с цитированием
Старый 10.11.2008, 11:27   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А вы, когда создаете на вкладке Webbrowser, присваивайте ему имя "Webbrowser"+PageControl1.TabIn dex (т.е. индексный номер вкладки, на которой вы его создаете (вкладка-родитель)).
Тогда и обращаться к нему будет просто.
mihali4 вне форума Ответить с цитированием
Старый 12.11.2008, 01:13   #3
MalexG
Форумчанин
 
Регистрация: 06.11.2008
Сообщений: 100
По умолчанию

Цитата:
А вы, когда создаете на вкладке Webbrowser, присваивайте ему имя "Webbrowser"+PageControl1.TabIn dex (т.е. индексный номер вкладки, на которой вы его создаете (вкладка-родитель)).
Тогда и обращаться к нему будет просто.
=================================== ==============
Вся беда этого совета в том, что если пользователь закроет одну из вкладок, то изменится порядковый индекс остальных вкладок.
На мой взгляд необходимо в цикле перебирать все контролы активной вкладки и сопоставлять их на соответствие нужному классу контрола. Получив указатель на необходимый контрол, им уже можно располагать как вам заблагорассудится.
MalexG вне форума Ответить с цитированием
Старый 12.11.2008, 01:46   #4
tramvajman
Пользователь
 
Регистрация: 12.11.2008
Сообщений: 10
По умолчанию

Я эту проблему уже когда-то решил так:
Код:
type
  //тут всякие там компоненты и т.д.
  TWB = record
    Sheet:TTabSheet;
    Page:TWebBrowser;
  end;

var
  Form1: TForm1;
  WB:array of TWB;
  N: Integer;

procedure CreateWB;
begin
  Inc(N);
  SetLength(WB,N+1);
  WB[N].Sheet:=TTabSheet.Create(Form1);
  WB[N].Sheet.Parent:=Form1.PageControl1;
  WB[N].Page:=TWebBrowser.Create(Form1);
  WB[N].Page.ParentWindow:=WB[N].Sheet.Handle;
  WB[N].Sheet.PageControl:=Form1.PageControl1;
  WB[N].Page.Align:=alClient;
  WB[N].Page.FullScreen:=true;
  WB[N].Page.Silent:=true;
end;

end;
Потом в обработчике события проверяете какая вкладка активна.
Код:
function WhatWB:integer;
var
  i:integer;
begin
  for i:=1 to n do
    if WB[i].Sheet.Showing then break;
  result:=i;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  WB[WhatWB].Page.Navigate('параметры');
end;
tramvajman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Активная БД GLAZZ БД в Delphi 2 07.10.2008 17:17
Вкладка Com+ Witaliy Компоненты Delphi 0 27.04.2008 16:35
Контролы на baloonhint Toxa Компоненты Delphi 0 06.11.2007 17:33
StringGrid и всё что с ней связано.... GAGARIN-NEW Компоненты Delphi 22 11.10.2007 15:19
Активная папка D-fens Общие вопросы Delphi 2 06.06.2007 12:45