Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2012.04.08;
Скачать: [xml.tar.bz2];

Вниз

Почему? 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.003 c
15-1323231809
кирилл
2011-12-07 08:23
2012.04.08
для лисенка


2-1324367435
gvozdkoff
2011-12-20 11:50
2012.04.08
узнать запущен ли веб сервер


8-1222425668
M3
2008-09-26 14:41
2012.04.08
Формат WAV GSM 6.10 Определить длительность звучания


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


2-1323866909
Pcrepair
2011-12-14 16:48
2012.04.08
TWebBrowser и копирование страницы в ПЕРЕМ





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский