Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизОткуда береться точка? Найти похожие ветки
← →
Дмитрий С © (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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.063 c