Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Модальные формы [Delphi, Windows]


Juk ©   (2005-03-12 15:11:00) 

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


Просто Джо   (2005-03-15 18:27:00) [1]

SendMessage


DesWind   (2005-03-15 17:04:00) [2]


> Скажите, каким образом я могу с модальной формы передавать
> значения контролам главной формы?

Я перекрываю ShowModal и получается что-то вроде:


 ...
 procedure ShowModal(var Data: TData);reintroduce;overload;
 ...

 if Form1.ShowModal(Data)=mrOk then
  begin
   //Смотрю что в эту Data напихали
  end;


Anatoly Podgoretsky   (2005-03-15 16:10:00) [3]

Ну я никак не оспариваю твои знания КОЛ, автор недоволен, что перенесли, но я не вижу никаких оснований оставлять там. Никаких намеков на КОЛ в вопросе нет.
В любом случае это не меняет сути, можно передавать с помощью := можно применить более экзотические методы, такие как процедуры. В любом случае пока вопрос об ординарном программирование в Паскале, во всех его вариантах.


ECM   (2005-03-15 15:54:00) [4]

Тогда что такое форма? Класс умеющий строить окно? Хотя я не буду спорить - уже честно говоря подзабыл ВЦЛ.
Тем не менее термин форма в КОЛ (именно в отношении KOLForm) уже сложился - поверьте моему 4-х летнему опыту создания приложений в КОЛ... :)


Anatoly Podgoretsky   (2005-03-15 15:47:00) [5]

Насколько я знаю это не класс, а объектовая модель и работа ведется через АПИ и о ни каких формах и речи быть не может.
Возможно я ошибаюсь, но всегда авторы подчеркивали это, как надстройка над АПИ с зеркальными объектами для визуального программирования.


ECM   (2005-03-15 15:33:00) [6]

KOLForm - это не окно - это класс(только не class a object) для работы с оным


Anatoly Podgoretsky   (2005-03-15 12:58:00) [7]

KOLForm это не TForm, а окно


ECM   (2005-03-15 12:46:00) [8]

Juk   (13.03.05 01:53) [6]
...возмущен своим перемещением
...

2Juk Совет: Когда задаешь вопрос желательно в нем как-то упомянуть KOL... Это отпугнет бдительного модератора ... :)


Juk   (2005-03-13 01:53:00) [9]

2 Anatoly Podgoretsky>
Я к Делфе вообще без претензий, и возмущен своим перемещением из соответствующего форума. А в КОЛ формы есть (см. компонент KOLForm.)


Anatoly Podgoretsky   (2005-03-13 01:41:00) [10]

И откуда формы в КОЛ?


Anatoly Podgoretsky   (2005-03-13 01:40:00) [11]

Это ты претензии КОЛу делай, а здесь Дельфи.


Juk   (2005-03-13 01:39:00) [12]

2 Anatoly Podgoretsky>
Нифига, этот сабж перемещен из конфы по КОЛ. Там это не работает.


Anatoly Podgoretsky   (2005-03-12 18:11:00) [13]

С помощью операции :=


Экспериментатор   (2005-03-12 15:37:00) [14]

Имеется ввиду не закрывая диалог?
Типа кнопки Apply наверно, да?
Если так то передавай в диалог данные при помощи
procedure GetData(var Data);
а передавай данные обратно при помощи
procedure SetData(var Data);

где Data это например

 TPropData = record
   obObject       : TDBGridEh;
   obEdit         : TMyEdit;
   stDataStream   : string;
 end;
перед ShowModal
заполняй структуру, в общем типа:
var
 PropData : TPropData;
begin
 with TfPropForm.Create(nil) do
 try
   PropData.obObject:=DBMyGrid;
   PropData.obEdit:=CounterEdit;
   PropData.stDataStream:='Какие-то данные';
   SetData(PropData);
   if ShowModal=mrOk then
   begin
     GetData(PropGridData);
     {еще что-нибудь}
   end;
 finally
   Free;
 end;
end;

но это не главное.
в методах формы TPropForm ты можешь использовать
TPropData(Data).obObject и т.д. для передачи данных или установки полей объекта не закрывая диалог.

В общем старался объяснить свою мысль как мог.


Наверх

Титульная страница Поиск, карта сайта Написать письмо