Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
7-11010
Maxim Pshevlotsky
2003-06-22 04:14
2003.09.04
Информация в панели Internet Explorer


1-10788
Makhanev A.S.
2003-08-22 08:16
2003.09.04
Как убрать scrollbar ы?


3-10569
M126
2003-08-15 13:04
2003.09.04
Ошибка Query


14-10960
Andryk
2003-08-15 11:40
2003.09.04
Да уж какжый сходит с ума по-своему :о))


14-10899
Феликс
2003-08-15 21:26
2003.09.04
Почему мы не живем своей жизнью?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский