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

Вниз

Подскажите, правильно ли подавляются сообщения об ошибках?   Найти похожие ветки 

 
An software developer   (2008-04-11 12:23) [0]


var y1_corr,y2_corr:Integer;

function is_it_9x:boolean;  //determine is in Windows 95 or 98
type vers=TOSVERSIONINFO;
var v:vers;
begin
result:=true;
 v.dwOSVersionInfoSize:= sizeof(TOSVERSIONINFO);
 GetVersionEx(v);
 if v.dwPlatformId>=2 then result:=false;
end;

procedure TForm1.FormCreate(Sender: TObject);
 type TIsAppThemed = function:BOOL;
 var M:TMessage; DLL: THandle;    IsAppThemed:TIsAppThemed;
begin
 y1_corr:=0; y2_corr:=0; // correct component positions with XP styles

 if NOT is_it_9x then SetErrorMode(1);  //SetErrorMode works only in 2000/XP and higher

 DLL:= LoadLibrary("uxtheme.dll");  // XP library
 if NOT is_it_9x then SetErrorMode(0);  //SetErrorMode works only in 2000/XP and higher
 IF DLL <> 0 THEN
 BEGIN
   @IsAppThemed := GetProcAddress(DLL, "IsAppThemed");

   if  IsAppThemed  then y1_corr:=5;

   IF DLL <>0 THEN FreeLibrary(DLL);

 END;

 Caption:=IntToStr(y1_corr);
end;


Задача: нужно что бы интерфейс программы корректно отображался во всех виндовсах (9x/2000/XP). В XP необходима коррекция при включённых стилях с помощью переменной y1_corr.

Через библиотеку uxtheme.dll определяется, включены ли в XP стили.

Нужно что бы при вызове uxtheme.dll (если ёе нет) не возникало сообщение об ошибках. Я не нашёл куда вставить try..except и использовал SetErrorMode. Вроде работает. Правильно ли блокируются ошибки, нет ли каких подводных камней?


 
Kolan ©   (2008-04-11 12:27) [1]

Отвратительный код. Офирми нормально, ничего не понятно&#133

ЗЫ
 An software developer &#151; an если первая буква гласная&#133


 
Kolan ©   (2008-04-11 12:27) [2]

Оформи


 
An software developer   (2008-04-11 13:04) [3]


BEGIN
 result := true;
 v.dwOSVersionInfoSize := sizeof(TOSVERSIONINFO);
 GetVersionEx(v);
 IF v.dwPlatformId >= 2 THEN result := false;
END;

PROCEDURE TForm1.FormCreate(Sender: TObject);
TYPE TIsAppThemed = FUNCTION: BOOL;
VAR M: TMessage; DLL: THandle; IsAppThemed: TIsAppThemed;
BEGIN
 y1_corr := 0; y2_corr := 0; // correct component positions with XP styles

 IF NOT is_it_9x THEN SetErrorMode(1); //SetErrorMode works only in 2000/XP and higher

 DLL := LoadLibrary("uxtheme.dll"); // XP library
 IF NOT is_it_9x THEN SetErrorMode(0); //SetErrorMode works only in 2000/XP and higher
 IF DLL <> 0 THEN
 BEGIN
   @IsAppThemed := GetProcAddress(DLL, "IsAppThemed");

   IF IsAppThemed THEN y1_corr := 5;

   IF DLL <> 0 THEN FreeLibrary(DLL);

 END;

 Caption := IntToStr(y1_corr);
END;

сформатировано Source formatter"ом


 
Anatoly Podgoretsky ©   (2008-04-11 13:12) [4]

> An software developer  (11.04.2008 13:04:03)  [3]

Какой хреновый форматер.


 
An software developer   (2008-04-11 13:33) [5]


var y1_corr, y2_corr: Integer;

function is_it_9x: boolean; //determine is in Windows 95 or 98
type vers = TOSVERSIONINFO;
var v: vers;
begin
 result := true;
 v.dwOSVersionInfoSize := sizeof(TOSVERSIONINFO);
 GetVersionEx(v);
 if v.dwPlatformId >= 2 then result := false;
end;

procedure TForm1.FormCreate(Sender: TObject);
type TIsAppThemed = function: BOOL;
var M: TMessage; DLL: THandle; IsAppThemed: TIsAppThemed;
begin
 y1_corr := 0; y2_corr := 0;             // correct component positions with XP styles
 if not is_it_9x then SetErrorMode(1);   //SetErrorMode works only in 2000/XP and higher
 DLL := LoadLibrary("uxtheme.dll");      // XP library
 if not is_it_9x then SetErrorMode(0);   //SetErrorMode works only in 2000/XP and higher
 if DLL <> 0 then
 begin
   @IsAppThemed := GetProcAddress(DLL, "IsAppThemed");
   if IsAppThemed then y1_corr := 5;
   if DLL <> 0 then FreeLibrary(DLL);
 end;
 Caption := IntToStr(y1_corr);
end;

сформатировано Delphi formatter"ом



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

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

Наверх




Память: 0.48 MB
Время: 0.018 c
2-1207896329
Guriev
2008-04-11 10:45
2008.05.11
Как прописать "пробел" при нажатии на Enter?


2-1208158875
Наташа
2008-04-14 11:41
2008.05.11
Как предотвратить исчезновение директив и комментариев в uses?


15-1206673504
borisich
2008-03-28 06:05
2008.05.11
нужно ли идти в армию...


15-1206720548
Галинка
2008-03-28 19:09
2008.05.11
Можно ли скопировать файл...


2-1207841263
smartleds
2008-04-10 19:27
2008.05.11
Подскажите в чем может быть причина создаю массив меток таким