Главная страница
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
3-1196861574
Леонид
2007-12-05 16:32
2008.05.11
Delphi и MS SQL


2-1208190577
Shifr
2008-04-14 20:29
2008.05.11
Помогите с заданием


4-1188571688
istok
2007-08-31 18:48
2008.05.11
получить хендл окна...


15-1206609144
Denis__
2008-03-27 12:12
2008.05.11
Edit и звук.


4-1188724269
Rusya
2007-09-02 13:11
2008.05.11
Пункт в меню "Создать"