Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.22;
Скачать: CL | DM;

Вниз

Диалоговое окно   Найти похожие ветки 

 
Дядя   (2007-06-27 11:00) [0]

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


 
Плохиш ©   (2007-06-27 11:01) [1]


> Дядя   (27.06.07 11:00)  

Оно тебе надо?


 
Ega23 ©   (2007-06-27 11:03) [2]

Какое конкретно окно?
С какими опциями?


 
Правильный Вася   (2007-06-27 11:12) [3]

создать окно, показать


 
iXT ©   (2007-06-27 11:13) [4]

> создать окно, показать

потом отпустить не забыть


 
Правильный Вася   (2007-06-27 11:20) [5]


> потом отпустить не забыть

про это вопроса не было
нотогда еще и на бойню его, в безотходное производство


 
AleksandrR ©   (2007-06-27 11:24) [6]

Создай новую форму
В обработке события кнопки пропиши Form2.Show;


 
Однокамушкин   (2007-06-27 11:26) [7]

1. Создать в design-time форму, например, TMyDlgForm
2. В опциях компилятора выкинуть эту форму из автозагрузки, чтобы места зря не занимала
3. В uses того модуля, где находится кнопка, добавить модуль, содержищий эту форму
4. Написать такой обрабочик для кнопки:

procedure TForm1.Button1Click(Sender: TObject);
var
 Dlg: TMyDlgForm;
begin
 Dlg := TMyDlgForm.Create(Self);
 try
   if Dlg.ShowModal = mrOK then
   begin
     // Здесь делаем то, что надо делать, если пользователь нажал OK, а не Cancel
   end;
 finally
   Dlg.Free;
 end;
end;


 
iXT ©   (2007-06-27 11:27) [8]

> [6] AleksandrR ©   (27.06.07 11:24)
> Создай новую форму
> В обработке события кнопки пропиши Form2.Show;

Как это не красиво. Ведь низя так поступать с диалоговыми :)


 
Дядя   (2007-06-27 11:44) [9]

Однокамушкин, большое спасибо!


 
Ega23 ©   (2007-06-27 11:45) [10]


> Однокамушкин   (27.06.07 11:26) [7]


Одно уточнение:
нафига Dlg := TMyDlgForm.Create(Self);?
Я бв поставил Dlg := TMyDlgForm.Create(nil);


 
Desdechado ©   (2007-06-27 11:53) [11]

Ega23 ©   (27.06.07 11:45) [10]
А я бы поставил Application. Имхо, хозяин должен быть у каждого.


 
Anatoly Podgoretsky ©   (2007-06-27 11:56) [12]

> Ega23  (27.06.2007 11:45:10)  [10]

А он тебе мешает?
А вот зачем нужна переменная не пойму


 
Anatoly Podgoretsky ©   (2007-06-27 11:57) [13]

> Desdechado  (27.06.2007 11:53:11)  [11]

Тот кто создает, тот и хозяин


 
Однокамушкин   (2007-06-27 12:05) [14]


> Ega23 ©   (27.06.07 11:45) [10]
> Я бв поставил Dlg := TMyDlgForm.Create(nil);

На самом деле и я обычно nil ставлю... просто здесь почему-то захотелось написать Self :)))

> Anatoly Podgoretsky ©   (27.06.07 11:56) [12]
> А вот зачем нужна переменная не пойму

А как без переменной? Через with? А если локальную переменную, которую надо использовать внутри with, захочется назвать так же, как поле TMyDlgForm? Запутаться с этим with можно, с некоторых пор предпочитаю его не использовать...


 
Ega23 ©   (2007-06-27 12:17) [15]


> А как без переменной? Через with? А если локальную переменную,
>  которую надо использовать внутри with, захочется назвать
> так же, как поле TMyDlgForm? Запутаться с этим with можно,
>  с некоторых пор предпочитаю его не использовать...


Но у тебя же в файле, где класс TMyDlgForm описан, уже переменная есть...
Хотя можно и через with


 
Desdechado ©   (2007-06-27 12:41) [16]

>  в файле, где класс TMyDlgForm описан, уже переменная есть
Не факт. Я такие глобальные переменные прибиваю сразу. Имхо, это медвежья услуга Борланда - создавать их автоматом.


 
Ega23 ©   (2007-06-27 12:55) [17]


> Имхо, это медвежья услуга Борланда - создавать их автоматом.


Э. Не создавать, а объявлять. Это тебе не С++...  :)


 
Desdechado ©   (2007-06-27 12:58) [18]

> Не создавать, а объявлять.
Да, оговорился. Но оговорка интересная, кстати. В AutoCreateForms тоже по умолчанию формы кидает, тоже ж услуга косолапая.


 
Ega23 ©   (2007-06-27 13:01) [19]


> В AutoCreateForms тоже по умолчанию формы кидает, тоже ж
> услуга косолапая.

А вот с этим согласен. Ненужная вещь.


 
Virgo_Style ©   (2007-06-27 13:15) [20]

Desdechado ©   (27.06.07 12:58) [18]
услуга косолапая

Ega23 ©   (27.06.07 13:01) [19]
Ненужная вещь.


А вы представьте, сколько было бы вопросов, если б ее не было?))


 
Однокамушкин   (2007-06-27 13:18) [21]


> Virgo_Style ©   (27.06.07 13:15) [20]
> А вы представьте, сколько было бы вопросов, если б ее не
> было?))

Зато человек спросил бы, прочитал ответ и понял бы, а так - пишут код, а почему он работает, не понимают...


 
Anatoly Podgoretsky ©   (2007-06-27 13:20) [22]

> Virgo_Style  (27.06.2007 13:15:20)  [20]

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


 
{RASkov} ©   (2007-06-27 14:37) [23]

> А как без переменной? Через with?

procedure TForm1.Button1Click(Sender: TObject);
begin
with TMyDlgForm.Create(nil{self, или еще чего}) do
try
  if ShowModal = mrOK then
  begin
    // Здесь делаем то, что надо делать, если пользователь нажал OK, а не Cancel
  end;
finally
  Free;
end;
end;


Все тоже самое.... почти :) Просто в данном конкретном случае не вижу смысла вообще в переменной....
....локальной, или в той, которая в модуле с формой.... Для таких окон(Модал) она(var) не нужна.... имхо.


 
Alex721 ©   (2007-06-27 15:47) [24]

Хорошая идея проги найдена здесь:

http://www.delux-company.narod.ru/files/MsgBoxWizard.rar



Страницы: 1 вся ветка

Текущий архив: 2007.07.22;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.021 c
3-1177135365
SerMaxx
2007-04-21 10:02
2007.07.22
Вопрос по TQuery, запрос


2-1182798580
Malik
2007-06-25 23:09
2007.07.22
Немогу понять в чём дело???


2-1182953199
Тимофей
2007-06-27 18:06
2007.07.22
StringGrid и DBGrid


15-1182348061
Vendict
2007-06-20 18:01
2007.07.22
Проектная документация


3-1177048463
MZ
2007-04-20 09:54
2007.07.22
Фильтр в DBGridEh