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

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

вопрос по MDI [D5]


RameS ©   (2006-06-01 10:35:00) 

процедура создания окна примерно такая:


var Child: TfrChild;
begin
child:=TfrChild.Create(Application);
with child do begin
width:=wdth;
height:=hght;
caption:=childName;
end;
end;


вызываю процедуру, когда необходимо, окно нормально создается.. но здесь возникает следующая проблема
дочернее окно должно заполняться информацией, в зависимости от того, из какой базы данных оно было вызвано.. т.е. после создания окна, необходимо ему передавать некоторые значения
как корректно обратиться к созданному окну, задать параметры компонент и передать значения?


RameS   (2006-06-01 14:45:00) [1]

Спасибо Вам!


Сергей М.   (2006-06-01 14:27:00) [2]


> как дочерней форме (при создании) этот параметр обработать


Да как угодно)

TChildForm = class(...)
..
 FParameter: TSomeType;
..
 constructor Create(AOwner: TComponenr; Parameter: TSomeType);
..
end;

constructor TChildForm.Create;
begin
 FParameter := Parameter;
 inherited Create(AOwner);
end;


RameS   (2006-06-01 14:18:00) [3]

Сергей М., тип данных, думаю не так важен (в этом случае для меня)
т.е. мне не важно, будет передано int=1 или string='1'
встал вопрос о том, как дочерней форме (при создании) этот параметр обработать
тем не менее, спасибо


RameS   (2006-06-01 14:16:00) [4]

большое спасибо!
думаю, глобальные переменные вполне подойдут
буду пробовать


Сергей М.   (2006-06-01 14:14:00) [5]

Есть такое понятие в программировании - "тип данных".

Та самая твоя "цифра" может быть передана параметром как литера, как целочисленное значение, как значение в формате с п/з,  как еще черт те что и с боку бантик ...

Это самое "черт те что" и есть "тип данных".

Вопрос в том и был - какой тип данных изволите предпочесть ?


MsGuns   (2006-06-01 14:10:00) [6]

Необязательно создавать конструктор. Любые данные можно передать, например, через определенные в главной форме поля, глобальные переменные, датамодуль и т.д.


RameS   (2006-06-01 14:06:00) [7]

зачем же давать собственное определение, когда у этого "термина" оно уже есть
если я не профессионально высказал свою мысль, я уже говорил, что не профессионал, но суть вопроса, думаю, вполне понятна


Сергей М.   (2006-06-01 14:00:00) [8]


> передавать одну лишь цифру


Ты в состоянии дать собственное определение термину "цифра" ?

Это крайне важно для тебя..


RameS   (2006-06-01 13:53:00) [9]

скажем так... если бы я был профессионалом, не писал бы вопросов в эту ветку
по сему "квэшн" прежний

1) создать собственный конструктор:
child:=TfrChild.Create(Application, <параметр[ы]>);

именно такой собственный конструктор и создан
речь как раз о том, что мне в графе параметры необходимо передавать одну лишь цифру, которая и укажет дочерней форме, какие данные и откуда брать
весь набор данных передавать через параметры этого конструктора довольно громоздко
а проблема в следующем: как реализовать обработку этого параметра после создания дочерней формы?
(на событие OnCreate этой формы, как я понимаю, обработать этот параметр нельзя)


Сергей М.   (2006-06-01 13:34:00) [10]


> RameS   (01.06.06 13:26) [2]


> как это можно реализовать?


Тебе ж уже сказано:


> создать собственный конструктор


Эни квэшнз ?


RameS   (2006-06-01 13:26:00) [11]

спасибо Вам, это существенно облегчает задачу

но здесь возникает второй вопрос..
что, если мне необходимо передать лишь id-номер, который будет использован в child-окне после его создания.. т.е. я передаю цифру 0, 1 или 2
на событие OnCreate у child я эти данные обработать не могу, ведь так?
нужно получив цифру, обработать ее в самом дочернем окне, чтоб не передавать всю необходимую информацию при создании окна
как это можно реализовать?


ЮЮ   (2006-06-01 10:46:00) [12]

1) создать собственный конструктор:
 child:=TfrChild.Create(Application, <параметр[ы]>);

2) у TfrChild описать public св-ва

 child:=TfrChild.Create(Application);
 child.TableName := 'customers.db'


Наверх

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