Советы по Delphi


Информация из одной таблицы и набора данных на двух формах


  1. Добавьте на вторую форму (form2) компонент TTable

  • В режиме разработки присвойте этой таблице такие же значения, как и у таблицы, расположенной на form1
  • В секции IMPLEMENTATION у form2 создайте следующий фрагмент кода:
  •     unit form2;
    interface {...} implementation uses form1; {...}

  • Подключите процедуру к OnCreate-событию в form2 (через Инспектор Объектов)
  • Добавьте к этой процедуре следующую строку:
  •     table1 := form1.table1;

    В режиме разработки свяжите все компоненты с table1, расположенным на form1.

    Остается только решить проблему синхронизации. Попробуйте следующее: - На Form1 разместите Table1 разместите DataSource1 установите DataSource1.DataSet := Table1 разместите DataGrid установите DataSource := DataSource1 Ну это все просто и стандартно. Поехали дальше: - На Form2 разместите DataSource1 (#1 для этой формы) разместите любые другие необходимые вам БД-компоненты; укажите у них в качестве источника данных DataSource1 В обработчике события OnCreate для этой формы (например, FormCreate), поместите следующий код:

        With Form1 do begin Form2.DataSource1.DataSet := Table1; end;
    Данный код подключает Table1 на Form1 к DataSource от Form2. После таких действий данные будут отображены на Form2 и будут "синхронизированы" с данными, отображаемыми на Form1 (поскольку в действительности используется одна таблица). Единственное здесь предостережение - если вы используете TDatabase, так как это может быть не то, что вы хотите. Компонент TDatabase не обязателен для получения доступа к базам данных, но, тем не менее, он обеспечивает вас дополнительным контролем в приложениях класса клиент/сервер.

    Таким образом, если приложение не работает в среде клиент/сервер, нет необходимости использовать TDatabase. Все, что вам нужно - TDataSource, TTable и компоненты для работы с базами данных. [001306]




    - Начало -  - Назад -  - Вперед -