Форум: "Начинающим";
Текущий архив: 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