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

Вниз

Как произвести обмен данными между MDI-окнами   Найти похожие ветки 

 
vita+   (2003-08-11 12:04) [0]

Уважаемые мастера!

Как произвести обмен данными между дочерними окнами MDI. Слезно, очень нужно.


 
Zacho ©   (2003-08-11 12:09) [1]

Какими данными ? Подробнее, плиз.


 
vita+   (2003-08-11 14:55) [2]

В талице перечислены фамилии, должность и их вставить в Label или Table другого окна.


 
Lamer_of_Delphi ©   (2003-08-11 16:23) [3]

unit unit2; //Код дочернего окна
...
procedure TChildForm.Button6Click(Sender: TObject);
begin
MainForm.Label1.Caption:=DataSource1.DataSet.Fields[1].Value;
...
end;
...
Imho :)


 
Vitalygavrilov ©   (2003-08-12 07:42) [4]

Уважаемые Масстера!

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

С уважением Гаврилов В.А.


 
ЮЮ ©   (2003-08-12 07:53) [5]

А если открыто три окна?
А если структуры таблиц не совпадают?


 
Danilka ©   (2003-08-12 07:56) [6]

Vitalygavrilov © (12.08.03 07:42)
Посмотри в сторону TDataModule.

"File" -> "New..." -> "Data Module" -> F1
:))


 
Danilka ©   (2003-08-12 08:00) [7]

Общие для нескольких форм датасеты эффективнее держать в одном модуле, вобщем-то для этого TDataModule и придумали.

Там-же и процедуры обмена данными между датасетами, и еще много чего.


 
Zacho ©   (2003-08-12 08:00) [8]

Не совсем понятно, в чем конкретно проблема. Причем здесь вообще окна ? Данные "находятся" не в окнах, а в компонентах-потомках TDataSet (TTable, TQuery и т.д.) Вот с ними и надо работать.
Предположим, что есть две формы: Tfm1 и Tfm1 (а MDI они или нет, нет никакой разницы) На формах есть компоненты TTable: на fm1 - tbl1, на fm2 - tbl2. По клику на кнопку на fm1 надо вставить текущую запись в из tbl1 в tbl2. Естественно, предпологается, что вторая форма создана и в переменной fm2 находиться указатель на нее. Тогда пишем примерно такой код:
procedure Tfm1.Button1Click(Sender:TObject);
begin
fm2.tbl2.Insert;
fm2.tbl2.Fields[0].Value:=tbl1.Fields[0].Value;
...
fm2.tbl2.Post;
end;


 
Vitalygavrilov ©   (2003-08-12 13:30) [9]

Ну а если мне надо вставить в Edit по типу календаря, нажал на кнопку и получил в Edit выбранную мною фамилию/

С уважением Гаврилов В.А.


 
MMF ©   (2003-08-12 14:42) [10]

Если нужнен подбор (примерно как в 1С), то можно сделать так:
//МДИ форма, которую правит пользователь
Procedure TFormOwner.BtnSelectFIOClick(sender: TObject);
begin
if Not(Assigned(fFIODict)) then fFIODict:=TfFIODict.Create(application);
fFIODict.OwnerHandle:=Handle;
fFIODict.Show;
end;

Procedure TFormOwner.SX_USER_SELECT(var msg: TMessage); message SX_USER_SELECT;
begin
if msg.WParam=glcFIOdict then
EditFIO.Text:=globalStringData;

//форма подбора
Procedure TfFIODict.FormCreate(sender...);
begin
OwnerHandle:=nil;
DictionaryID:=glcFIOdict;

Procedure TfFIODict.GridDblClick(..);
begin
if OwnerHandle<>nil then
begin
globalStringData:=DS.FieldByName("FIO").AsString;
PostMessage(OwnerHandle, SX_USER_SELECT, DictionaryID, 0);
Close;



Страницы: 1 вся ветка

Текущий архив: 2003.09.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
3-10569
M126
2003-08-15 13:04
2003.09.04
Ошибка Query


3-10579
Vanoshka
2003-08-14 16:44
2003.09.04
таблицы


7-11003
-= Demon =-
2003-06-19 17:29
2003.09.04
Как переписать системный файл


14-10869
Soft
2003-08-18 16:26
2003.09.04
Освоить Linux ненамного труднее, чем Windows ХР???


1-10807
BuTyc
2003-08-22 06:43
2003.09.04
Drag&Drop не цепляясь за шапку окна.