Форум: "Базы";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];
ВнизКак произвести обмен данными между 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.023 c