|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.03.2016, 00:20 | #1 | |
Пользователь
Регистрация: 16.01.2012
Сообщений: 67
|
Помогите правильно составить if > then > else
При создании (OnCreate) формы "О программе" читаю dll и загружаю из него фона для окна.
Если about.dll существует - читаю и загружаю изображение. Если файла не существует - вывожу сообщение. Собственно сам листинг: Код HTML:
procedure TAboutForm.FormCreate(Sender: TObject); var LibHandle: THandle; info: Tbitmap; begin LibHandle:=Loadlibrary('about.dll'); if FileExists('about.dll') then try if LibHandle<>0 then begin info:=TBitmap.Create; info.LoadFromResourceName(LibHandle,'info'); ImageGlobalFon.Canvas.Draw(0,0,info); end; finally end else begin Application.MessageBox ('Библиотека about.dll повреждена или не найдена.', 'Ошибка чтения данных', MB_ICONERROR + MB_OK); Application.Terminate; end; FreeLibrary(LibHandle); end; Если удалить about.dll и создав на его месте какой нибудь файл с таким же именем, получаем системное уведомление: Цитата:
Как вместо этого, использовать своё сообщение - такое же, которое выводится при отсутствии файла? Подскажите пожалуйста. |
|
09.03.2016, 05:06 | #2 |
Форумчанин
Регистрация: 29.10.2015
Сообщений: 273
|
Код:
Код:
Последний раз редактировалось Filka; 09.03.2016 в 05:42. |
09.03.2016, 06:35 | #3 |
Пользователь
Регистрация: 16.01.2012
Сообщений: 67
|
Filka огромное спасибо!)
Уже помогли, со всеми проверками Код HTML:
procedure TAboutForm.FormCreate(Sender: TObject); var LibHandle: hmodule; info: Tbitmap; begin if not fileexists('about.dll') then with application do begin MessageBox('Библиотека about.dll не найдена.', 'Ошибка чтения данных', MB_ICONERROR + MB_OK); Terminate; exit; end; LibHandle := safeLoadlibrary('about.dll', SEM_FAILCRITICALERRORS); if LibHandle = 0 then with application do begin MessageBox('Библиотека about.dll повреждена.', 'Ошибка чтения данных', MB_ICONERROR + MB_OK); Terminate; exit; end; info := Tbitmap.Create; try info.LoadFromResourceName(LibHandle, 'INFO'); except with application do begin MessageBox('Ресурс INFO не найден.', 'Ошибка чтения данных', MB_ICONERROR + MB_OK); Terminate; exit; end; end; ImageGlobalFon.Canvas.Draw(0, 0, info); info.Free; FreeLibrary(LibHandle); end; Последний раз редактировалось tim21701; 09.03.2016 в 07:00. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
помогите правильно составить формулу | Людмила79 | Microsoft Office Excel | 16 | 12.12.2015 18:56 |
Правильно составить БД | conflictogen | PHP | 11 | 13.05.2015 10:03 |
Правильно составить htaccess | mego4el | Помощь студентам | 1 | 14.06.2013 12:17 |
правильно составить формулу | everest88 | Microsoft Office Excel | 7 | 22.02.2011 10:16 |
Не могу правильно составить команду | BoT_T | Общие вопросы Delphi | 5 | 22.09.2010 14:39 |