Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.07.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
Дядя   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.04 c
2-1182932640
ОН
2007-06-27 12:24
2007.07.22
Создание таблицы в Access


15-1182757847
boriskb
2007-06-25 11:50
2007.07.22
Омские есть?


11-1165928861
Trible
2006-12-12 16:07
2007.07.22
Наследование от TControl. Почему почему нельзя вводить переменные


2-1182919428
Человек
2007-06-27 08:43
2007.07.22
Ошибка в SQL


15-1182405205
webpauk
2007-06-21 09:53
2007.07.22
Эмулятор Raid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский