Вверх ↑
Ответов: 9906
Рейтинг: 351
#1: 2006-10-02 22:31:47 ЛС | профиль | цитата
BTW:
я вот у себя в share еще такой вариант _Debug-а имею:
..........  
//!!! используется в элементе Debug и отладочных _Debug
DataNames:array[0..17]of string =
(
'NULL',
'Integer',
'String',
'Data',
'Combo',
'StrList',
'Icon',
'Real',
'Color',
'Script',
'Stream',
'Bitmap',
'Wave',
'Array',
'ComboEx',
'Font',
'Matrix',
'Jpeg'
);
..........
function GetString(var _Data:TData):string; //!!! генерация текста с значением из TData
procedure _Debug(const info:string); overload;
procedure _Debug(info:integer); overload;
procedure _Debug(var _Data:TData; ident:string='Data-Debug'); overload; //!!! отладка для MT
..........
procedure _Debug(var _Data:TData; ident:string='Data-Debug'); //!!! мои вставки
function GetStr(var _Data:TData):string;
begin
Result := GetString(_Data);
if _Data.data_type<=high(DataNames) then
begin
if Result<>'' then Result := ':'#9+Result;
Result := DataNames[_Data.data_type] + Result;
end
else Result := 'Unknown: '+int2str(_Data.data_type);
end;
begin
{$ifdef MT_ENABLED}
if (_Data.data_type=data_null)or(_Data.ldata=nil) then
MessageBox(0,PChar(GetStr(_Data)),PChar(ident),MB_OK)
else if MessageBox(0,PChar(GetStr(_Data)),PChar(ident),MB_YESNO)=IDYES then
_Debug(_Data.ldata^,ident);
{$else}
MessageBox(0,PChar(GetStr(_Data)),PChar(ident),MB_OK)
{$endif}
end;

function GetString(var _Data:TData):string; //!!! мои вставки
var Bmp:PBitmap;
begin
Result := '';
case _Data.Data_type of
data_null : Result := 'NULL';
data_int : Result := int2str(_Data.idata);
data_str : Result := '"' + _Data.sdata + '"';
data_real :
begin
Result := double2str(_Data.rdata);
if Pos('.',Result) = 0 then Result := Result + '.0';
end;
data_array:
begin
Result := 'Count: ' + int2str(PArray(_data.idata)._Count);
end;
data_stream:
begin
if pointer(_data.idata) = nil then
Result := 'none'
else Result := 'Size=' + int2str(PStream(_data.idata).Size)
+', Position=' + int2str(PStream(_data.idata).Position);
end;
data_bitmap:
begin
Bmp := pointer(_data.idata);
if bmp = nil then
Result := 'none'
else Result := 'Size: ' + int2str(bmp.width)+'x'+int2str(bmp.Height);
end;
end;
end;
..........
DataNames и GetString использует еще элемент Debug...


это я провожу сравнение с пристрастием своих кодов с SVN...



[size=-2]------ Добавлено в 22:31
tsdima, не оставлять 2-е св-во пустым
Но подобная фича тоже не бесполезна
покажи ее пользу...
карма: 9

0