Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2008, 19:36   #1
kiber0net0
Пользователь
 
Регистрация: 12.08.2008
Сообщений: 18
По умолчанию Как передать параметр в другое(модальное) окно?

В приложении для работы с БД, одно диалоговое окно должно заносить данные в разные таблицы. В зависимости от таго в какую таблицу зановить данные поменяется только название окна и добавится/убавится пару компонентов на форме.

Идея реализации заключается в следующем:
1. Создать окно с алгоритмом обработки заполненых компонентов вызваного окна.
2. При вызове через параметр указывать какая таблица обрабатывается, соответственно делать видимыми/невидимыми компоненты те которые отличают эти окна и переименовывать заголовок при создании.
3. Для передачи параметра есть две идеи:
а) создать глобальную переменную на главной форме, а на модальной - указать модуль главной формы в самом верху;
б) и из области финтастики, передавать через реестр windos ;


Вопрос:
1. Что порекомендуетее по третьему пункту, может есть более просты способы?
2. (Философский ) На сколько не оптимально использовать реестр по сравнению с переменными(ведь на сколько я понимаю переменная висит в опереативной памяти постоянно, а реестр мы используем только тогда, когда необходимо)?

P.S. Заранее всем спасибо!!!
kiber0net0 вне форума Ответить с цитированием
Старый 21.09.2008, 10:09   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

А чем Вам не нравятся параметры функций ?
Например, что-то вроде этого:
Код:
type
   Tables = (tbTable1, tbTable2);  // Это возможные виды таблиц

function GetData(Table:Tables):TModalResult;

implementation

function GetData(Table:Tables):TModalResult;
begin
   //...
   case Table of
     tbTable1 : {};
     tbTable2 : {};
   end;

   result := Form4.ShowModal;
end;
alexBlack вне форума Ответить с цитированием
Старый 21.09.2008, 10:55   #3
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Сообщений: 224
По умолчанию

Я в таких ситуациях "передаю" нужные мне данные через глобальные переменные-- имхо, удобно.
NikLik вне форума Ответить с цитированием
Старый 21.09.2008, 13:03   #4
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от NikLik Посмотреть сообщение
Я в таких ситуациях "передаю" нужные мне данные через глобальные переменные-- имхо, удобно.
Вопрос не в удобстве.
Возможно, когда Вы потратите пару дней на отладку в попытках понять где меняются Ваши глобальные переменные, Вы откажетесь от этого варианта.

Код:
unit Unit5;
interface

var Count : integer;

implementation

end.

unit Unit4;
interface


implementation

uses unit5;

procedure doMethod;
begin
   Count := 5;
{ Вот здесь !!!!
   Компилятор не скажет, что переменная не объявлена и просто использует глобальную. 
   А если это объект и Вы присвоите nil,  Вы будете долго искать почему в самых неподходящих местах появляется Access violation
   
}
end;

end.

Последний раз редактировалось alexBlack; 21.09.2008 в 13:18.
alexBlack вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать параметр? Иллидан Общие вопросы Delphi 8 12.07.2008 12:57
Параметр Инночка БД в Delphi 7 19.04.2008 15:33
«Окно+символ». Создать класс, представляющий окно в текстовом режиме. RustreX Паскаль, Turbo Pascal, PascalABC.NET 1 11.11.2007 19:28
Изменить имя и уничтожить другое окно! UnD)eaD)Snake Win Api 2 22.07.2007 14:01
Модальное окно из Dll neo1109 Общие вопросы Delphi 0 29.06.2007 11:24