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

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

Заполнение формы до её отображения [D7, 2003]


Страницы:   1 2 3 4

jacksotnik ©   (2011-11-23 16:28:00) 

Всем добрый день.
Вызываю форму так
card.showmodal;
На форме есть эдиты в которые мне надо записать данные до того как форма покажется(чтоб форма открывалась уже заполненная и её можно было редактировать). Знаю решение через глобальные переменные, но как-то неудобно может есть способ попроще


clickmaker   (2011-11-24 12:06:00) [21]

лично я предпочитаю в таких случаях классовый метод Execute с передачей ему и возвратом из него параметров. В виде записи, если последних много


QAZ   (2011-11-24 11:47:00) [22]


> Знаю решение через глобальные переменные, но как-то неудобно
> может есть способ попроще

прикинь,а твоя форма это тоже переменная и О УЖОС - глобальная


Ega23   (2011-11-24 11:19:00) [23]


> Я и говорю что у меня лучше.


Ненаказуемо.


Anatoly Podgoretsky   (2011-11-24 11:13:00) [24]

> Медвежонок Пятачок  (24.11.2011 11:00:44)  [44]

Длиннее и толще.


Медвежонок Пятачок   (2011-11-24 11:00:00) [25]

Я и говорю что у меня лучше.


Ega23   (2011-11-24 10:57:00) [26]

Это твоё сугубо субъективное мнение. Отучайся говорить за всех.


Медвежонок Пятачок   (2011-11-24 10:43:00) [27]

Так я же и говорю, что у него нечитаемый код.
Потому ничего и не видно.


Омлет   (2011-11-24 10:39:00) [28]

> Медвежонок Пятачок ©   (24.11.11 10:28) [40]
> все видно невооруженным глазом


Ничего не видно.


Медвежонок Пятачок   (2011-11-24 10:28:00) [29]

Здесь и без голосовалки все видно невооруженным глазом.
Кода наворочено в полтора-два раза больше, менее читаемого и менее поддерживаемого.


Ega23   (2011-11-24 10:23:00) [30]


> Да везде.


Это твоё сугубо субъективное мнение.
Можешь спецом голосовалку в потрепаловке открыть. Тогда статистика более-менее репрезентативная будет. Пока что твоё слово против моего. Низачот.


Anatoly Podgoretsky   (2011-11-24 10:23:00) [31]

> Омлет  (24.11.2011 10:05:36)  [36]

Можно и первый вариант. Это не ошибка. Хотя второй вариант более
предпочтителен.


Ega23   (2011-11-24 10:22:00) [32]


> if ShowModal = mrOK then


Да, я так и делал раньше. Просто забыл уже - давно модальных форм не создавал... :)


Омлет   (2011-11-24 10:05:00) [33]

> Ega23 ©   (23.11.11 20:12) [30]
> ShowModal;
> if ModalResult = mrOk then


if ShowModal = mrOK then


Медвежонок Пятачок   (2011-11-24 10:02:00) [34]

Да везде.


Ega23   (2011-11-24 09:05:00) [35]


> Ну понятно в общем.
> По всем трем пунктам хуже, но "если критично я могу исправить"


Да где хуже-то?


Медвежонок Пятачок   (2011-11-24 08:33:00) [36]

Ну понятно в общем.
По всем трем пунктам хуже, но "если критично я могу исправить"


Ega23   (2011-11-23 21:15:00) [37]


> 1. допустим что в приложении надо вызывать эту форму в трех
> с половиной местах. у тебя будет повторяться этот код.


Если это действительно настолько критично - то сделаю процедуру.


> 2. неоптимальное тройное копирование памяти lp


Если это действительно настолько критично - буду передавать указатель,  заполнение рекорда значениями повешу на кнопку ОК, уберу с неё ModalResult = mrOK и буду его в обработчике ручками выставлять.


> 3. твои свойства скрывают реализацию от тебя самого как
> от дизайнера формы. Зачем.


С чего это они скрывают реализацию? Наоборот, я всё прекрасно вижу. И потом, в том же сеттере я могу сделать проверку на валидность полученных данных (если треба).


> у меня лучше.


Пока не убедил.


Медвежонок Пятачок   (2011-11-23 20:36:00) [38]

окей.

но все равно еще не то.

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

2. неоптимальное тройное копирование памяти lp

3. твои свойства скрывают реализацию от тебя самого как от дизайнера формы. Зачем.

у меня лучше.


Ega23   (2011-11-23 20:12:00) [39]

Ну, собственно, вся переделка, чтоб как в 13:

procedure TLoginAndPwdForm.btnEditPwdClick(Sender: TObject);
var
 lp: TLoginAndPwd;
begin
 lp := LoginAndPwd;
 with TLoginAndPwdForm.Create(Application) do
   try
     LoginAndPwd := lp;
     ShowModal;
     if ModalResult = mrOk then
     begin
       lp := LoginAndPwd;
       Self.LoginAndPwd := lp;
       //отправляем куда-то
       ChangeLoginDataSomeWhere(lp);
       //Пишем о чем-то куда-то
       WriteToLogAboutSomething(lp);        
     end;
   finally
     Free;
   end;
end;


Медвежонок Пятачок   (2011-11-23 18:59:00) [40]

У тебя версия delphi какая?

у меня любая есть. кроме первой.


Страницы:   1 2 3 4

Наверх

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