Главная страница
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.017 c
3-10598
BigError
2003-08-14 10:13
2003.09.04
Вопрос знатокам QuantumGrid.


3-10576
Serg2000
2003-08-14 16:49
2003.09.04
Есть ли в Interbase/Firebird в хранимых процедурах оператор макро


9-10534
Jedi Knight
2002-10-06 21:06
2003.09.04
Автомат в GlScene


14-10957
alekcey75
2003-08-15 17:54
2003.09.04
элипс


3-10577
Cranium
2003-08-14 16:01
2003.09.04
Запрет перетаскивания столбца в гриде?