Обмен данными между формами

  • Автор темы Guest
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

Как можно организовать обмен данными между двумя дочерними формами одного приложения. К примуру приложение выдает две формы на экран в одной вводятся данные, в другой строится график.
 
G

Guest

Этого можно добиться, либо через COM, либо через буфер (с посылкой сообщения
в окно приемник об изменении данных), проще посылать сообщение и обрабатывать
процедуру обработки сообщения окна, берете создаете сообщение, что то типа
WM_USER+$500
В окне источнике пишите SendMessage(Окно, WM_USER+$500, LONG (поитер ту дата), 0)

а в окне приемнике
WM_USER+$500 :
Begin
Обработка данных
end
 
G

Guest

Поскольку приложение одно, то данные можно передавать через любую переменную твоего приложения: одна форма пишет в переменную, другая - читает из нее.
 
S

seltsam

ну вообще для доступа к ресурсам с одной формы к другой достаточно прописать в начале твоего cpp-шки или pas-а (для Builder и Delphi соответственно) строчку:

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h" <- вот её ты и дописываешь, чтобы из первой формы иметь доступ к компонентам или переменным второй
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int bbb; <- а так ты должен определить переменную в нужной тебе форме, чтобы читать её в другой.

если тебе нужен доступ, например, к функции нажатия к-либо кнопки на Form2, то ты пишешь в главном коде:
Form2->Button1Click(NULL);

вот в принципе и всё. а как отследить изменение данных и отображать их на зависимой форме - это чисто события надо отслеживать иобрабатывать алгоритм нужный.
 
A

admin

seltsam
Хороший приём. Молодец. А главное работает :)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!