Текущий архив: 2005.10.23;
Скачать: CL | DM;
ВнизНе срабатывает ModalResult Найти похожие ветки
← →
saNat © (2005-10-03 16:18) [0]Доброго времени суток (о:
Задача участка кода: перед тем как покажется модальное окно (полагаю на обработчике OnShow) прочитать или создать новый файл в случае отсутствия существующего. Если операция не удалась, то требуется отменить открытие окна.Procedure TAppConfigForm.FormShow(Sender:TObject);
Begin
AssignFile(ConfigFile,ExtractFilePath(ParamStr(0)){+"\Config.ISD"});
{$I-}
Reset(ConfigFile);
If IOResult<>0
Then
Begin
Rewrite(ConfigFile);
If IOResult<>0
Then
Begin
MessageDlg("Error",mtError,[mbOk],0);
ModalResult:=mrAbort;
End;
End;
{$I+}
CloseFile(ConfigFile);
End;
Но не работает. В случае ошибки создания файла получаю сообщение о ошибке и работа продолжается дальше. В чем я не прав?
С уважением, ЕВА
← →
Reindeer Moss Eater © (2005-10-03 16:21) [1]>В чем я не прав?
В том, что используешь OnShow
← →
Reindeer Moss Eater © (2005-10-03 16:26) [2]Рисуешь функцию прямо в модуле TAppConfigForm
function ShowModalForm(const AFileName : string) : boolean;
begin
Result := False;
if <что-то_там_с_открытием_файла> then
with TAppConfigForm.Create(Application) do
try
.....
Result := ShowModal = mrOk;
finally
Free;
end;
end;
← →
saNat © (2005-10-03 16:29) [3]Хе-хе... И правда. Как сам то не додумался :(
Спасибо Вам за помощь.
С уважением, ЕВА.
← →
Vladimir88 (2005-10-03 16:45) [4]Ну имхо так не очень хорошо делать, а разве не прокатит в OnShow AppConfigForm.Close;
← →
Reindeer Moss Eater © (2005-10-03 17:01) [5]И чем же именно нехорошо?
← →
saNat © (2005-10-03 17:16) [6]
> Vladimir88 (03.10.05 16:45) [4]
Не прокатит.
> Reindeer Moss Eater © (03.10.05 17:01) [5]
Главное идея :) Решение благодаря ей нашел
← →
Reindeer Moss Eater © (2005-10-03 17:26) [7]Нафига плести кружева из обработчиков событий, когда удобно и логично иметь линейный алгоритм какого-то процесса?
Нужно отредактировать какие-то сеттинги - вызываешь в любом месте кода процедуру или функцию (не заботясь о том, какой именно класс формы редактирует настройки) - и получаешь результат отредактировано/нет.
Просто и прямолинейно.
Вместо того, что бы помнить, что надо создать экземпляр формы такого то класса, сделать ей ShowModal. Вспомнить, что файл читается в обработчике OnShow и так далее....
Страницы: 1 вся ветка
Текущий архив: 2005.10.23;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.045 c