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

Вниз

Откуда береться точка?   Найти похожие ветки 

 
Дмитрий С ©   (2010-05-13 08:54) [0]

raise Exception.Create("Тест");
=>
---------------------------
Project1
---------------------------
Тест.
---------------------------
ОК  
---------------------------


raise Exception.Create("Тест.");
=>
---------------------------
Project1
---------------------------
Тест.
---------------------------
ОК  
---------------------------


raise Exception.Create("Тест..");
=>
---------------------------
Project1
---------------------------
Тест..
---------------------------
ОК  
---------------------------


 
brother ©   (2010-05-13 09:03) [1]

unit SysUtils;

...

function ExceptionErrorMessage(ExceptObject: TObject; ExceptAddr: Pointer;
 Buffer: PChar; Size: Integer): Integer;
{$IFDEF MSWINDOWS}

 function ConvertAddr(Address: Pointer): Pointer; assembler;
 asm
         TEST    EAX,EAX         { Always convert nil to nil }
         JE      @@1
         SUB     EAX, $1000      { offset from code start; code start set by linker to $1000 }
 @@1:
 end;

var
 MsgPtr: PChar;
 MsgEnd: PChar;
 MsgLen: Integer;
 ModuleName: array[0..MAX_PATH] of Char;
 Temp: array[0..MAX_PATH] of Char;
 Format: array[0..255] of Char;
 Info: TMemoryBasicInformation;
 ConvertedAddress: Pointer;
begin
 VirtualQuery(ExceptAddr, Info, sizeof(Info));
 if (Info.State <> MEM_COMMIT) or
   (GetModuleFilename(THandle(Info.AllocationBase), Temp, SizeOf(Temp)) = 0) then
 begin
   GetModuleFileName(HInstance, Temp, SizeOf(Temp));
   ConvertedAddress := ConvertAddr(ExceptAddr);
 end
 else
   Integer(ConvertedAddress) := Integer(ExceptAddr) - Integer(Info.AllocationBase);
 StrLCopy(ModuleName, AnsiStrRScan(Temp, "\") + 1, SizeOf(ModuleName) - 1);
 MsgPtr := "";
 MsgEnd := "";
 if ExceptObject is Exception then
 begin
   MsgPtr := PChar(Exception(ExceptObject).Message);
   MsgLen := StrLen(MsgPtr);
   if (MsgLen <> 0) and (MsgPtr[MsgLen - 1] <> ".") then MsgEnd := ".";
 end;
 LoadString(FindResourceHInstance(HInstance),
   PResStringRec(@SException).Identifier, Format, SizeOf(Format));
 StrLFmt(Buffer, Size, Format, [ExceptObject.ClassName, ModuleName,
   ConvertedAddress, MsgPtr, MsgEnd]);
 Result := StrLen(Buffer);
end;

оно?


 
Дмитрий С ©   (2010-05-13 14:25) [2]


> оно?

Оно-оно, но зачем?


 
Palladin ©   (2010-05-13 14:31) [3]

Потому что в конце предложения ставится точка.


 
Andy BitOff ©   (2010-05-13 14:33) [4]

Видимо, разработчики руководствовались правилами правописания, в конце предложения ставится точка, хотя в случае наличия в конце восклицательного знака, получится не верно.


 
RWolf ©   (2010-05-13 14:37) [5]

Возможно, разработчики посчитали, что восклицательные знаки в сообщении об ошибке — это несерьёзно?
raise EReactorExplosion.Create("Все в укрытие!");


 
Andy BitOff ©   (2010-05-13 14:43) [6]


> RWolf ©   (13.05.10 14:37) [5]

raise ESomeErrorExplosion.Create("Warning! Error!");

=)


 
RWolf ©   (2010-05-13 14:45) [7]


> Andy BitOff ©   (13.05.10 14:43) [6]

а ну как у оператора сердце слабое? )


 
Омлет ©   (2010-05-13 15:17) [8]

Экономия байтов.


 
Palladin ©   (2010-05-13 15:26) [9]


> Омлет ©   (13.05.10 15:17) [8]

Ты имеешь ввиду что если в конце каждой строчки добавлять, при необходимости, точку, то байтов будет меньше?


 
Anatoly Podgoretsky ©   (2010-05-13 16:49) [10]

> Омлет  (13.05.2010 15:17:08)  [8]

Тонера


 
Palladin ©   (2010-05-13 16:57) [11]


> Anatoly Podgoretsky ©   (13.05.10 16:49) [10]

Ты имеешь ввиду что если в конце каждой строчки добавлять, при необходимости, точку, то тонера потратится будет меньше?


 
12 ©   (2010-05-13 17:17) [12]


> если в конце каждой строчки добавлять, при необходимости,
>  точку

тогда, зная сей факт, можно не утруждать ее ставить в своих исходниках.
Вот и экономия


 
Омлет ©   (2010-05-13 18:47) [13]

> Palladin ©   (13.05.10 15:26) [9]

см. 12 ©   (13.05.10 17:17) [12]


 
Anatoly Podgoretsky ©   (2010-05-13 19:18) [14]

> Palladin  (13.05.2010 16:57:11)  [11]

По сравнению с воскличательным знаком? Какие могут быть сомнения.


 
Anatoly Podgoretsky ©   (2010-05-13 19:53) [15]

> 12  (13.05.2010 17:17:12)  [12]

В твоих исходниках, завершающая точка только одна, после последнего END


 
xayam ©   (2010-05-14 08:06) [16]


> Anatoly Podgoretsky ©   (13.05.10 19:53) [15]
> > 12  (13.05.2010 17:17:12)  [12]
> В твоих исходниках, завершающая точка только одна, после
> последнего END

ага, массивами, записями и классами он не пользуется :)


 
GrayFace ©   (2010-05-14 21:38) [17]

Точку приносит аист.


 
vuk ©   (2010-05-14 22:29) [18]

Точка означает, что радист работает под контролем. :)


 
Palladin ©   (2010-05-15 14:56) [19]


> Anatoly Podgoretsky ©   (13.05.10 19:18) [14]

Дядя Онотоль, тебе рассказать какие могут быть сомнения в фразе "о сравнению с воскличательным знаком? Какие могут быть сомнения." ? )

а с Омлетом вообще отдельный разговор...  но таких в космонафты точно не берут


 
Кто б сомневался ©   (2010-05-15 20:25) [20]

Чтоли запостить как баг в QC? Чтоб вообще убрали эту дурость.



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

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

Наверх




Память: 0.51 MB
Время: 0.053 c
2-1267715582
ZV
2010-03-04 18:13
2010.08.27
Инвертировать определенный бит в байте. Как ?


2-1266215119
Spot
2010-02-15 09:25
2010.08.27
Прозрачный bmp в RXdbgrid


15-1269520791
Sergey13
2010-03-25 15:39
2010.08.27
Lazarus &amp; FireBird


15-1264806755
Petr V. Abramov
2010-01-30 02:12
2010.08.27
паровоз :)


2-1270106019
Kolan
2010-04-01 11:13
2010.08.27
Пакет компилиться в свою папку