![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
вопрос по 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'