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

Вниз

Почему? Value assigned to ... never used   Найти похожие ветки 

 
SQLEX ©   (2011-12-17 22:24) [0]

Недавно был такой вопрос, но наоборот
Тут есть тоже защищенный блок, теоретически может быть неопределен result. Правильно?
Однако пишет так:

 begin
//    result:=0; //[Hint] Unit1.pas(90): Value assigned to "GetSystemPalette" never used
   Focus := GetFocus;
   DC:=GetDC(Focus);
   try
     PaletteSize := GetDeviceCaps(DC, SIZEPALETTE);
     LogSize := SizeOf(TLogPalette) + (PaletteSize-1)*SizeOf(TPaletteEntry);
     GetMem(LogPalette, LogSize);
     try
       with LogPalette^ do
       begin
         palVersion := $0300;
         palNumEntries := PaletteSize;
         GetSystemPaletteEntries(DC, 0, PaletteSize, palPalEntry);
       end;
       result := CreatePalette(LogPalette^);
     finally
       FreeMem(LogPalette, LogSize);
     end;
   finally
     ReleaseDC(Focus, DC);
   end;
 end;


 
SQLEX ©   (2011-12-17 22:28) [1]

упс, не скопировалось начало

 function GetSystemPalette : HPalette;
 var
   PaletteSize : integer;
   LogSize : integer;
   LogPalette : PLogPalette;
   DC : HDC;
   Focus : HWND;
begin


 
Anatoly Podgoretsky ©   (2011-12-17 23:01) [2]

> SQLEX  (17.12.2011 22:24:00)  [0]

Конечно не использыется, поскольку дальше заменяется result :=
CreatePalette(LogPalette^);


 
SQLEX ©   (2011-12-17 23:04) [3]

ну да,
но до этого же было дважды вхождение в блок try
при ошибке в getmem, например, возврат будет неопределен


 
Anatoly Podgoretsky ©   (2011-12-17 23:12) [4]

> SQLEX  (17.12.2011 23:04:03)  [3]

А это будет уже другое предупреждение, которое сейчас выдать нельзя.


 
SQLEX ©   (2011-12-18 00:09) [5]

а с другой стороны, когда коментим первую строку -
нет никакого предупреждения, что может не определен результат.
а он может быть не определен. Ведь так?

А если писать первым же делом result :=  - то есть предупреждение о "лишнем присваивании"


 
Плохиш ©   (2011-12-18 00:09) [6]


> SQLEX ©   (17.12.11 23:04) [3]
>
> ну да,
> но до этого же было дважды вхождение в блок try
> при ошибке в getmem, например, возврат будет неопределен

При исключение результат данной функции никого не интересует, ибо вызывающий код управления не получит, а будет искаться ближайший следующий по коду обработчик исключительных ситуаций. Ибо это есть единственно верный и божественный путь, описанный в библии используемого языка программирования!


 
Плохиш ©   (2011-12-18 00:10) [7]


> SQLEX ©   (18.12.11 00:09) [5]


> а он может быть не определен. Ведь так?

Ты верь компилятору - он умнее тебя.


 
Юрий Зотов ©   (2011-12-19 00:07) [8]


> SQLEX ©   (18.12.11 00:09) [5]
> а с другой стороны, когда коментим первую строку -
> нет никакого предупреждения, что может не определен результат.
> а он может быть не определен. Ведь так?

Нет, не так. Здесь либо результат определен, либо возникает исключение - а при исключении, как уже сказал Плохиш, определенность результата никого не интересует.


 
OW ©   (2011-12-19 08:57) [9]


> Плохиш ©   (18.12.11 00:09) [6]


> Юрий Зотов ©   (19.12.11 00:07) [8]

Спасибо
( можно было и самому догадаться, ступил :) )



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

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

Наверх




Память: 0.49 MB
Время: 0.01 c
15-1323418760
_Андрей_
2011-12-09 12:19
2012.04.08
Наложение прозрачного изображения на сканируемые документы


1-1290252012
Vasena
2010-11-20 14:20
2012.04.08
Windows 7, TaskBar и иконки....


2-1324061957
samsung
2011-12-16 22:59
2012.04.08
timer


15-1323117002
Юрий
2011-12-06 00:30
2012.04.08
С днем рождения ! 6 декабря 2011 вторник


15-1323030602
Юрий
2011-12-05 00:30
2012.04.08
С днем рождения ! 5 декабря 2011 понедельник