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

Тема в разделе "MS Visual C++", создана пользователем Guest, 8 авг 2003.

Статус темы:
Закрыта.
  1. Guest

    Guest Гость

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

    Guest Гость

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

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

    Guest Гость

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

    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);

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

    admin Well-Known Member

    Регистрация:
    8 авг 2003
    Сообщения:
    2.811
    Симпатии:
    0
    seltsam
    Хороший приём. Молодец. А главное работает :)
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей