git-svn-id: https://svn.code.sf.net/p/kolmck/code@90 91bb2d04-0c0c-4d2d-88a5-bbb6f4c1fa07
This commit is contained in:
dkolmck
2010-11-08 17:17:20 +00:00
parent 0c93e92b5f
commit 62e2c673fa

42
KOL.pas
View File

@ -14,7 +14,7 @@
Key Objects Library (C) 2000 by Kladov Vladimir. Key Objects Library (C) 2000 by Kladov Vladimir.
**************************************************************** ****************************************************************
* VERSION 3.00.Z4 * VERSION 3.00.Z6
**************************************************************** ****************************************************************
K.O.L. - is a set of objects to create small programs K.O.L. - is a set of objects to create small programs
@ -591,8 +591,10 @@ interface
{$UNDEF SAFE_CODE} {$UNDEF SAFE_CODE}
{$ENDIF} {$ENDIF}
{$IFnDEF NO_SAFE_CODE} {$IFnDEF NO_SAFE_CODE}
{$IFnDEF SMALLER_CODE}
{$DEFINE SAFE_CODE} {$DEFINE SAFE_CODE}
{$ENDIF} {$ENDIF}
{$ENDIF}
{$IFDEF NOT_USE_RICHEDIT} {$IFDEF NOT_USE_RICHEDIT}
{$DEFINE NOT_UNLOAD_RICHEDITLIB} {$DEFINE NOT_UNLOAD_RICHEDITLIB}
@ -18478,8 +18480,7 @@ begin
SelectObject( GetHandle, fFont.Handle ); SelectObject( GetHandle, fFont.Handle );
SetTextColor( fHandle, Color2RGB( fFont.fData.Color ) ); SetTextColor( fHandle, Color2RGB( fFont.fData.Color ) );
AssignChangeEvents; AssignChangeEvents;
end end else
else
if ( fOwnerControl <> nil ) then if ( fOwnerControl <> nil ) then
begin begin
SetTextColor( fHandle, SetTextColor( fHandle,
@ -19024,6 +19025,11 @@ asm
CALL EDX2PChar CALL EDX2PChar
PUSH EDX // prepare PChar(Text) PUSH EDX // prepare PChar(Text)
{$IFDEF SAFE_CODE}
MOV EAX, EBX
CALL RefInc
{$ENDIF}
PUSH HandleValid or FontValid PUSH HandleValid or FontValid
PUSH EBX PUSH EBX
CALL RequiredState CALL RequiredState
@ -19062,6 +19068,12 @@ asm
CALL SetHandle CALL SetHandle
@@exit: @@exit:
{$IFDEF SAFE_CODE}
PUSH EAX
XCHG EAX, EBX
CALL RefDec
POP EAX
{$ENDIF}
POP ESI POP ESI
POP EBX POP EBX
end; end;
@ -19082,7 +19094,7 @@ begin
ClearHandle := True; //************ // Added By Gerasimov ClearHandle := True; //************ // Added By Gerasimov
end; end;
RequiredState( HandleValid or FontValid ); RequiredState( HandleValid or FontValid );
GetTextExtentPoint32( fHandle, PKOLChar(Text), Length(Text), Result); GetTextExtentPoint32( fHandle, PKOLChar(Text), Length(Text), Result);
if ClearHandle then if ClearHandle then
SetHandle( 0 ); SetHandle( 0 );
{ DC must be freed here automatically (never leaks): { DC must be freed here automatically (never leaks):
@ -22638,8 +22650,8 @@ begin
begin begin
if S[I] = #0 then if S[I] = #0 then
begin begin
S[J] := #13; S[J] := #10;
S[J-1] := #10; S[J-1] := #13;
dec( J ); dec( J );
end end
else else
@ -44758,6 +44770,9 @@ end;
{$IFDEF ASM_VERSION}{$ELSE ASM_VERSION} //Pascal {$IFDEF ASM_VERSION}{$ELSE ASM_VERSION} //Pascal
function TControl.GetCanvas: PCanvas; function TControl.GetCanvas: PCanvas;
begin begin
{$IFDEF SAFE_CODE}
CreateWindow;
{$ENDIF}
if ( fCanvas = nil ) then if ( fCanvas = nil ) then
begin begin
fCanvas := NewCanvas( 0 ); fCanvas := NewCanvas( 0 );
@ -44790,20 +44805,23 @@ BEGIN
END; END;
END; END;
function TControl.GetCanvas: PCanvas; FUNCTION TControl.GetCanvas: PCanvas;
begin BEGIN
if ( fCanvas = nil ) then {$IFDEF SAFE_CODE}
begin CreateWindow;
{$ENDIF}
IF ( fCanvas = nil ) then
BEGIN
fCanvas := NewCanvas( nil ); fCanvas := NewCanvas( nil );
fCanvas.fOnGetHandle := ProvideCanvasHandle; fCanvas.fOnGetHandle := ProvideCanvasHandle;
fCanvas.fOwnerControl := @Self; fCanvas.fOwnerControl := @Self;
fCanvas.fDrawable := Pointer( fEventboxHandle.window ); fCanvas.fDrawable := Pointer( fEventboxHandle.window );
end; END;
fCanvas.GetHandle; // ïîëó÷èì çäåñü òîò êîíòåêñò, êîòîðûé ñîîòâåòñòâóåò fCanvas.GetHandle; // ïîëó÷èì çäåñü òîò êîíòåêñò, êîòîðûé ñîîòâåòñòâóåò
// òåêóùåìó ñîñòîÿíèþ êîíòðîëà (åñëè ýòî êîíòðîë) è òåêóùåé // òåêóùåìó ñîñòîÿíèþ êîíòðîëà (åñëè ýòî êîíòðîë) è òåêóùåé
// ñòàäèè ðèñîâàíèÿ // ñòàäèè ðèñîâàíèÿ
Result := fCanvas; Result := fCanvas;
end; END;
{$ENDIF GTK} {$ENDIF GTK}
{$ENDIF _X_} {$ENDIF _X_}
{$IFDEF WIN_GDI} {$IFDEF WIN_GDI}