* converted source files to utf-8

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1693 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
blikblum
2011-06-17 21:12:21 +00:00
parent c6d008fcae
commit 7f6fa27b29
15 changed files with 556 additions and 556 deletions

View File

@ -1,10 +1,10 @@
unit SpkGuiTools;
unit SpkGuiTools;
{$DEFINE SPKGUITOOLS}
interface
{$MESSAGE HINT 'W tym module konsekwentnie kady rect opisuje dokadny prostokt (a nie, jak w przypadku WINAPI - bez dolnej i prawej krawdzi)'}
{$MESSAGE HINT 'W tym module konsekwentnie ka¿dy rect opisuje dok³adny prostok¹t (a nie, jak w przypadku WINAPI - bez dolnej i prawej krawêdzi)'}
uses Windows, Graphics, SysUtils, Math, Classes, Controls, ImgList,
SpkGraphTools, SpkMath;
@ -387,9 +387,9 @@ var BufferRect, BitmapRect : T2DIntRect;
begin
if (ABuffer.PixelFormat<>pf24bit) or (ABitmap.PixelFormat<>pf24bit) then
raise exception.create('TSpkGUITools.CopyRoundCorner: Tylko 24-bitowe bitmapy s akceptowane!');
raise exception.create('TSpkGUITools.CopyRoundCorner: Tylko 24-bitowe bitmapy s¹ akceptowane!');
// Sprawdzanie poprawnoci
// Sprawdzanie poprawnoœci
if Radius<1 then
exit;
@ -417,7 +417,7 @@ Offset:=DstPoint - SrcPoint;
if not(OrgSrcRect.IntersectsWith(OrgDstRect - Offset, SrcRect)) then exit;
// Ustalamy pozycj� �rodka uku
// Ustalamy pozycjê œrodka ³uku
case CornerPos of
cpLeftTop: Center:=T2DIntVector.create(SrcPoint.x + radius - 1, SrcPoint.y + Radius - 1);
cpRightTop: Center:=T2DIntVector.create(SrcPoint.x, SrcPoint.y + Radius - 1);
@ -476,9 +476,9 @@ class procedure TGUITools.CopyRoundRect(ABuffer, ABitmap: TBitmap; SrcPoint,
begin
if (ABuffer.PixelFormat<>pf24bit) or (ABitmap.PixelFormat<>pf24bit) then
raise exception.create('TSpkGUITools.CopyBackground: Tylko 24-bitowe bitmapy s akceptowane!');
raise exception.create('TSpkGUITools.CopyBackground: Tylko 24-bitowe bitmapy s¹ akceptowane!');
// Sprawdzamy poprawno��
// Sprawdzamy poprawnoϾ
if Radius<0 then
exit;
@ -487,8 +487,8 @@ if (Radius>Width div 2) or (Radius>Height div 2) then exit;
if (ABuffer.width=0) or (ABuffer.height=0) or
(ABitmap.width=0) or (ABitmap.height=0) then exit;
{$REGION 'Wypeniamy prostokty'}
// Gra
{$REGION 'Wype³niamy prostok¹ty'}
// Góra
CopyRectangle(ABuffer,
ABitmap,
T2DIntPoint.create(SrcPoint.x + radius, SrcPoint.y),
@ -496,7 +496,7 @@ CopyRectangle(ABuffer,
width - 2*radius,
radius,
ClipRect);
// D��
// Dó³
CopyRectangle(ABuffer,
ABitmap,
T2DIntPoint.create(SrcPoint.x + radius, SrcPoint.y + height - radius),
@ -504,7 +504,7 @@ CopyRectangle(ABuffer,
width - 2*radius,
radius,
ClipRect);
// rodek
// Œrodek
CopyRectangle(ABuffer,
ABitmap,
T2DIntPoint.create(SrcPoint.x, SrcPoint.y + radius),
@ -514,9 +514,9 @@ CopyRectangle(ABuffer,
ClipRect);
{$ENDREGION}
// Wypeniamy naroniki
// Wype³niamy naro¿niki
{$REGION 'Lewy grny'}
{$REGION 'Lewy górny'}
if LeftTopRound then
TGUITools.CopyRoundCorner(ABuffer,
ABitmap,
@ -535,7 +535,7 @@ else
ClipRect);
{$ENDREGION}
{$REGION 'Prawy grny'}
{$REGION 'Prawy górny'}
if RightTopRound then
TGUITools.CopyRoundCorner(ABuffer,
ABitmap,
@ -599,9 +599,9 @@ class procedure TGUITools.CopyRoundRect(ABuffer : TBitmap; ABitmap: TBitmap; Src
begin
if (ABuffer.PixelFormat<>pf24bit) or (ABitmap.PixelFormat<>pf24bit) then
raise exception.create('TSpkGUITools.CopyBackground: Tylko 24-bitowe bitmapy s akceptowane!');
raise exception.create('TSpkGUITools.CopyBackground: Tylko 24-bitowe bitmapy s¹ akceptowane!');
// Sprawdzamy poprawno��
// Sprawdzamy poprawnoϾ
if Radius<0 then
exit;
@ -610,22 +610,22 @@ if (Radius>Width div 2) or (Radius>Height div 2) then exit;
if (ABuffer.width=0) or (ABuffer.height=0) or
(ABitmap.width=0) or (ABitmap.height=0) then exit;
{$REGION 'Wypeniamy prostokty'}
// Gra
{$REGION 'Wype³niamy prostok¹ty'}
// Góra
CopyRectangle(ABuffer,
ABitmap,
T2DIntPoint.create(SrcPoint.x + radius, SrcPoint.y),
T2DIntPoint.create(DstPoint.x + radius, DstPoint.y),
width - 2*radius,
radius);
// D��
// Dó³
CopyRectangle(ABuffer,
ABitmap,
T2DIntPoint.create(SrcPoint.x + radius, SrcPoint.y + height - radius),
T2DIntPoint.create(DstPoint.x + radius, DstPoint.y + height - radius),
width - 2*radius,
radius);
// rodek
// Œrodek
CopyRectangle(ABuffer,
ABitmap,
T2DIntPoint.create(SrcPoint.x, SrcPoint.y + radius),
@ -634,8 +634,8 @@ CopyRectangle(ABuffer,
height - 2*radius);
{$ENDREGION}
// Wypeniamy naroniki
{$REGION 'Lewy grny'}
// Wype³niamy naro¿niki
{$REGION 'Lewy górny'}
if LeftTopRound then
TGUITools.CopyRoundCorner(ABuffer,
ABitmap,
@ -652,7 +652,7 @@ else
Radius);
{$ENDREGION}
{$REGION 'Prawy grny'}
{$REGION 'Prawy górny'}
if RightTopRound then
TGUITools.CopyRoundCorner(ABuffer,
ABitmap,
@ -717,16 +717,16 @@ var BufferRect, BitmapRect : T2DIntRect;
begin
if (ABuffer.PixelFormat<>pf24bit) or (ABitmap.PixelFormat<>pf24bit) then
raise exception.create('TSpkGUITools.CopyRoundCorner: Tylko 24-bitowe bitmapy s akceptowane!');
raise exception.create('TSpkGUITools.CopyRoundCorner: Tylko 24-bitowe bitmapy s¹ akceptowane!');
// Sprawdzanie poprawnoci
// Sprawdzanie poprawnoœci
if (Width<1) or (Height<1) then
exit;
if (ABuffer.width=0) or (ABuffer.height=0) or
(ABitmap.width=0) or (ABitmap.height=0) then exit;
// Przycinamy �r�d�owy rect do obszaru �r�d�owej bitmapy
// Przycinamy Ÿród³owy rect do obszaru Ÿród³owej bitmapy
BufferRect:=T2DIntRect.create(0, 0, ABuffer.width-1, ABuffer.height-1);
if not(BufferRect.IntersectsWith(T2DIntRect.create(SrcPoint.x,
@ -743,14 +743,14 @@ if not(BitmapRect.IntersectsWith(T2DIntRect.create(DstPoint.x,
DstPoint.y+Height-1),
DstRect)) then exit;
// Liczymy offset �r�d�owego do docelowego recta
// Liczymy offset Ÿród³owego do docelowego recta
Offset:=DstPoint - SrcPoint;
// Sprawdzamy, czy na�o�one na siebie recty: �r�d�owy i docelowy przesunity o
// offset maj jak�� cz��� wspln
// Sprawdzamy, czy na³o¿one na siebie recty: Ÿród³owy i docelowy przesuniêty o
// offset maj¹ jak¹œ czêœæ wspóln¹
if not(SrcRect.IntersectsWith(DstRect - Offset, ClippedSrcRect)) then exit;
// Jeli jest cokolwiek do przetworzenia, wykonaj operacj
// Jeœli jest cokolwiek do przetworzenia, wykonaj operacjê
if (ClippedSrcRect.left<=ClippedSrcRect.right) and (ClippedSrcRect.top<=ClippedSrcRect.bottom) then
for y := ClippedSrcRect.top to ClippedSrcRect.bottom do
begin
@ -791,12 +791,12 @@ var BufferRect, BitmapRect : T2DIntRect;
begin
if (ABuffer.PixelFormat<>pf24bit) or (ABitmap.PixelFormat<>pf24bit) then
raise exception.create('TSpkGUITools.CopyRoundCorner: Tylko 24-bitowe bitmapy s akceptowane!');
raise exception.create('TSpkGUITools.CopyRoundCorner: Tylko 24-bitowe bitmapy s¹ akceptowane!');
if (AMask.PixelFormat<>pf8bit) then
raise exception.create('TSpkGUITools.CopyRoundCorner: Tylko 8-bitowe maski s akceptowane!');
raise exception.create('TSpkGUITools.CopyRoundCorner: Tylko 8-bitowe maski s¹ akceptowane!');
// Sprawdzanie poprawnoci
// Sprawdzanie poprawnoœci
if (Width<1) or (Height<1) then
exit;
@ -806,7 +806,7 @@ if (ABuffer.width=0) or (ABuffer.height=0) or
if (ABuffer.Width<>AMask.Width) or
(ABuffer.Height<>AMask.Height) then exit;
// Przycinamy �r�d�owy rect do obszaru �r�d�owej bitmapy
// Przycinamy Ÿród³owy rect do obszaru Ÿród³owej bitmapy
BufferRect:=T2DIntRect.create(0, 0, ABuffer.width-1, ABuffer.height-1);
if not(BufferRect.IntersectsWith(T2DIntRect.create(SrcPoint.x,
@ -823,14 +823,14 @@ if not(BitmapRect.IntersectsWith(T2DIntRect.create(DstPoint.x,
DstPoint.y+Height-1),
DstRect)) then exit;
// Liczymy offset �r�d�owego do docelowego recta
// Liczymy offset Ÿród³owego do docelowego recta
Offset:=DstPoint - SrcPoint;
// Sprawdzamy, czy na�o�one na siebie recty: �r�d�owy i docelowy przesunity o
// offset maj jak�� cz��� wspln
// Sprawdzamy, czy na³o¿one na siebie recty: Ÿród³owy i docelowy przesuniêty o
// offset maj¹ jak¹œ czêœæ wspóln¹
if not(SrcRect.IntersectsWith(DstRect - Offset, ClippedSrcRect)) then exit;
// Jeli jest cokolwiek do przetworzenia, wykonaj operacj
// Jeœli jest cokolwiek do przetworzenia, wykonaj operacjê
if (ClippedSrcRect.left<=ClippedSrcRect.right) and (ClippedSrcRect.top<=ClippedSrcRect.bottom) then
for y := ClippedSrcRect.top to ClippedSrcRect.bottom do
begin
@ -871,11 +871,11 @@ var BufferRect, BitmapRect : T2DIntRect;
begin
if (ABuffer.PixelFormat<>pf24bit) or (ABitmap.PixelFormat<>pf24bit) then
raise exception.create('TSpkGUITools.CopyMaskRectangle: Tylko 24-bitowe bitmapy s akceptowane!');
raise exception.create('TSpkGUITools.CopyMaskRectangle: Tylko 24-bitowe bitmapy s¹ akceptowane!');
if AMask.PixelFormat<>pf8bit then
raise exception.create('TSpkGUITools.CopyMaskRectangle: Tylko 8-bitowe maski s akceptowane!');
raise exception.create('TSpkGUITools.CopyMaskRectangle: Tylko 8-bitowe maski s¹ akceptowane!');
// Sprawdzanie poprawnoci
// Sprawdzanie poprawnoœci
if (Width<1) or (Height<1) then
exit;
@ -884,9 +884,9 @@ if (ABuffer.width=0) or (ABuffer.height=0) or
if (ABuffer.Width<>AMask.Width) or
(ABuffer.Height<>AMask.Height) then
raise exception.create('TSpkGUITools.CopyMaskRectangle: Maska ma nieprawidowe rozmiary!');
raise exception.create('TSpkGUITools.CopyMaskRectangle: Maska ma nieprawid³owe rozmiary!');
// Przycinamy �r�d�owy rect do obszaru �r�d�owej bitmapy
// Przycinamy Ÿród³owy rect do obszaru Ÿród³owej bitmapy
BufferRect:=T2DIntRect.create(0, 0, ABuffer.width-1, ABuffer.height-1);
if not(BufferRect.IntersectsWith(T2DIntRect.create(SrcPoint.x,
SrcPoint.y,
@ -906,14 +906,14 @@ if not(BitmapRect.IntersectsWith(T2DIntRect.create(DstPoint.x,
if not(DstRect.IntersectsWith(ClipRect, ClippedDstRect)) then
Exit;
// Liczymy offset �r�d�owego do docelowego recta
// Liczymy offset Ÿród³owego do docelowego recta
Offset:=DstPoint - SrcPoint;
// Sprawdzamy, czy na�o�one na siebie recty: �r�d�owy i docelowy przesunity o
// offset maj jak�� cz��� wspln
// Sprawdzamy, czy na³o¿one na siebie recty: Ÿród³owy i docelowy przesuniêty o
// offset maj¹ jak¹œ czêœæ wspóln¹
if not(SrcRect.IntersectsWith(ClippedDstRect - Offset, ClippedSrcRect)) then exit;
// Jeli jest cokolwiek do przetworzenia, wykonaj operacj
// Jeœli jest cokolwiek do przetworzenia, wykonaj operacjê
if (ClippedSrcRect.left<=ClippedSrcRect.right) and (ClippedSrcRect.top<=ClippedSrcRect.bottom) then
for y := ClippedSrcRect.top to ClippedSrcRect.bottom do
begin
@ -951,16 +951,16 @@ var BufferRect, BitmapRect : T2DIntRect;
begin
if (ABuffer.PixelFormat<>pf24bit) or (ABitmap.PixelFormat<>pf24bit) then
raise exception.create('TSpkGUITools.CopyRoundCorner: Tylko 24-bitowe bitmapy s akceptowane!');
raise exception.create('TSpkGUITools.CopyRoundCorner: Tylko 24-bitowe bitmapy s¹ akceptowane!');
// Sprawdzanie poprawnoci
// Sprawdzanie poprawnoœci
if (Width<1) or (Height<1) then
exit;
if (ABuffer.width=0) or (ABuffer.height=0) or
(ABitmap.width=0) or (ABitmap.height=0) then exit;
// Przycinamy �r�d�owy rect do obszaru �r�d�owej bitmapy
// Przycinamy Ÿród³owy rect do obszaru Ÿród³owej bitmapy
BufferRect:=T2DIntRect.create(0, 0, ABuffer.width-1, ABuffer.height-1);
if not(BufferRect.IntersectsWith(T2DIntRect.create(SrcPoint.x,
SrcPoint.y,
@ -980,14 +980,14 @@ if not(BitmapRect.IntersectsWith(T2DIntRect.create(DstPoint.x,
if not(DstRect.IntersectsWith(ClipRect, ClippedDstRect)) then
Exit;
// Liczymy offset �r�d�owego do docelowego recta
// Liczymy offset Ÿród³owego do docelowego recta
Offset:=DstPoint - SrcPoint;
// Sprawdzamy, czy na�o�one na siebie recty: �r�d�owy i docelowy przesunity o
// offset maj jak�� cz��� wspln
// Sprawdzamy, czy na³o¿one na siebie recty: Ÿród³owy i docelowy przesuniêty o
// offset maj¹ jak¹œ czêœæ wspóln¹
if not(SrcRect.IntersectsWith(ClippedDstRect - Offset, ClippedSrcRect)) then exit;
// Jeli jest cokolwiek do przetworzenia, wykonaj operacj
// Jeœli jest cokolwiek do przetworzenia, wykonaj operacjê
if (ClippedSrcRect.left<=ClippedSrcRect.right) and (ClippedSrcRect.top<=ClippedSrcRect.bottom) then
for y := ClippedSrcRect.top to ClippedSrcRect.bottom do
begin
@ -1018,9 +1018,9 @@ var BufferRect, BitmapRect : T2DIntRect;
begin
if (ABuffer.PixelFormat<>pf24bit) or (ABitmap.PixelFormat<>pf24bit) then
raise exception.create('TSpkGUITools.CopyRoundCorner: Tylko 24-bitowe bitmapy s akceptowane!');
raise exception.create('TSpkGUITools.CopyRoundCorner: Tylko 24-bitowe bitmapy s¹ akceptowane!');
// Sprawdzanie poprawnoci
// Sprawdzanie poprawnoœci
if Radius<1 then
exit;
@ -1045,7 +1045,7 @@ Offset:=DstPoint - SrcPoint;
if not(OrgSrcRect.IntersectsWith(OrgDstRect - Offset, SrcRect)) then exit;
// Ustalamy pozycj� �rodka uku
// Ustalamy pozycjê œrodka ³uku
case CornerPos of
cpLeftTop: Center:=T2DIntVector.create(SrcPoint.x + radius - 1, SrcPoint.y + Radius - 1);
@ -1114,30 +1114,30 @@ var CornerRect : T2DIntRect;
begin
if ABitmap.PixelFormat<>pf24bit then
raise exception.create('TSpkGUITools.DrawAARoundCorner: Bitmapa musi by w trybie 24-bitowym!');
raise exception.create('TSpkGUITools.DrawAARoundCorner: Bitmapa musi byæ w trybie 24-bitowym!');
// Sprawdzamy poprawno��
// Sprawdzamy poprawnoϾ
if Radius<1 then
exit;
if (ABitmap.width=0) or (ABitmap.height=0) then
exit;
// �r�d�owy rect...
// ród³owy rect...
OrgCornerRect:=T2DIntRect.create(Point.x,
Point.y,
Point.x + radius - 1,
Point.y + radius - 1);
// ...przycinamy do rozmiarw bitmapy
// ...przycinamy do rozmiarów bitmapy
BitmapRect:=T2DIntRect.create(0, 0, ABitmap.width-1, ABitmap.height-1);
if not(BitmapRect.intersectsWith(OrgCornerRect, CornerRect)) then
exit;
// Jeli nie ma czego rysowa, wychodzimy
// Jeœli nie ma czego rysowaæ, wychodzimy
if (CornerRect.left>CornerRect.right) or (CornerRect.top>CornerRect.bottom) then
exit;
// Szukamy rodka uku - zalenie od rodzaju naronika
// Szukamy œrodka ³uku - zale¿nie od rodzaju naro¿nika
case CornerPos of
cpLeftTop: Center:=T2DIntVector.create(Point.x + radius - 1, Point.y + Radius - 1);
cpRightTop: Center:=T2DIntVector.create(Point.x, Point.y + Radius - 1);
@ -1185,21 +1185,21 @@ var CornerRect : T2DIntRect;
begin
if ABitmap.PixelFormat<>pf24bit then
raise exception.create('TSpkGUITools.DrawAARoundCorner: Bitmapa musi by w trybie 24-bitowym!');
raise exception.create('TSpkGUITools.DrawAARoundCorner: Bitmapa musi byæ w trybie 24-bitowym!');
// Sprawdzamy poprawno��
// Sprawdzamy poprawnoϾ
if Radius<1 then
exit;
if (ABitmap.width=0) or (ABitmap.height=0) then
exit;
// �r�d�owy rect...
// ród³owy rect...
OrgCornerRect:=T2DIntRect.create(Point.x,
Point.y,
Point.x + radius - 1,
Point.y + radius - 1);
// ...przycinamy do rozmiarw bitmapy
// ...przycinamy do rozmiarów bitmapy
BitmapRect:=T2DIntRect.create(0, 0, ABitmap.width-1, ABitmap.height-1);
if not(BitmapRect.intersectsWith(OrgCornerRect, UnClippedCornerRect)) then
exit;
@ -1208,11 +1208,11 @@ if not(BitmapRect.intersectsWith(OrgCornerRect, UnClippedCornerRect)) then
if not(UnClippedCornerRect.IntersectsWith(ClipRect, CornerRect)) then
exit;
// Jeli nie ma czego rysowa, wychodzimy
// Jeœli nie ma czego rysowaæ, wychodzimy
if (CornerRect.left>CornerRect.right) or (CornerRect.top>CornerRect.bottom) then
exit;
// Szukamy rodka uku - zalenie od rodzaju naronika
// Szukamy œrodka ³uku - zale¿nie od rodzaju naro¿nika
case CornerPos of
cpLeftTop: Center:=T2DIntVector.create(Point.x + radius - 1, Point.y + Radius - 1);
cpRightTop: Center:=T2DIntVector.create(Point.x, Point.y + Radius - 1);
@ -1253,17 +1253,17 @@ var Center : T2DIntVector;
CornerRect: T2DIntRect;
begin
// Sprawdzamy poprawno��
// Sprawdzamy poprawnoϾ
if Radius<1 then
exit;
// �r�d�owy rect...
// ród³owy rect...
CornerRect:=T2DIntRect.create(Point.x,
Point.y,
Point.x + radius - 1,
Point.y + radius - 1);
// Szukamy rodka uku - zalenie od rodzaju naronika
// Szukamy œrodka ³uku - zale¿nie od rodzaju naro¿nika
case CornerPos of
cpLeftTop: Center:=T2DIntVector.create(Point.x + radius - 1, Point.y + Radius - 1);
cpRightTop: Center:=T2DIntVector.create(Point.x, Point.y + Radius - 1);
@ -1296,7 +1296,7 @@ var UseOrgClipRgn : boolean;
OrgRgn : HRGN;
begin
// Zapamitywanie oryginalnego ClipRgn i ustawianie nowego
// Zapamiêtywanie oryginalnego ClipRgn i ustawianie nowego
SaveClipRgn(ACanvas.Handle, UseOrgClipRgn, OrgRgn);
ClipRgn:=CreateRectRgn(ClipRect.left, ClipRect.Top, ClipRect.Right+1, ClipRect.Bottom+1);
@ -1307,7 +1307,7 @@ SelectClipRgn(ACanvas.Handle, ClipRgn);
DrawAARoundCorner(ACanvas, Point, Radius, CornerPos, Color);
// Przywracanie poprzedniego ClipRgn i usuwanie wykorzystanych regionw
// Przywracanie poprzedniego ClipRgn i usuwanie wykorzystanych regionów
RestoreClipRgn(ACanvas.Handle, UseOrgClipRgn, OrgRgn);
DeleteObject(ClipRgn);
end;
@ -1316,7 +1316,7 @@ class procedure TGUITools.DrawAARoundFrame(ABitmap: TBitmap; Rect: T2DIntRect;
Radius: integer; Color: TColor; ClipRect: T2DIntRect);
begin
if ABitmap.PixelFormat<>pf24bit then
raise exception.create('TGUITools.DrawAARoundFrame: Bitmapa musi by w trybie 24-bitowym!');
raise exception.create('TGUITools.DrawAARoundFrame: Bitmapa musi byæ w trybie 24-bitowym!');
if (Radius<1) then
exit;
@ -1333,7 +1333,7 @@ DrawAARoundCorner(ABitmap, T2DIntVector.create(Rect.Right - Radius + 1, Rect.Bot
ABitmap.Canvas.Pen.color:=Color;
ABitmap.Canvas.pen.style:=psSolid;
// Draw*Line s zabezpieczone przed rysowaniem poza obszarem
// Draw*Line s¹ zabezpieczone przed rysowaniem poza obszarem
DrawVLine(ABitmap, Rect.left, rect.top + Radius, rect.bottom - Radius, Color, ClipRect);
DrawVLine(ABitmap, Rect.right, rect.top + Radius, rect.bottom - Radius, Color, ClipRect);
DrawHLine(ABitmap, Rect.left + Radius, Rect.right - Radius, rect.top, Color, ClipRect);
@ -1345,7 +1345,7 @@ class procedure TGUITools.DrawAARoundFrame(ABitmap: TBitmap; Rect: T2DIntRect;
begin
if ABitmap.PixelFormat<>pf24bit then
raise exception.create('TGUITools.DrawAARoundFrame: Bitmapa musi by w trybie 24-bitowym!');
raise exception.create('TGUITools.DrawAARoundFrame: Bitmapa musi byæ w trybie 24-bitowym!');
if (Radius<1) then
exit;
@ -1362,7 +1362,7 @@ DrawAARoundCorner(ABitmap, T2DIntVector.create(Rect.Right - Radius + 1, Rect.Bot
ABitmap.canvas.Pen.color:=Color;
ABitmap.canvas.pen.style:=psSolid;
// Draw*Line s zabezpieczone przed rysowaniem poza obszarem
// Draw*Line s¹ zabezpieczone przed rysowaniem poza obszarem
DrawVLine(ABitmap, Rect.left, rect.top + Radius, rect.bottom - Radius, Color);
DrawVLine(ABitmap, Rect.right, rect.top + Radius, rect.bottom - Radius, Color);
DrawHLine(ABitmap, Rect.left + Radius, Rect.right - Radius, rect.top, Color);
@ -1380,7 +1380,7 @@ with ABitmap.Canvas do
begin
s:=AText;
tw:=TextWidth(s);
// Jeli tekst si zmieci, rysujemy
// Jeœli tekst siê zmieœci, rysujemy
if tw<=(x2-x1+1) then
case Align of
taLeftJustify : TextOut(x1,y,AText);
@ -1426,7 +1426,7 @@ var UseOrgClipRgn : boolean;
OrgRgn : HRGN;
begin
// Zapamitywanie oryginalnego ClipRgn i ustawianie nowego
// Zapamiêtywanie oryginalnego ClipRgn i ustawianie nowego
SaveClipRgn(ACanvas.Handle, UseOrgClipRgn, OrgRgn);
ClipRgn:=CreateRectRgn(ClipRect.left, ClipRect.Top, ClipRect.Right+1, ClipRect.Bottom+1);
@ -1437,7 +1437,7 @@ SelectClipRgn(ACanvas.Handle, ClipRgn);
DrawHLine(ACanvas, x1, x2, y, Color);
// Przywracanie poprzedniego ClipRgn i usuwanie wykorzystanych regionw
// Przywracanie poprzedniego ClipRgn i usuwanie wykorzystanych regionów
RestoreClipRgn(ACanvas.Handle, UseOrgClipRgn, OrgRgn);
DeleteObject(ClipRgn);
end;
@ -1463,7 +1463,7 @@ var UseOrgClipRgn: Boolean;
ClipRgn: HRGN;
begin
// Zapamitywanie oryginalnego ClipRgn i ustawianie nowego
// Zapamiêtywanie oryginalnego ClipRgn i ustawianie nowego
SaveClipRgn(ACanvas.Handle, UseOrgClipRgn, OrgRgn);
ClipRgn:=CreateRectRgn(ClipRect.left, ClipRect.Top, ClipRect.Right+1, ClipRect.Bottom+1);
@ -1486,7 +1486,7 @@ var UseOrgClipRgn: Boolean;
ClipRgn: HRGN;
begin
// Zapamitywanie oryginalnego ClipRgn i ustawianie nowego
// Zapamiêtywanie oryginalnego ClipRgn i ustawianie nowego
SaveClipRgn(ACanvas.Handle, UseOrgClipRgn, OrgRgn);
ClipRgn:=CreateRectRgn(ClipRect.left, ClipRect.Top, ClipRect.Right+1, ClipRect.Bottom+1);
@ -1536,7 +1536,7 @@ while MarkPos>0 do
begin
if MarkPos>1 then
begin
// Rysowanie tekstu przed wyr��nionym
// Rysowanie tekstu przed wyró¿nionym
ACanvas.Font.Style:=ACanvas.Font.Style - [fsBold];
s:=copy(DrawText, 1, MarkPos-1);
@ -1547,7 +1547,7 @@ while MarkPos>0 do
delete(BaseText, 1, MarkPos-1);
end;
// Rysowanie wyr��nionego tekstu
// Rysowanie wyró¿nionego tekstu
ACanvas.Font.Style:=ACanvas.Font.Style + [fsBold];
s:=copy(DrawText, 1, MarkTextLength);
@ -1628,7 +1628,7 @@ var LineRect : T2DIntRect;
begin
if ABitmap.PixelFormat<>pf24bit then
raise exception.create('TGUITools.DrawHLine: Bitmapa musi by w trybie 24-bitowym!');
raise exception.create('TGUITools.DrawHLine: Bitmapa musi byæ w trybie 24-bitowym!');
if x2<x1 then
begin
@ -1657,7 +1657,7 @@ var OrgLineRect : T2DIntRect;
begin
if ABitmap.PixelFormat<>pf24bit then
raise exception.create('TGUITools.DrawHLine: Bitmapa musi by w trybie 24-bitowym!');
raise exception.create('TGUITools.DrawHLine: Bitmapa musi byæ w trybie 24-bitowym!');
if x2<x1 then
begin
@ -1711,7 +1711,7 @@ var UseOrgClipRgn: Boolean;
OrgRgn: HRGN;
begin
// Zapamitywanie oryginalnego ClipRgn i ustawianie nowego
// Zapamiêtywanie oryginalnego ClipRgn i ustawianie nowego
SaveClipRgn(ACanvas.Handle, UseOrgClipRgn, OrgRgn);
SelectClipRgn(ACanvas.Handle, Region);
@ -1728,7 +1728,7 @@ var UseOrgClipRgn : boolean;
OrgRgn : HRGN;
begin
// Zapamitywanie oryginalnego ClipRgn i ustawianie nowego
// Zapamiêtywanie oryginalnego ClipRgn i ustawianie nowego
SaveClipRgn(ACanvas.Handle, UseOrgClipRgn, OrgRgn);
ClipRgn:=CreateRectRgn(ClipRect.left, ClipRect.Top, ClipRect.Right+1, ClipRect.Bottom+1);
@ -1739,7 +1739,7 @@ SelectClipRgn(ACanvas.Handle, ClipRgn);
DrawRegion(ACanvas, Region, Rect, ColorFrom, ColorTo, GradientKind);
// Przywracanie poprzedniego ClipRgn i usuwanie wykorzystanych regionw
// Przywracanie poprzedniego ClipRgn i usuwanie wykorzystanych regionów
RestoreClipRgn(ACanvas.Handle, UseOrgClipRgn, OrgRgn);
DeleteObject(ClipRgn);
end;
@ -1754,7 +1754,7 @@ var UseOrgClipRgn : boolean;
OrgRgn : HRGN;
begin
// Zapamitywanie oryginalnego ClipRgn i ustawianie nowego
// Zapamiêtywanie oryginalnego ClipRgn i ustawianie nowego
SaveClipRgn(ACanvas.Handle, UseOrgClipRgn, OrgRgn);
ClipRgn:=CreateRectRgn(ClipRect.left, ClipRect.Top, ClipRect.Right+1, ClipRect.Bottom+1);
@ -1765,7 +1765,7 @@ SelectClipRgn(ACanvas.Handle, ClipRgn);
DrawRoundRect(ACanvas, Rect, Radius, ColorFrom, ColorTo, GradientKind, LeftTopRound, RightTopRound, LeftBottomRound, RightBottomRound);
// Przywracanie poprzedniego ClipRgn i usuwanie wykorzystanych regionw
// Przywracanie poprzedniego ClipRgn i usuwanie wykorzystanych regionów
RestoreClipRgn(ACanvas.Handle, UseOrgClipRgn, OrgRgn);
DeleteObject(ClipRgn);
end;
@ -1812,7 +1812,7 @@ if Radius<1 then
if (Radius*2>Rect.width) or (Radius*2>Rect.height) then
exit;
// Zapamitywanie oryginalnego ClipRgn i ustawianie nowego
// Zapamiêtywanie oryginalnego ClipRgn i ustawianie nowego
SaveClipRgn(ACanvas.Handle, UseOrgClipRgn, OrgRgn);
if not(LeftTopRound) and not(RightTopRound) and not(LeftBottomRound) and not (RightBottomRound) then
@ -1862,7 +1862,7 @@ ColorTo:=ColorToRGB(ColorTo);
FillGradientRectangle(ACanvas, Rect, ColorFrom, ColorTo, GradientKind);
// Przywracanie poprzedniego ClipRgn i usuwanie wykorzystanych regionw
// Przywracanie poprzedniego ClipRgn i usuwanie wykorzystanych regionów
RestoreClipRgn(ACanvas.Handle, UseOrgClipRgn, OrgRgn);
DeleteObject(RoundRgn);
end;
@ -1914,7 +1914,7 @@ with ABitmap.Canvas do
begin
s:=AText;
tw:=TextWidth(s) + 2;
// Jeli tekst si zmieci, rysujemy
// Jeœli tekst siê zmieœci, rysujemy
if tw<=(x2-x1+1) then
case Align of
taLeftJustify : TGUITools.DrawOutlinedText(ABitmap,x1, y, AText, TextColor, OutlineColor);
@ -1946,7 +1946,7 @@ with ACanvas do
begin
s:=AText;
tw:=TextWidth(s) + 2;
// Jeli tekst si zmieci, rysujemy
// Jeœli tekst siê zmieœci, rysujemy
if tw<=(x2-x1+1) then
case Align of
taLeftJustify : TGUITools.DrawOutlinedText(ACanvas,x1, y, AText, TextColor, OutlineColor);
@ -2069,7 +2069,7 @@ with ACanvas do
begin
s:=AText;
tw:=TextWidth(s);
// Jeli tekst si zmieci, rysujemy
// Jeœli tekst siê zmieœci, rysujemy
if tw<=(x2-x1+1) then
case Align of
taLeftJustify : TextOut(x1,y,AText);
@ -2096,12 +2096,12 @@ var TempRect : T2DIntRect;
begin
if ABuffer.PixelFormat<>pf24bit then
raise exception.create('TGUITools.RenderBackground: Bitmapa musi by w trybie 24-bitowym!');
raise exception.create('TGUITools.RenderBackground: Bitmapa musi byæ w trybie 24-bitowym!');
if (rect.left>rect.right) or (rect.top>rect.bottom) then
exit;
// Zarwno metoda FillRect jak i WinAPI'owe rysowanie gradientw jest
// zabezpieczone przed rysowaniem poza obszarem p��tna.
// Zarówno metoda FillRect jak i WinAPI'owe rysowanie gradientów jest
// zabezpieczone przed rysowaniem poza obszarem p³ótna.
case BackgroundKind of
bkSolid: begin
ABuffer.Canvas.brush.Color:=Color1;
@ -2180,7 +2180,7 @@ var LineRect : T2DIntRect;
begin
if ABitmap.PixelFormat<>pf24bit then
raise exception.create('TGUITools.DrawHLine: Bitmapa musi by w trybie 24-bitowym!');
raise exception.create('TGUITools.DrawHLine: Bitmapa musi byæ w trybie 24-bitowym!');
if y2<y1 then
begin
@ -2209,7 +2209,7 @@ var OrgLineRect : T2DIntRect;
begin
if ABitmap.PixelFormat<>pf24bit then
raise exception.create('TGUITools.DrawHLine: Bitmapa musi by w trybie 24-bitowym!');
raise exception.create('TGUITools.DrawHLine: Bitmapa musi byæ w trybie 24-bitowym!');
if y2<y1 then
begin
@ -2257,7 +2257,7 @@ var UseOrgClipRgn : boolean;
OrgRgn : HRGN;
begin
// Zapamitywanie oryginalnego ClipRgn i ustawianie nowego
// Zapamiêtywanie oryginalnego ClipRgn i ustawianie nowego
SaveClipRgn(ACanvas.Handle, UseOrgClipRgn, OrgRgn);
ClipRgn:=CreateRectRgn(ClipRect.left, ClipRect.Top, ClipRect.Right+1, ClipRect.Bottom+1);
@ -2268,7 +2268,7 @@ SelectClipRgn(ACanvas.Handle, ClipRgn);
DrawVLine(ACanvas, x, y1, y2, Color);
// Przywracanie poprzedniego ClipRgn i usuwanie wykorzystanych regionw
// Przywracanie poprzedniego ClipRgn i usuwanie wykorzystanych regionów
RestoreClipRgn(ACanvas.Handle, UseOrgClipRgn, OrgRgn);
DeleteObject(ClipRgn);
end;
@ -2292,7 +2292,7 @@ DrawAARoundCorner(ACanvas, T2DIntVector.create(Rect.Right - Radius + 1, Rect.Bot
ACanvas.Pen.color:=Color;
ACanvas.pen.style:=psSolid;
// Draw*Line s zabezpieczone przed rysowaniem poza obszarem
// Draw*Line s¹ zabezpieczone przed rysowaniem poza obszarem
DrawVLine(ACanvas, Rect.left, rect.top + Radius, rect.bottom - Radius, Color);
DrawVLine(ACanvas, Rect.right, rect.top + Radius, rect.bottom - Radius, Color);
DrawHLine(ACanvas, Rect.left + Radius, Rect.right - Radius, rect.top, Color);
@ -2307,7 +2307,7 @@ var UseOrgClipRgn : boolean;
OrgRgn : HRGN;
begin
// Zapamitywanie oryginalnego ClipRgn i ustawianie nowego
// Zapamiêtywanie oryginalnego ClipRgn i ustawianie nowego
SaveClipRgn(ACanvas.Handle, UseOrgClipRgn, OrgRgn);
ClipRgn:=CreateRectRgn(ClipRect.left, ClipRect.Top, ClipRect.Right+1, ClipRect.Bottom+1);
@ -2318,7 +2318,7 @@ SelectClipRgn(ACanvas.Handle, ClipRgn);
DrawAARoundFrame(ACanvas, Rect, Radius, Color);
// Przywracanie poprzedniego ClipRgn i usuwanie wykorzystanych regionw
// Przywracanie poprzedniego ClipRgn i usuwanie wykorzystanych regionów
RestoreClipRgn(ACanvas.Handle, UseOrgClipRgn, OrgRgn);
DeleteObject(ClipRgn);
end;
@ -2346,7 +2346,7 @@ var UseOrgClipRgn: Boolean;
DCStackPos : integer;
begin
// Zapamitywanie oryginalnego ClipRgn i ustawianie nowego
// Zapamiêtywanie oryginalnego ClipRgn i ustawianie nowego
SaveClipRgn(ACanvas.Handle, UseOrgClipRgn, OrgRgn);
ClipRgn:=CreateRectRgn(ClipRect.left, ClipRect.Top, ClipRect.Right+1, ClipRect.Bottom+1);
@ -2355,8 +2355,8 @@ if UseOrgClipRgn then
SelectClipRgn(ACanvas.Handle, ClipRgn);
// Hack poprawiajcy b��d w ImageList.Draw, ktry nie przywraca poprzedniego
// koloru czcionki dla p��tna
// Hack poprawiaj¹cy b³¹d w ImageList.Draw, który nie przywraca poprzedniego
// koloru czcionki dla p³ótna
DcStackPos:=SaveDC(ACanvas.Handle);
ImageList.Draw(ACanvas, Point.x, Point.y, ImageIndex, false);
RestoreDC(ACanvas.Handle, DcStackPos);

View File

@ -15,16 +15,16 @@ const NUM_ZERO = 0.00000001;
* *
*******************************************************************************)
type // Wskanik do tablicy TRGBTriple
type // WskaŸnik do tablicy TRGBTriple
PRGBTripleArray = ^TRGBTripleArray;
// Tablica TRGBTriple (uywana podczas operacji ze ScanLine)
// Tablica TRGBTriple (u¿ywana podczas operacji ze ScanLine)
TRGBTripleArray = array[word] of TRGBTriple;
type THSLTriple = record
H, S, L : extended;
end;
type // Typ uywany podczas rysowania gradientw
type // Typ u¿ywany podczas rysowania gradientów
TRIVERTEX = packed record
x,y : DWORD;
Red,
@ -37,12 +37,12 @@ type // Rodzaj gradientu
TGradientType = (gtVertical, gtHorizontal);
// Rodzaj linii gradientowej (miejsce rozmycia)
TGradientLineShade = (lsShadeStart, lsShadeEnds, lsShadeCenter, lsShadeEnd);
// Rodzaj linii gradientowej (wypuk�o��)
// Rodzaj linii gradientowej (wypuk³oœæ)
TGradient3dLine = (glRaised, glLowered);
(*******************************************************************************
* *
* Nag��wki dla zewntrznych funkcji *
* Nag³ówki dla zewnêtrznych funkcji *
* *
*******************************************************************************)
@ -50,7 +50,7 @@ function GradientFill(DC : hDC; pVertex : Pointer; dwNumVertex : DWORD; pMesh :
(*******************************************************************************
* *
* Klasy narzdziowe *
* Klasy narzêdziowe *
* *
*******************************************************************************)
@ -191,7 +191,7 @@ if max=min then result:=max else
result:=round((pos-min)*100/(max-min));
end;
{.$MESSAGE WARN 'Porwnywanie liczb rzeczywistych? Trzeba poprawi'}
{.$MESSAGE WARN 'Porównywanie liczb rzeczywistych? Trzeba poprawiæ'}
class function TColorTools.RGB2HSL(ARGB : TRGBTriple) : THSLTriple;
var RGBmin, RGBmax : extended;
@ -209,7 +209,7 @@ RGBmax:=max(R,min(G,B));
H:=0;
if RGBmax=RGBmin then
begin
// H jest nieoznaczone, ale przyjmijmy zero dla sensownoci oblicze
// H jest nieoznaczone, ale przyjmijmy zero dla sensownoœci obliczeñ
H:=0;
end else
if (R=RGBmax) and (G>=B) then

View File

@ -4,7 +4,7 @@ unit SpkMath;
interface
{TODO: Zastanowi si, czy wszystkie niejawne casty maj sens}
{TODO: Zastanowiæ siê, czy wszystkie niejawne casty maj¹ sens}
uses Windows, Math, SysUtils;
@ -12,7 +12,7 @@ const NUM_ZERO = 1e-12;
type TRectCorner = (rcLeftTop, rcRightTop, rcLeftBottom, rcRightBottom);
type // Dwuwymiarowy wektor o cakowitych wsp��rzdnych
type // Dwuwymiarowy wektor o ca³kowitych wspó³rzêdnych
T2DIntVector = record
x, y : integer;
public
@ -38,10 +38,10 @@ type // Dwuwymiarowy wektor o ca
function DistanceTo(AVector : T2DIntVector) : double;
end;
type // Punkt w przestrzeni dwuwymiarowej o cakowitych wsp��rzdnych
type // Punkt w przestrzeni dwuwymiarowej o ca³kowitych wspó³rzêdnych
T2DIntPoint = T2DIntVector;
type // Prostokt w przestrzeni dwuwymiarowej o cakowitych wsp��rzdnych
type // Prostok¹t w przestrzeni dwuwymiarowej o ca³kowitych wspó³rzêdnych
T2DIntRect = record
public
constructor Create(ALeft, ATop, ARight, ABottom : integer); overload;
@ -75,7 +75,7 @@ type // Prostok
1 : (TopLeft : T2DIntVector; BottomRight : T2DIntVector);
end;
type // Wektor w przestrzeni dwuwymiarowej o rzeczywistych wsp��rzdnych
type // Wektor w przestrzeni dwuwymiarowej o rzeczywistych wspó³rzêdnych
T2DVector = record
x, y : extended;
public
@ -115,10 +115,10 @@ type // Wektor w przestrzeni dwuwymiarowej o rzeczywistych wsp
function DistanceFromAxis(APoint : T2DVector; AVector : T2DVector) : extended;
end;
type // Punkt w przestrzeni dwuwymiarowej o rzeczywistych wsp��rzdnych
type // Punkt w przestrzeni dwuwymiarowej o rzeczywistych wspó³rzêdnych
T2DPoint = T2DVector;
type // Prostokt w przestrzeni dwuwymiarowej o rzeczywistych wsp��rzdnych
type // Prostok¹t w przestrzeni dwuwymiarowej o rzeczywistych wspó³rzêdnych
T2DRect = record
public
constructor Create(ALeft, ATop, ARight, ABottom : extended); overload;
@ -152,7 +152,7 @@ type // Prostok
1 : (TopLeft : T2DVector; BottomRight : T2DVector);
end;
type // Wektor w przestrzeni trjwymiarowej o rzeczywistych wsp��rzdnych
type // Wektor w przestrzeni trójwymiarowej o rzeczywistych wspó³rzêdnych
T3DVector = record
x, y, z : extended;
public
@ -356,7 +356,7 @@ var len : extended;
begin
len:=self.Length;
if len<NUM_ZERO then
raise exception.create('T2DVector.DownNormal: Nie mog obliczy normalnej do wektora zerowego!');
raise exception.create('T2DVector.DownNormal: Nie mogê obliczyæ normalnej do wektora zerowego!');
if self.x>0 then
begin
@ -474,7 +474,7 @@ var len : extended;
begin
len:=self.Length;
if len<NUM_ZERO then
raise exception.create('T2DVector.Normalize: Nie mona znormalizowa wektora zerowego!');
raise exception.create('T2DVector.Normalize: Nie mo¿na znormalizowaæ wektora zerowego!');
self.x:=self.x/len;
self.y:=self.y/len;
end;
@ -486,7 +486,7 @@ var len : extended;
begin
len:=self.Length;
if len<NUM_ZERO then
raise exception.create('T2DVector.Normalized: Nie mona obliczy normy wektora zerowego!');
raise exception.create('T2DVector.Normalized: Nie mo¿na obliczyæ normy wektora zerowego!');
result.x:=self.x/len;
result.y:=self.y/len;
end;
@ -521,7 +521,7 @@ var product : extended;
begin
len:=vector.Length;
if abs(len)<NUM_ZERO then
raise exception.create('T2DVector.ProjectedTo: Nie mona rzutowa na wektor zerowy!');
raise exception.create('T2DVector.ProjectedTo: Nie mo¿na rzutowaæ na wektor zerowy!');
product:=self.x*vector.x + self.y*vector.y;
result.x:=(vector.x * product) / sqr(len);
@ -536,7 +536,7 @@ var product : extended;
begin
len:=vector.Length;
if abs(len)<NUM_ZERO then
raise exception.create('T2DVector.ProjectTo: Nie mona rzutowa na wektor zerowy!');
raise exception.create('T2DVector.ProjectTo: Nie mo¿na rzutowaæ na wektor zerowy!');
product:=self.x*vector.x + self.y*vector.y;
@ -575,7 +575,7 @@ var len : extended;
begin
len:=self.Length;
if len<NUM_ZERO then
raise exception.create('T2DVector.UpNormal: Nie mog obliczy normalnej do wektora zerowego!');
raise exception.create('T2DVector.UpNormal: Nie mogê obliczyæ normalnej do wektora zerowego!');
if self.x>0 then
begin
@ -634,7 +634,7 @@ result.y:=-(self.x * vector.z - self.z * vector.x);
result.z:=self.x * vector.y - self.y * vector.x;
len:=result.Length;
if len<NUM_ZERO then
raise exception.create('T3DVector.DownNormalTo: Nie mog obliczy normalnej: wektory le�� na wsplnej prostej!');
raise exception.create('T3DVector.DownNormalTo: Nie mogê obliczyæ normalnej: wektory le¿¹ na wspólnej prostej!');
result.x:=result.x/len;
result.y:=result.y/len;
result.z:=result.z/len;
@ -762,7 +762,7 @@ var len : extended;
begin
len:=self.Length;
if len<NUM_ZERO then
raise exception.create('T3DVector.Normalize: Nie mona znormalizowa wektora zerowego!');
raise exception.create('T3DVector.Normalize: Nie mo¿na znormalizowaæ wektora zerowego!');
self.x:=self.x/len;
self.y:=self.y/len;
self.z:=self.z/len;
@ -775,7 +775,7 @@ var len : extended;
begin
len:=self.Length;
if len<NUM_ZERO then
raise exception.create('T3DVector.Normalized: Nie mona obliczy normy wektora zerowego!');
raise exception.create('T3DVector.Normalized: Nie mo¿na obliczyæ normy wektora zerowego!');
result.x:=self.x/len;
result.y:=self.y/len;
result.z:=self.z/len;
@ -796,7 +796,7 @@ var product : extended;
begin
len:=vector.Length;
if abs(len)<NUM_ZERO then
raise exception.create('T3DVector.ProjectedTo: Nie mona rzutowa na wektor zerowy!');
raise exception.create('T3DVector.ProjectedTo: Nie mo¿na rzutowaæ na wektor zerowy!');
product:=self.x*vector.x + self.y*vector.y + self.z*vector.z;
result.x:=(vector.x * product) / sqr(len);
@ -812,7 +812,7 @@ var product : extended;
begin
len:=vector.Length;
if abs(len)<NUM_ZERO then
raise exception.create('T3DVector.ProjectTo: Nie mona rzutowa na wektor zerowy!');
raise exception.create('T3DVector.ProjectTo: Nie mo¿na rzutowaæ na wektor zerowy!');
product:=self.x*vector.x + self.y*vector.y + self.z*vector.z;
self.x:=(vector.x * product) / sqr(len);
@ -845,7 +845,7 @@ result.z:=self.x * vector.y - self.y * vector.x;
len:=result.Length;
if len<NUM_ZERO then
raise exception.create('T3DVector.UpNormalTo: Nie mog obliczy normalnej: wektory le�� na wsplnej prostej!');
raise exception.create('T3DVector.UpNormalTo: Nie mogê obliczyæ normalnej: wektory le¿¹ na wspólnej prostej!');
result.x:=result.x/len;
result.y:=result.y/len;
result.z:=result.z/len;
@ -1311,7 +1311,7 @@ var center : extended;
begin
if (ANewHeight<0) then
raise exception.create('T2DRect.SetCenteredHeight: Nowa wysoko�� mniejsza od zera!');
raise exception.create('T2DRect.SetCenteredHeight: Nowa wysokoϾ mniejsza od zera!');
center:=self.top+(self.bottom-self.top)/2;
self.top:=center-(ANewHeight/2);
@ -1324,7 +1324,7 @@ var center : extended;
begin
if (ANewWidth<0) then
raise exception.create('T2DRect.SetCenteredWidth: Nowa szeroko�� mniejsza od zera!');
raise exception.create('T2DRect.SetCenteredWidth: Nowa szerokoϾ mniejsza od zera!');
center:=self.left+(self.right-self.left)/2;
self.left:=center-(ANewWidth/2);

View File

@ -3,9 +3,9 @@ unit SpkToolbar;
(*******************************************************************************
* *
* Plik: SpkToolbar.pas *
* Opis: G��wny komponent toolbara *
* Copyright: (c) 2009 by Spook. Jakiekolwiek uycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi zamanie *
* Opis: G³ówny komponent toolbara *
* Copyright: (c) 2009 by Spook. Jakiekolwiek u¿ycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi z³amanie *
* prawa autorskiego! *
* *
*******************************************************************************)
@ -18,18 +18,18 @@ uses Windows, Graphics, SysUtils, Controls, Classes, Messages, Math, Dialogs,
spkt_Appearance, spkt_BaseItem, spkt_Const, spkt_Dispatch, spkt_Tab,
spkt_Pane, spkt_Exceptions, spkt_Types;
type /// <summary>Typ opisujcy regiony toolbara, ktre s uywane podczas
/// obsugi interakcji z mysz</summary>
type /// <summary>Typ opisuj¹cy regiony toolbara, które s¹ u¿ywane podczas
/// obs³ugi interakcji z mysz¹</summary>
TSpkMouseToolbarElement = (teNone, teToolbarArea, teTabs, teTabContents);
type TSpkToolbar = class;
/// <summary>Klasa dyspozytora s�u��ca do bezpiecznego przyjmowania
/// informacji oraz ��da od pod-elementw</summary>
/// <summary>Klasa dyspozytora s³u¿¹ca do bezpiecznego przyjmowania
/// informacji oraz ¿¹dañ od pod-elementów</summary>
TSpkToolbarDispatch = class(TSpkBaseToolbarDispatch)
private
/// <summary>Komponent toolbara, ktry przyjmuje informacje i ��dania
/// od pod-elementw</summary>
/// <summary>Komponent toolbara, który przyjmuje informacje i ¿¹dania
/// od pod-elementów</summary>
FToolbar : TSpkToolbar;
protected
public
@ -44,29 +44,29 @@ type TSpkToolbar = class;
// *** Implementacja abstrakcyjnych metod TSpkBaseToolbarDispatch ***
// ******************************************************************
/// <summary>Metoda wywoywana, gdy zmieni si zawarto�� obiektu wygldu
/// zawierajcego kolory i czcionki uywane do rysowania toolbara.
/// <summary>Metoda wywo³ywana, gdy zmieni siê zawartoœæ obiektu wygl¹du
/// zawieraj¹cego kolory i czcionki u¿ywane do rysowania toolbara.
/// </summary>
procedure NotifyAppearanceChanged; override;
/// <summary>Metoda wywoywana, gdy zmieni si lista pod-elementw jednego
/// z elementw toolbara</summary>
/// <summary>Metoda wywo³ywana, gdy zmieni siê lista pod-elementów jednego
/// z elementów toolbara</summary>
procedure NotifyItemsChanged; override;
/// <summary>Metoda wywoywana, gdy zmieni si rozmiar lub po�o�enie
/// (metryka) jednego z elementw toolbara</summary>
/// <summary>Metoda wywo³ywana, gdy zmieni siê rozmiar lub po³o¿enie
/// (metryka) jednego z elementów toolbara</summary>
procedure NotifyMetricsChanged; override;
/// <summary>Metoda wywoywana, gdy zmieni si wygld jednego z elementw
/// toolbara, nie wymagajcy jednak przebudowania metryk.</summary>
/// <summary>Metoda wywo³ywana, gdy zmieni siê wygl¹d jednego z elementów
/// toolbara, nie wymagaj¹cy jednak przebudowania metryk.</summary>
procedure NotifyVisualsChanged; override;
/// <summary>Metoda ��da dostarczenia przez toolbar pomocniczej
/// bitmapy uywanej - przykadowo - do obliczania rozmiarw renderowanego
/// <summary>Metoda ¿¹da dostarczenia przez toolbar pomocniczej
/// bitmapy u¿ywanej - przyk³adowo - do obliczania rozmiarów renderowanego
/// tekstu</summary>
function GetTempBitmap : TBitmap; override;
/// <summary>Metoda przelicza wsp��rzdne toolbara na wsp��rzdne
/// ekranu, co umoliwia - na przykad - rozwinicie popup menu.</summary>
/// <summary>Metoda przelicza wspó³rzêdne toolbara na wspó³rzêdne
/// ekranu, co umo¿liwia - na przyk³ad - rozwiniêcie popup menu.</summary>
function ClientToScreen(Point : T2DIntPoint) : T2DIntPoint; override;
end;
/// <summary>Rozszerzony pasek narzdzi inspirowany Microsoft Fluent
/// <summary>Rozszerzony pasek narzêdzi inspirowany Microsoft Fluent
/// UI</summary>
TSpkToolbar = class(TCustomControl)
private
@ -74,81 +74,81 @@ type TSpkToolbar = class;
/// toolbara</summary>
FToolbarDispatch : TSpkToolbarDispatch;
/// <summary>Bufor w ktrym rysowany jest toolbar</summary>
/// <summary>Bufor w którym rysowany jest toolbar</summary>
FBuffer : TBitmap;
/// <summary>Pomocnicza bitmapa przekazywana na yczenie elementom
/// <summary>Pomocnicza bitmapa przekazywana na ¿yczenie elementom
/// toolbara</summary>
FTemporary : TBitmap;
/// <summary>Tablica rectw "uchwytw" zakadek</summary>
/// <summary>Tablica rectów "uchwytów" zak³adek</summary>
FTabRects : array of T2DIntRect;
/// <summary>Cliprect obszaru "uchwytw" zakadek</summary>
/// <summary>Cliprect obszaru "uchwytów" zak³adek</summary>
FTabClipRect : T2DIntRect;
/// <summary>Cliprect obszaru zawartoci zakadki</summary>
/// <summary>Cliprect obszaru zawartoœci zak³adki</summary>
FTabContentsClipRect : T2DIntRect;
/// <summary>Element toolbara znajdujcy si obecnie pod myszk</summary>
/// <summary>Element toolbara znajduj¹cy siê obecnie pod myszk¹</summary>
FMouseHoverElement : TSpkMouseToolbarElement;
/// <summary>Element toolbara majcy obecnie wy��czno�� na otrzymywanie
/// komunikatw od myszy</summary>
/// <summary>Element toolbara maj¹cy obecnie wy³¹cznoœæ na otrzymywanie
/// komunikatów od myszy</summary>
FMouseActiveElement : TSpkMouseToolbarElement;
/// <summary>"Uchwyt" zakadki, nad ktrym znajduje si obecnie mysz
/// <summary>"Uchwyt" zak³adki, nad którym znajduje siê obecnie mysz
/// </summary>
FTabHover : integer;
/// <summary>Flaga informujca o tym, czy metryki toolbara i jego elementw
/// s aktualne</summary>
/// <summary>Flaga informuj¹ca o tym, czy metryki toolbara i jego elementów
/// s¹ aktualne</summary>
FMetricsValid : boolean;
/// <summary>Flaga informujca o tym, czy zawarto�� bufora jest aktualna
/// <summary>Flaga informuj¹ca o tym, czy zawartoœæ bufora jest aktualna
/// </summary>
FBufferValid : boolean;
/// <summary>Flaga InternalUpdating pozwala na zablokowanie walidacji
/// metryk i bufora w momencie, gdy komponent przebudowuje swoj zawarto��.
/// FInternalUpdating jest zapalana i gaszona wewntrznie, przez komponent.
/// metryk i bufora w momencie, gdy komponent przebudowuje swoj¹ zawartoœæ.
/// FInternalUpdating jest zapalana i gaszona wewnêtrznie, przez komponent.
/// </summary>
FInternalUpdating : boolean;
/// <summary>Flaga IUpdating pozwala na zablokowanie walidacji
/// metryk i bufora w momencie, gdy uytkownik przebudowuje zawarto��
/// komponentu. FUpdating jest sterowana przez uytkownika.</summary>
/// metryk i bufora w momencie, gdy u¿ytkownik przebudowuje zawartoœæ
/// komponentu. FUpdating jest sterowana przez u¿ytkownika.</summary>
FUpdating : boolean;
protected
/// <summary>Instancja obiektu wygldu, przechowujcego kolory i czcionki
/// uywane podczas renderowania komponentu</summary>
/// <summary>Instancja obiektu wygl¹du, przechowuj¹cego kolory i czcionki
/// u¿ywane podczas renderowania komponentu</summary>
FAppearance : TSpkToolbarAppearance;
/// <summary>Zakadki toolbara</summary>
/// <summary>Zak³adki toolbara</summary>
FTabs : TSpkTabs;
/// <summary>Indeks wybranej zakadki</summary>
/// <summary>Indeks wybranej zak³adki</summary>
FTabIndex : integer;
/// <summary>Lista maych obrazkw elementw toolbara</summary>
/// <summary>Lista ma³ych obrazków elementów toolbara</summary>
FImages : TImageList;
/// <summary>Lista maych obrazkw w stanie "disabled". Jeli nie jest
/// przypisana, obrazki w stanie "disabled" b�d� generowane automatycznie.
/// <summary>Lista ma³ych obrazków w stanie "disabled". Jeœli nie jest
/// przypisana, obrazki w stanie "disabled" bêd¹ generowane automatycznie.
/// </summary>
FDisabledImages : TImageList;
/// <summary>Lista duych obrazkw elementw toolbara</summary>
/// <summary>Lista du¿ych obrazków elementów toolbara</summary>
FLargeImages : TImageList;
/// <summary>Lista duych obrazkw w stanie "disabled". Jeli nie jest
/// przypisana, obrazki w stanie "disabled" b�d� generowane automatycznie.
/// <summary>Lista du¿ych obrazków w stanie "disabled". Jeœli nie jest
/// przypisana, obrazki w stanie "disabled" bêd¹ generowane automatycznie.
/// </summary>
FDisabledLargeImages : TImageList;
// *******************************************
// *** Zarzdzanie stanem metryki i bufora ***
// *** Zarz¹dzanie stanem metryki i bufora ***
// *******************************************
/// <summary>Metoda gasi flagi: FMetricsValid oraz FBufferValid</summary>
procedure SetMetricsInvalid;
/// <summary>Metoda gasi flag FBufferValid</summary>
/// <summary>Metoda gasi flagê FBufferValid</summary>
procedure SetBufferInvalid;
/// <summary>Metoda waliduje metryki toolbara i jego elementw</summary>
/// <summary>Metoda waliduje metryki toolbara i jego elementów</summary>
procedure ValidateMetrics;
/// <summary>Metoda waliduje zawarto�� bufora</summary>
/// <summary>Metoda waliduje zawartoϾ bufora</summary>
procedure ValidateBuffer;
/// <summary>Metoda w��cza tryb wewntrznej przebudowy - zapala flag
/// <summary>Metoda w³¹cza tryb wewnêtrznej przebudowy - zapala flagê
/// FInternalUpdating</summary>
procedure InternalBeginUpdate;
/// <summary>Metoda wy��cza tryb wewntrznej przebudowy - gasi flag
/// <summary>Metoda wy³¹cza tryb wewnêtrznej przebudowy - gasi flagê
/// FInternalUpdating</summary>
procedure InternalEndUpdate;
@ -158,43 +158,43 @@ type TSpkToolbar = class;
/// <summary>Zmiana rozmiaru komponentu</summary>
procedure Resize; override;
/// <summary>Metoda wywoywana po opuszczeniu obszaru komponentu przez
/// wskanik myszy</summary>
/// <summary>Metoda wywo³ywana po opuszczeniu obszaru komponentu przez
/// wskaŸnik myszy</summary>
procedure MouseLeave;
/// <summary>Metoda wywoywana po wciniciu przycisku myszy</summary>
/// <summary>Metoda wywo³ywana po wciœniêciu przycisku myszy</summary>
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
/// <summary>Metoda wywoywana, gdy nad komponentem przesunie si wskanik
/// <summary>Metoda wywo³ywana, gdy nad komponentem przesunie siê wskaŸnik
/// myszy</summary>
procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
/// <summary>Metoda wywoywana po puszczeniu przycisku myszy</summary>
/// <summary>Metoda wywo³ywana po puszczeniu przycisku myszy</summary>
procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
/// <summary>Metoda wywoywana, gdy cay komponent wczyta si z DFMa
/// <summary>Metoda wywo³ywana, gdy ca³y komponent wczyta siê z DFMa
/// </summary>
procedure Loaded; override;
/// <summary>Metoda wywoywana, gdy komponent staje si Ownerem innego
/// komponentu, b�d� gdy jeden z jego pod-komponentw jest zwalniany
/// <summary>Metoda wywo³ywana, gdy komponent staje siê Ownerem innego
/// komponentu, b¹dŸ gdy jeden z jego pod-komponentów jest zwalniany
/// </summary>
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
// ******************************************
// *** Obsuga zdarze myszy dla zakadek ***
// *** Obs³uga zdarzeñ myszy dla zak³adek ***
// ******************************************
/// <summary>Metoda wywoywana po opuszczeniu przez wskanik myszy obszaru
/// "uchwytw" zakadek</summary>
/// <summary>Metoda wywo³ywana po opuszczeniu przez wskaŸnik myszy obszaru
/// "uchwytów" zak³adek</summary>
procedure TabMouseLeave;
/// <summary>Metoda wywoywana po wciniciu przycisku myszy, gdy wskanik
/// jest nad obszarem zakadek</summary>
/// <summary>Metoda wywo³ywana po wciœniêciu przycisku myszy, gdy wskaŸnik
/// jest nad obszarem zak³adek</summary>
procedure TabMouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer);
/// <summary>Metoda wywoywana, gdy mysz przesunie si ponad obszarem
/// "uchwytw" zakadek</summary>
/// <summary>Metoda wywo³ywana, gdy mysz przesunie siê ponad obszarem
/// "uchwytów" zak³adek</summary>
procedure TabMouseMove(Shift: TShiftState; X, Y: Integer);
/// <summary>Metoda wywoywana, gdy jeden z przyciskw myszy zostanie
/// puszczony, gdy obszar zakadek by aktywnym elementem toolbara
/// <summary>Metoda wywo³ywana, gdy jeden z przycisków myszy zostanie
/// puszczony, gdy obszar zak³adek by³ aktywnym elementem toolbara
/// </summary>
procedure TabMouseUp(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer);
@ -203,66 +203,66 @@ type TSpkToolbar = class;
// *** Pomocnicze ***
// ******************
/// <summary>Metoda sprawdza, czy cho jedna zakadka ma ustawion flag
/// widocznoci (Visible)</summary>
/// <summary>Metoda sprawdza, czy choæ jedna zak³adka ma ustawion¹ flagê
/// widocznoœci (Visible)</summary>
function AtLeastOneTabVisible : boolean;
// ***************************
// *** Obsuga komunikatw ***
// *** Obs³uga komunikatów ***
// ***************************
/// <summary>Komunikat odbierany, gdy mysz opuci obszar komponentu
/// <summary>Komunikat odbierany, gdy mysz opuœci obszar komponentu
/// </summary>
procedure CMMouseLeave(var msg : TMessage); message CM_MOUSELEAVE;
// ********************************
// *** Obsuga designtime i DFM ***
// *** Obs³uga designtime i DFM ***
// ********************************
/// <summary>Metoda zwraca elementy, ktre maj zosta zapisane jako
/// <summary>Metoda zwraca elementy, które maj¹ zostaæ zapisane jako
/// pod-elementy komponentu</summary>
procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
/// <summary>Metoda pozwala na zapisanie lub odczytanie dodatkowych
/// wasnoci komponentu</summary>
/// w³asnoœci komponentu</summary>
procedure DefineProperties(Filer : TFiler); override;
// *************************
// *** Gettery i settery ***
// *************************
/// <summary>Getter dla wasnoci Height</summary>
/// <summary>Getter dla w³asnoœci Height</summary>
function GetHeight: integer;
/// <summary>Setter dla wasnoci Appearance</summary>
/// <summary>Setter dla w³asnoœci Appearance</summary>
procedure SetAppearance(const Value: TSpkToolbarAppearance);
/// <summary>Getter dla wasnoci Color</summary>
/// <summary>Getter dla w³asnoœci Color</summary>
function GetColor: TColor;
/// <summary>Setter dla wasnoci Color</summary>
/// <summary>Setter dla w³asnoœci Color</summary>
procedure SetColor(const Value: TColor);
/// <summary>Setter dla wasnoci TabIndex</summary>
/// <summary>Setter dla w³asnoœci TabIndex</summary>
procedure SetTabIndex(const Value: integer);
/// <summary>Setter dla wasnoci Images</summary>
/// <summary>Setter dla w³asnoœci Images</summary>
procedure SetImages(const Value: TImageList);
/// <summary>Setter dla wasnoci DisabledImages</summary>
/// <summary>Setter dla w³asnoœci DisabledImages</summary>
procedure SetDisabledImages(const Value : TImageList);
/// <summary>Setter dla wasnoci LargeImages</summary>
/// <summary>Setter dla w³asnoœci LargeImages</summary>
procedure SetLargeImages(const Value : TImageList);
/// <summary>Setter dla wasnoci DisabledLargeImages</summary>
/// <summary>Setter dla w³asnoœci DisabledLargeImages</summary>
procedure SetDisabledLargeImages(const Value : TImageList);
public
// ***********************************
// *** Obsuga zdarze dyspozytora ***
// *** Obs³uga zdarzeñ dyspozytora ***
// ***********************************
/// <summary>Reakcja na zmian struktury elementw toolbara</summary>
/// <summary>Reakcja na zmianê struktury elementów toolbara</summary>
procedure NotifyItemsChanged;
/// <summary>Reakcja na zmian metryki elementw toolbara</summary>
/// <summary>Reakcja na zmianê metryki elementów toolbara</summary>
procedure NotifyMetricsChanged;
/// <summary>Reakcja na zmian wygldu elementw toolbara</summary>
/// <summary>Reakcja na zmianê wygl¹du elementów toolbara</summary>
procedure NotifyVisualsChanged;
/// <summary>Reakcja na zmian zawartoci klasy wygldu toolbara</summary>
/// <summary>Reakcja na zmianê zawartoœci klasy wygl¹du toolbara</summary>
procedure NotifyAppearanceChanged;
/// <summary>Metoda zwraca instancj pomocniczej bitmapy</summary>
/// <summary>Metoda zwraca instancjê pomocniczej bitmapy</summary>
function GetTempBitmap : TBitmap;
// ********************************
@ -278,52 +278,52 @@ type TSpkToolbar = class;
// *** Rysowanie ***
// *****************
/// <summary>Metoda odrysowuje zawarto�� komponentu</summary>
/// <summary>Metoda odrysowuje zawartoϾ komponentu</summary>
procedure Paint; override;
/// <summary>Metoda wymusza przebudowanie metryk i bufora</summary>
procedure ForceRepaint;
/// <summary>Metoda prze��cza komponent w tryb aktualizacji zawartoci
/// <summary>Metoda prze³¹cza komponent w tryb aktualizacji zawartoœci
/// poprzez zapalenie flagi FUpdating</summary>
procedure BeginUpdate;
/// <summary>Metoda wy��cza tryb aktualizacji zawartoci poprzez zgaszenie
/// <summary>Metoda wy³¹cza tryb aktualizacji zawartoœci poprzez zgaszenie
/// flagi FUpdating</summary>
procedure EndUpdate;
// *************************
// *** Obsuga elementw ***
// *** Obs³uga elementów ***
// *************************
/// <summary>Metoda wywoywana w momencie, gdy jedna z zakadek
/// <summary>Metoda wywo³ywana w momencie, gdy jedna z zak³adek
/// jest zwalniana</summary>
/// <remarks>Nie naley wywoywa metody FreeingTab z kodu! Jest ona
/// wywoywana wewntrznie, a jej zadaniem jest zaktualizowanie wewntrznej
/// listy zakadek.</remarks>
/// <remarks>Nie nale¿y wywo³ywaæ metody FreeingTab z kodu! Jest ona
/// wywo³ywana wewnêtrznie, a jej zadaniem jest zaktualizowanie wewnêtrznej
/// listy zak³adek.</remarks>
procedure FreeingTab(ATab : TSpkTab);
// **************************
// *** Dostp do zakadek ***
// *** Dostêp do zak³adek ***
// **************************
/// <summary>Wasno�� daje dost do zakadek w trybie runtime. Do edycji
/// zakadek w trybie designtime s�u�y odpowiedni edytor, za zapisywanie
/// <summary>W³asnoœæ daje dostê do zak³adek w trybie runtime. Do edycji
/// zak³adek w trybie designtime s³u¿y odpowiedni edytor, zaœ zapisywanie
/// i odczytywanie z DFMa jest zrealizowane manualnie.</summary>
property Tabs : TSpkTabs read FTabs;
published
/// <summary>Kolor ta komponentu</summary>
/// <summary>Kolor t³a komponentu</summary>
property Color : TColor read GetColor write SetColor;
/// <summary>Obiekt zawierajcy atrybuty wygldu toolbara</summary>
/// <summary>Obiekt zawieraj¹cy atrybuty wygl¹du toolbara</summary>
property Appearance : TSpkToolbarAppearance read FAppearance write SetAppearance;
/// <summary>Wysoko�� toolbara (tylko do odczytu)</summary>
/// <summary>WysokoϾ toolbara (tylko do odczytu)</summary>
property Height : integer read GetHeight;
/// <summary>Aktywna zakadka</summary>
/// <summary>Aktywna zak³adka</summary>
property TabIndex : integer read FTabIndex write SetTabIndex;
/// <summary>Lista maych obrazkw</summary>
/// <summary>Lista ma³ych obrazków</summary>
property Images : TImageList read FImages write SetImages;
/// <summary>Lista maych obrazkw w stanie "disabled"</summary>
/// <summary>Lista ma³ych obrazków w stanie "disabled"</summary>
property DisabledImages : TImageList read FDisabledImages write SetDisabledImages;
/// <summary>Lista duych obrazkw</summary>
/// <summary>Lista du¿ych obrazków</summary>
property LargeImages : TImageList read FLargeImages write SetLargeImages;
/// <summary>Lista duych obrazkw w stanie "disabled"</summary>
/// <summary>Lista du¿ych obrazków w stanie "disabled"</summary>
property DisabledLargeImages : TImageList read FDisabledLargeImages write SetDisabledLargeImages;
end;
@ -412,13 +412,13 @@ constructor TSpkToolbar.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
// Inicjacja dziedziczonych wasnoci
// Inicjacja dziedziczonych w³asnoœci
inherited Align:=alTop;
inherited AlignWithMargins:=true;
inherited Height:=TOOLBAR_HEIGHT;
inherited Doublebuffered:=true;
// Inicjacja wewntrznych pl danych
// Inicjacja wewnêtrznych pól danych
FToolbarDispatch:=TSpkToolbarDispatch.Create(self);
FBuffer:=TBitmap.create;
@ -441,7 +441,7 @@ begin
FInternalUpdating:=false;
FUpdating:=false;
// Inicjacja pl
// Inicjacja pól
FAppearance:=TSpkToolbarAppearance.Create(FToolbarDispatch);
FTabs:=TSpkTabs.Create(self);
@ -470,7 +470,7 @@ begin
FAppearance.Free;
// Zwalniamy wewntrzne pola
// Zwalniamy wewnêtrzne pola
FTemporary.Free;
FBuffer.Free;
@ -536,7 +536,7 @@ procedure TSpkToolbar.InternalEndUpdate;
begin
FInternalUpdating:=false;
// Po wewntrznych zmianach odwieamy metryki i bufor
// Po wewnêtrznych zmianach odœwie¿amy metryki i bufor
ValidateMetrics;
ValidateBuffer;
Repaint;
@ -555,7 +555,7 @@ if FTabs.ListState = lsNeedsProcessing then
InternalEndUpdate;
// Proces wewntrznego update'u zawsze odwiea na kocu metryki i bufor oraz
// Proces wewnêtrznego update'u zawsze odœwie¿a na koñcu metryki i bufor oraz
// odrysowuje komponent.
end;
@ -569,8 +569,8 @@ begin
inherited MouseDown(Button, Shift, X, Y);
// Moliwe, e zosta wcinity kolejny przycisk myszy. W takiej sytuacji
// aktywny obiekt otrzymuje kolejn notyfikacj.
// Mo¿liwe, ¿e zosta³ wciœniêty kolejny przycisk myszy. W takiej sytuacji
// aktywny obiekt otrzymuje kolejn¹ notyfikacjê.
if FMouseActiveElement=teTabs then
begin
TabMouseDown(Button, Shift, X, Y);
@ -582,10 +582,10 @@ begin
end else
if FMouseActiveElement = teToolbarArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia
end else
// Jeli nie ma aktywnego elementu, aktywnym staje si ten, ktry obecnie
// jest pod mysz.
// Jeœli nie ma aktywnego elementu, aktywnym staje siê ten, który obecnie
// jest pod mysz¹.
if FMouseActiveElement=teNone then
begin
if FMouseHoverElement = teTabs then
@ -603,7 +603,7 @@ begin
begin
FMouseActiveElement:=teToolbarArea;
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia
end;
end;
end;
@ -615,14 +615,14 @@ begin
if FInternalUpdating or FUpdating then
exit;
// MouseLeave nie ma szans by zawoane dla obiektu aktywnego, bo po
// wciniciu przycisku myszy kady jej ruch jest przekazywany jako
// MouseMove. Jeli mysz wyjedzie za obszar komponentu, MouseLeave
// zostanie zawoany zaraz po MouseUp - ale MouseUp czyci aktywny
// MouseLeave nie ma szans byæ zawo³ane dla obiektu aktywnego, bo po
// wciœniêciu przycisku myszy ka¿dy jej ruch jest przekazywany jako
// MouseMove. Jeœli mysz wyjedzie za obszar komponentu, MouseLeave
// zostanie zawo³any zaraz po MouseUp - ale MouseUp czyœci aktywny
// obiekt.
if FMouseActiveElement = teNone then
begin
// Jeli nie ma obiektu aktywnego, obsugujemy elementy pod mysz
// Jeœli nie ma obiektu aktywnego, obs³ugujemy elementy pod mysz¹
if FMouseHoverElement = teTabs then
begin
TabMouseLeave;
@ -634,7 +634,7 @@ begin
end else
if FMouseHoverElement = teToolbarArea then
begin
// Placeholder, jeli bdzie potrzeba obsugi tego zdarzenia
// Placeholder, jeœli bêdzie potrzeba obs³ugi tego zdarzenia
end;
end;
@ -653,7 +653,7 @@ begin
inherited MouseMove(Shift, X, Y);
// Sprawdzamy, ktry obiekt jest pod mysz
// Sprawdzamy, który obiekt jest pod mysz¹
MousePoint:=T2DIntVector.create(x,y);
if FTabClipRect.Contains(MousePoint) then
@ -664,7 +664,7 @@ begin
NewMouseHoverElement:=teToolbarArea else
NewMouseHoverElement:=teNone;
// Jeli jest jaki aktywny obiekt, to on ma wy��czno�� na komunikaty
// Jeœli jest jakiœ aktywny obiekt, to on ma wy³¹cznoœæ na komunikaty
if FMouseActiveElement = teTabs then
begin
TabMouseMove(Shift, X, Y);
@ -676,12 +676,12 @@ begin
end else
if FMouseActiveElement = teToolbarArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia
end else
if FMouseActiveElement = teNone then
begin
// Jeli element pod mysz si zmienia, informujemy poprzedni element o
// tym, e mysz opuszcza jego obszar
// Jeœli element pod mysz¹ siê zmienia, informujemy poprzedni element o
// tym, ¿e mysz opuszcza jego obszar
if NewMouseHoverElement<>FMouseHoverElement then
begin
if FMouseHoverElement = teTabs then
@ -695,11 +695,11 @@ begin
end else
if FMouseHoverElement = teToolbarArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia
end;
end;
// Element pod mysz otrzymuje MouseMove
// Element pod mysz¹ otrzymuje MouseMove
if NewMouseHoverElement = teTabs then
begin
TabMouseMove(Shift, X, Y);
@ -711,7 +711,7 @@ begin
end else
if NewMouseHoverElement = teToolbarArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia
end;
end;
@ -732,8 +732,8 @@ begin
ClearActive:=not(ssLeft in Shift) and not(ssMiddle in Shift) and not(ssRight in Shift);
// Jeli jest jaki aktywny obiekt, to on ma wy��czno�� na otrzymywanie
// komunikatw
// Jeœli jest jakiœ aktywny obiekt, to on ma wy³¹cznoœæ na otrzymywanie
// komunikatów
if FMouseActiveElement=teTabs then
begin
TabMouseUp(Button, Shift, X, Y);
@ -745,12 +745,12 @@ begin
end else
if FMouseActiveElement = teToolbarArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia
end;
// Jeli puszczono ostatni przycisk i mysz nie znajduje si nad aktywnym
// obiektem, trzeba dodatkowo wywo�a� MouseLeave dla aktywnego i MouseMove
// dla obiektu pod mysz.
// Jeœli puszczono ostatni przycisk i mysz nie znajduje siê nad aktywnym
// obiektem, trzeba dodatkowo wywo³aæ MouseLeave dla aktywnego i MouseMove
// dla obiektu pod mysz¹.
if ClearActive and (FMouseActiveElement<>FMouseHoverElement) then
begin
if FMouseActiveElement = teTabs then
@ -762,7 +762,7 @@ begin
end else
if FMouseActiveElement = teToolbarArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia
end;
if FMouseHoverElement=teTabs then
@ -774,11 +774,11 @@ begin
end else
if FMouseHoverElement = teToolbarArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia
end;
end;
// MouseUp gasi aktywny obiekt, o ile zostay puszczone wszystkie
// MouseUp gasi aktywny obiekt, o ile zosta³y puszczone wszystkie
// przyciski
if ClearActive then
FMouseActiveElement:=teNone;
@ -842,8 +842,8 @@ begin
begin
FTabIndex:=max(0,min(FTabs.count-1,FTabIndex));
// Wiem, e przynajmniej jedna zakadka jest widoczna (z wczeniejszego
// warunku), wic ponisza ptla na pewno si zakoczy.
// Wiem, ¿e przynajmniej jedna zak³adka jest widoczna (z wczeœniejszego
// warunku), wiêc poni¿sza pêtla na pewno siê zakoñczy.
while not(FTabs[FTabIndex].Visible) do
FTabIndex:=(FTabIndex + 1) mod FTabs.count;
end;
@ -866,9 +866,9 @@ end;
procedure TSpkToolbar.Paint;
begin
// Jeli trwa proces przebudowy (wewntrznej lub uytkownika), walidacja metryk
// Jeœli trwa proces przebudowy (wewnêtrznej lub u¿ytkownika), walidacja metryk
// i bufora nie jest przeprowadzana, jednak bufor jest rysowany w takiej
// postaci, w jakiej zosta zapamitany przed rozpoczciem procesu przebudowy.
// postaci, w jakiej zosta³ zapamiêtany przed rozpoczêciem procesu przebudowy.
if not(FInternalUpdating or FUpdating) then
begin
if not(FMetricsValid) then
@ -960,8 +960,8 @@ begin
begin
FTabIndex:=max(0,min(FTabs.count-1, Value));
// Wiem, e przynajmniej jedna zakadka jest widoczna (z wczeniejszego
// warunku), wic ponisza ptla na pewno si zakoczy.
// Wiem, ¿e przynajmniej jedna zak³adka jest widoczna (z wczeœniejszego
// warunku), wiêc poni¿sza pêtla na pewno siê zakoñczy.
while not(FTabs[FTabIndex].Visible) do
FTabIndex:=(FTabIndex + 1) mod FTabs.count;
end;
@ -995,8 +995,8 @@ if AtLeastOneTabVisible then
SelTab:=i;
end;
// Jeli kliknita zostaa ktra zakadka, r��na od obecnie zaznaczonej,
// zmie zaznaczenie.
// Jeœli klikniêta zosta³a któraœ zak³adka, ró¿na od obecnie zaznaczonej,
// zmieñ zaznaczenie.
if (Button = mbLeft) and (SelTab<>-1) and (SelTab<>FTabIndex) then
begin
FTabIndex:=SelTab;
@ -1055,7 +1055,7 @@ begin
if FInternalUpdating or FUpdating then
exit;
// Zakadki nie potrzebuj obsugi MouseUp.
// Zak³adki nie potrzebuj¹ obs³ugi MouseUp.
end;
procedure TSpkToolbar.SetAppearance(const Value: TSpkToolbarAppearance);
@ -1083,8 +1083,8 @@ procedure TSpkToolbar.ValidateBuffer;
i: Integer;
begin
// Pobieramy appearance aktualnie zaznaczonej zakadki (b�d�
// FToolbarAppearance, jeli zaznaczona zakadka nie ma ustawionego
// Pobieramy appearance aktualnie zaznaczonej zak³adki (b¹dŸ
// FToolbarAppearance, jeœli zaznaczona zak³adka nie ma ustawionego
// OverrideAppearance
if (FTabIndex<>-1) and (FTabs[FTabIndex].OverrideAppearance) then
FocusedAppearance:=FTabs[FTabIndex].CustomAppearance else
@ -1125,18 +1125,18 @@ procedure TSpkToolbar.ValidateBuffer;
if not(AtLeastOneTabVisible) then
begin
// Jeli nie ma zakadek, rysujemy poziom lini
// Jeœli nie ma zak³adek, rysujemy poziom¹ liniê
TGuiTools.DrawHLine(FBuffer, TOOLBAR_CORNER_RADIUS, self.width - TOOLBAR_CORNER_RADIUS, TOOLBAR_TAB_CAPTIONS_HEIGHT, FocusedAppearance.Tab.BorderColor);
end
else
begin
// Jeli s, pozostawiamy miejsce na zakadki
// Jeœli s¹, pozostawiamy miejsce na zak³adki
// Szukamy ostatniej widocznej
i:=FTabs.count-1;
while not(FTabs[i].Visible) do
dec(i);
// Tylko prawa cz���, reszta bdzie narysowana wraz z zakadkami
// Tylko prawa czêœæ, reszta bêdzie narysowana wraz z zak³adkami
if FTabRects[i].Right<self.width - TOOLBAR_CORNER_RADIUS - 1 then
TGuiTools.DrawHLine(FBuffer, FTabRects[i].Right+1, self.width - TOOLBAR_CORNER_RADIUS, TOOLBAR_TAB_CAPTIONS_HEIGHT, FocusedAppearance.Tab.BorderColor);
end;
@ -1178,17 +1178,17 @@ procedure TSpkToolbar.ValidateBuffer;
TmpRegion, TmpRegion2 : HRGN;
begin
// * Notatka! * Zakadki zachodz jednym pikslem na obszar toolbara,
// poniewa musz narysowa kraw�d�, ktra zgra si z krawdzi obszaru.
// * Notatka! * Zak³adki zachodz¹ jednym pikslem na obszar toolbara,
// poniewa¿ musz¹ narysowaæ krawêdŸ, która zgra siê z krawêdzi¹ obszaru.
TabRect:=FTabRects[index];
// rodkowy prostokt
// Œrodkowy prostok¹t
TabRegion:=CreateRectRgn(TabRect.Left + TAB_CORNER_RADIUS - 1,
TabRect.Top + TAB_CORNER_RADIUS,
TabRect.Right - TAB_CORNER_RADIUS + 1 + 1,
TabRect.Bottom + 1);
// Grna cz��� z grnymi zaokrgleniami wypukymi
// Górna czêœæ z górnymi zaokr¹gleniami wypuk³ymi
TmpRegion:=CreateRectRgn(TabRect.Left + 2*TAB_CORNER_RADIUS - 1,
TabRect.Top,
TabRect.Right - 2*TAB_CORNER_RADIUS + 1 + 1,
@ -1210,7 +1210,7 @@ procedure TSpkToolbar.ValidateBuffer;
CombineRgn(TabRegion, TabRegion, TmpRegion, RGN_OR);
DeleteObject(TmpRegion);
// Dolna cz��� z dolnymi zaokrgleniami wkl�s�ymi
// Dolna czêœæ z dolnymi zaokr¹gleniami wklês³ymi
TmpRegion:=CreateRectRgn(TabRect.Left,
TabRect.Bottom - TAB_CORNER_RADIUS,
@ -1308,10 +1308,10 @@ procedure TSpkToolbar.ValidateBuffer;
end;
begin
// Zakadam, e zakadki maj rozsdne rozmiary
// Zak³adam, ¿e zak³adki maj¹ rozs¹dne rozmiary
// Pobieramy appearance aktualnie zaznaczonej zakadki (jej appearance, jeli
// ma zapalon flag OverrideAppearance, FToolbarAppearance w przeciwnym
// Pobieramy appearance aktualnie zaznaczonej zak³adki (jej appearance, jeœli
// ma zapalon¹ flagê OverrideAppearance, FToolbarAppearance w przeciwnym
// wypadku)
if (FTabIndex<>-1) and (FTabs[FTabIndex].OverrideAppearance) then
FocusedAppearance:=FTabs[FTabIndex].CustomAppearance else
@ -1321,18 +1321,18 @@ procedure TSpkToolbar.ValidateBuffer;
for i := 0 to FTabs.count - 1 do
if FTabs[i].Visible then
begin
// Jest sens rysowa?
// Jest sens rysowaæ?
if not(FTabClipRect.IntersectsWith(FTabRects[i])) then
continue;
// Pobieramy appearance rysowanej w�a�nie zakadki
// Pobieramy appearance rysowanej w³aœnie zak³adki
if (FTabs[i].OverrideAppearance) then
CurrentAppearance:=FTabs[i].CustomAppearance else
CurrentAppearance:=FAppearance;
TabRect:=FTabRects[i];
// Rysujemy zakadk
// Rysujemy zak³adkê
if i = FTabIndex then
begin
if i = FTabHover then
@ -1366,8 +1366,8 @@ procedure TSpkToolbar.ValidateBuffer;
end;
// Dolna kreska
// Uwaga: Niezalenie od zakadki rysowana kolorem appearance
// aktualnie zaznaczonej zakadki!
// Uwaga: Niezale¿nie od zak³adki rysowana kolorem appearance
// aktualnie zaznaczonej zak³adki!
DrawBottomLine(i, FocusedAppearance.Tab.BorderColor);
// Tekst
@ -1389,21 +1389,21 @@ if FInternalUpdating or FUpdating then
if FBufferValid then
exit;
// ValidateBuffer moe by wywoane tylko wtedy, gdy metrics zostay obliczone.
// Metoda zakada, e bufor ma ju odpowiednie rozmiary oraz e wszystkie
// recty, zarwno toolbara jak i elementw podrzdnych, zostay poprawnie
// ValidateBuffer mo¿e byæ wywo³ane tylko wtedy, gdy metrics zosta³y obliczone.
// Metoda zak³ada, ¿e bufor ma ju¿ odpowiednie rozmiary oraz ¿e wszystkie
// recty, zarówno toolbara jak i elementów podrzêdnych, zosta³y poprawnie
// obliczone.
// *** To komponentu ***
// *** T³o komponentu ***
DrawBackgroundColor;
// *** Generowanie ta dla toolbara ***
// *** Generowanie t³a dla toolbara ***
DrawBody;
// *** Zakadki ***
// *** Zak³adki ***
DrawTabs;
// *** Zawarto�� zakadek ***
// *** Zawartoœæ zak³adek ***
DrawTabContents;
// Bufor jest poprawny
@ -1425,15 +1425,15 @@ if FMetricsValid then
FBuffer.SetSize(self.width, self.height);
// *** Zakadki ***
// *** Zak³adki ***
// Cliprect zakadek (zawgrn ramk komponentu)
// Cliprect zak³adek (zawgórn¹ ramkê komponentu)
FTabClipRect:=T2DIntRect.Create(TOOLBAR_CORNER_RADIUS,
0,
self.width - TOOLBAR_CORNER_RADIUS - 1,
TOOLBAR_TAB_CAPTIONS_HEIGHT);
// Recty nag��wkw zakadek (zawieraj grn ramk komponentu)
// Recty nag³ówków zak³adek (zawieraj¹ górn¹ ramkê komponentu)
setlength(FTabRects, FTabs.Count);
if FTabs.count>0 then
begin
@ -1441,17 +1441,17 @@ if FTabs.count>0 then
for i := 0 to FTabs.count - 1 do
if FTabs[i].Visible then
begin
// Pobieramy appearance zakadki
// Pobieramy appearance zak³adki
if FTabs[i].OverrideAppearance then
TabAppearance:=FTabs[i].CustomAppearance else
TabAppearance:=FAppearance;
FBuffer.Canvas.font.assign(TabAppearance.Tab.TabHeaderFont);
TabWidth:=2 + // Ramka
2*TAB_CORNER_RADIUS + // Zaokrglenia
2*TOOLBAR_TAB_CAPTIONS_TEXT_HPADDING + // Wewntrzne marginesy
2*TAB_CORNER_RADIUS + // Zaokr¹glenia
2*TOOLBAR_TAB_CAPTIONS_TEXT_HPADDING + // Wewnêtrzne marginesy
max(TOOLBAR_MIN_TAB_CAPTION_WIDTH,
FBuffer.Canvas.TextWidth(FTabs.Items[i].Caption)); // Szeroko�� tekstu
FBuffer.Canvas.TextWidth(FTabs.Items[i].Caption)); // SzerokoϾ tekstu
FTabRects[i].Left:=x;
FTabRects[i].Right:=x + TabWidth - 1;
@ -1470,7 +1470,7 @@ if FTabs.count>0 then
if FTabIndex<>-1 then
begin
// Rect obszaru zakadki
// Rect obszaru zak³adki
FTabContentsClipRect:=T2DIntRect.Create(TOOLBAR_BORDER_WIDTH + TAB_PANE_LEFTPADDING,
TOOLBAR_TAB_CAPTIONS_HEIGHT + TOOLBAR_BORDER_WIDTH + TAB_PANE_TOPPADDING,
self.width - 1 - TOOLBAR_BORDER_WIDTH - TAB_PANE_RIGHTPADDING,

View File

@ -3,9 +3,9 @@ unit spkt_Appearance;
(*******************************************************************************
* *
* Plik: spkt_Appearance.pas *
* Opis: Klasy bazowe dla klas wygldu elementw toolbara *
* Copyright: (c) 2009 by Spook. Jakiekolwiek uycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi zamanie *
* Opis: Klasy bazowe dla klas wygl¹du elementów toolbara *
* Copyright: (c) 2009 by Spook. Jakiekolwiek u¿ycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi z³amanie *
* prawa autorskiego! *
* *
*******************************************************************************)
@ -35,7 +35,7 @@ type TSpkTabAppearance = class(TPersistent)
procedure SetGradientType(const Value: TBackgroundKind);
public
// *** Konstruktor, destruktor, assign ***
// <remarks>Appearance musi mie assign, bo wystpuje jako wasno��
// <remarks>Appearance musi mieæ assign, bo wystêpuje jako w³asnoœæ
// opublikowana.</remarks>
procedure Assign(Source : TPersistent); override;
constructor Create(ADispatch : TSpkBaseAppearanceDispatch);
@ -229,7 +229,7 @@ begin
if FDispatch<>nil then
FDispatch.NotifyAppearanceChanged;
end else
raise AssignException.create('TSpkToolbarAppearance.Assign: Nie mog przypisa obiektu '+Source.ClassName+' do TSpkToolbarAppearance!');
raise AssignException.create('TSpkToolbarAppearance.Assign: Nie mogê przypisaæ obiektu '+Source.ClassName+' do TSpkToolbarAppearance!');
end;
constructor TSpkTabAppearance.Create(
@ -397,7 +397,7 @@ begin
if FDispatch<>nil then
FDispatch.NotifyAppearanceChanged;
end else
raise AssignException.create('TSpkPaneAppearance.Assign: Nie mog przypisa obiektu '+Source.ClassName+' do TSpkPaneAppearance!');
raise AssignException.create('TSpkPaneAppearance.Assign: Nie mogê przypisaæ obiektu '+Source.ClassName+' do TSpkPaneAppearance!');
end;
constructor TSpkPaneAppearance.Create(ADispatch: TSpkBaseAppearanceDispatch);
@ -610,7 +610,7 @@ begin
if FDispatch<>nil then
FDispatch.NotifyAppearanceChanged;
end else
raise AssignException.create('TSpkElementAppearance.Assign: Nie mog przypisa obiektu '+Source.ClassName+' do TSpkElementAppearance!');
raise AssignException.create('TSpkElementAppearance.Assign: Nie mogê przypisaæ obiektu '+Source.ClassName+' do TSpkElementAppearance!');
end;
constructor TSpkElementAppearance.Create(ADispatch: TSpkBaseAppearanceDispatch);
@ -1075,7 +1075,7 @@ begin
if FDispatch<>nil then
FDispatch.NotifyAppearanceChanged;
end else
raise AssignException.create('TSpkToolbarAppearance.Assign: Nie mog przypisa obiektu '+Source.ClassName+' do TSpkToolbarAppearance!');
raise AssignException.create('TSpkToolbarAppearance.Assign: Nie mogê przypisaæ obiektu '+Source.ClassName+' do TSpkToolbarAppearance!');
end;
constructor TSpkToolbarAppearance.Create(ADispatch : TSpkBaseAppearanceDispatch);

View File

@ -3,9 +3,9 @@ unit spkt_BaseItem;
(*******************************************************************************
* *
* Plik: spkt_BaseItem.pas *
* Opis: Modu zawierajcy bazow klas dla elementu tafli. *
* Copyright: (c) 2009 by Spook. Jakiekolwiek uycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi zamanie *
* Opis: Modu³ zawieraj¹cy bazow¹ klasê dla elementu tafli. *
* Copyright: (c) 2009 by Spook. Jakiekolwiek u¿ycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi z³amanie *
* prawa autorskiego! *
* *
*******************************************************************************)
@ -94,7 +94,7 @@ end;
destructor TSpkBaseItem.Destroy;
begin
{ Pozostae operacje }
{ Pozosta³e operacje }
inherited Destroy;
end;

View File

@ -3,9 +3,9 @@ unit spkt_Buttons;
(*******************************************************************************
* *
* Plik: spkt_Buttons.pas *
* Opis: Modu zawierajcy komponenty przyciskw dla toolbara. *
* Copyright: (c) 2009 by Spook. Jakiekolwiek uycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi zamanie *
* Opis: Modu³ zawieraj¹cy komponenty przycisków dla toolbara. *
* Copyright: (c) 2009 by Spook. Jakiekolwiek u¿ycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi z³amanie *
* prawa autorskiego! *
* *
*******************************************************************************)
@ -60,15 +60,15 @@ type TSpkBaseButton = class;
FButtonKind : TSpkButtonKind;
FDropdownMenu : TPopupMenu;
// *** Obsuga rysowania ***
// *** Obs³uga rysowania ***
/// <summary>Zadaniem metody w odziedziczonych klasach jest obliczenie
/// rectw przycisku i menu dropdown w zalenoci od FButtonState</summary>
/// rectów przycisku i menu dropdown w zale¿noœci od FButtonState</summary>
procedure CalcRects; virtual; abstract;
function GetDropdownPoint : T2DIntPoint; virtual; abstract;
// *** Obsuga akcji ***
// *** Obs³uga akcji ***
procedure ActionChange(Sender : TObject);
@ -254,7 +254,7 @@ procedure TSpkBaseButton.MouseDown(Button: TMouseButton; Shift: TShiftState; X,
begin
if FEnabled then
begin
// Przyciski reaguj tylko na lewy przycisk myszy
// Przyciski reaguj¹ tylko na lewy przycisk myszy
if Button <> mbLeft then
exit;
@ -324,11 +324,11 @@ if FEnabled then
begin
if FMouseHoverElement = beButton then
begin
// Placeholder, gdyby zasza potrzeba obsugi tego zdarzenia
// Placeholder, gdyby zasz³a potrzeba obs³ugi tego zdarzenia
end else
if FMouseHoverElement = beDropdown then
begin
// Placeholder, gdyby zasza potrzeba obsugi tego zdarzenia
// Placeholder, gdyby zasz³a potrzeba obs³ugi tego zdarzenia
end;
end;
@ -399,8 +399,8 @@ if FEnabled then
end else
if FMouseActiveElement = beNone then
begin
// Z uwagi na uproszczon obsug myszy w przycisku, nie ma potrzeby
// informowa poprzedniego elementu o tym, e mysz opucia jego obszar.
// Z uwagi na uproszczon¹ obs³ugê myszy w przycisku, nie ma potrzeby
// informowaæ poprzedniego elementu o tym, ¿e mysz opuœci³a jego obszar.
if NewMouseHoverElement = beButton then
begin
@ -447,7 +447,7 @@ var ClearActive : boolean;
begin
if FEnabled then
begin
// Przyciski reaguj tylko na lewy przycisk myszy
// Przyciski reaguj¹ tylko na lewy przycisk myszy
if Button <> mbLeft then
exit;
@ -455,7 +455,7 @@ if FEnabled then
if FMouseActiveElement = beButton then
begin
// Zdarzenie zadziaa tylko wtedy, gdy przycisk myszy zosta puszczony nad
// Zdarzenie zadzia³a tylko wtedy, gdy przycisk myszy zosta³ puszczony nad
// przyciskiem
if FMouseHoverElement = beButton then
begin
@ -476,7 +476,7 @@ if FEnabled then
end else
if FMouseActiveElement = beDropDown then
begin
// Zdarzenie zadziaa tylko wtedy, gdy przycisk myszy zosta puszczony nad
// Zdarzenie zadzia³a tylko wtedy, gdy przycisk myszy zosta³ puszczony nad
// przyciskiem DropDown
if FMouseHoverElement = beDropDown then
@ -491,8 +491,8 @@ if FEnabled then
if (ClearActive) and (FMouseActiveElement<>FMouseHoverElement) then
begin
// Z uwagi na uproszczon obsug, nie ma potrzeby informowa poprzedniego
// elementu o tym, e mysz opucia jego obszar.
// Z uwagi na uproszczon¹ obs³ugê, nie ma potrzeby informowaæ poprzedniego
// elementu o tym, ¿e mysz opuœci³a jego obszar.
if FMouseHoverElement = beButton then
begin
@ -585,9 +585,9 @@ begin
inherited;
if not(FEnabled) then
begin
// Jeli przycisk zosta wy��czony, zostaje natychmiast prze��czony
// w stan Idle i zerowane s elementy aktywne i pod mysz. Jeli zosta
// w��czony, jego stan zmieni si podczas pierwszej akcji myszy.
// Jeœli przycisk zosta³ wy³¹czony, zostaje natychmiast prze³¹czony
// w stan Idle i zerowane s¹ elementy aktywne i pod mysz¹. Jeœli zosta³
// w³¹czony, jego stan zmieni siê podczas pierwszej akcji myszy.
FMouseHoverElement:=beNone;
FMouseActiveElement:=beNone;
@ -660,22 +660,22 @@ if (FRect.width<2*LARGEBUTTON_RADIUS) or (FRect.Height<2*LARGEBUTTON_RADIUS) the
if FButtonKind in [bkButton, bkDropdown] then
begin
{$REGION 'Tryb bez dodatkowego przycisku z rozwijanym menu'}
// *** To ***
// *** T³o ***
if not(FEnabled) then
begin
{$REGION 'To dla disabled'}
// Brak ta
{$REGION 'T³o dla disabled'}
// Brak t³a
{$ENDREGION}
end else
if FButtonState = bsIdle then
begin
{$REGION 'To dla Idle'}
// Brak ta
{$REGION 'T³o dla Idle'}
// Brak t³a
{$ENDREGION}
end else
if FButtonState = bsBtnHottrack then
begin
{$REGION 'To dla HotTrack'}
{$REGION 'T³o dla HotTrack'}
TGuiTools.DrawRoundRect(ABuffer.Canvas,
T2DIntRect.Create(FButtonRect.left,
FButtonRect.Top,
@ -704,7 +704,7 @@ if FButtonKind in [bkButton, bkDropdown] then
end else
if FButtonState = bsBtnPressed then
begin
{$REGION 'To dla Pressed'}
{$REGION 'T³o dla Pressed'}
TGuiTools.DrawRoundRect(ABuffer.Canvas,
T2DIntRect.Create(FButtonRect.left,
FButtonRect.Top,
@ -732,12 +732,12 @@ if FButtonKind in [bkButton, bkDropdown] then
ClipRect);
{$ENDREGION}
end else
raise InternalException.create('TSpkLargeButton.Draw: Nieprawidowa warto�� FButtonState!');
raise InternalException.create('TSpkLargeButton.Draw: Nieprawid³owa wartoœæ FButtonState!');
// *** Ikona ***
if not(FEnabled) then
begin
{$REGION 'Ikona wy��czona'}
{$REGION 'Ikona wy³¹czona'}
if (FLargeImageIndex>=0) and
(FDisabledLargeImages<>nil) and
(FLargeImageIndex<FDisabledLargeImages.Count) then
@ -768,7 +768,7 @@ if FButtonKind in [bkButton, bkDropdown] then
end
else
begin
{$REGION 'Ikona zwyka'}
{$REGION 'Ikona zwyk³a'}
if (FLargeImageIndex>=0) and
(FLargeImages<>nil) and
(FLargeImageIndex<FLargeImages.Count) then
@ -819,7 +819,7 @@ if FButtonKind in [bkButton, bkDropdown] then
if BreakPos>0 then
begin
// Tekst zamany
// Tekst z³amany
TextHeight:=ABuffer.Canvas.Textheight('Wy');
s:=copy(FCaption, 1, BreakPos-1);
@ -834,7 +834,7 @@ if FButtonKind in [bkButton, bkDropdown] then
end
else
begin
// Tekst nie zamany
// Tekst nie z³amany
TextHeight:=ABuffer.Canvas.Textheight('Wy');
x:=FButtonRect.Left + (FButtonRect.width - ABuffer.Canvas.Textwidth(FCaption)) div 2;
@ -844,7 +844,7 @@ if FButtonKind in [bkButton, bkDropdown] then
if FButtonKind = bkDropdown then
begin
// Chevron strzaki w d��
// Chevron strza³ki w dó³
if not(FEnabled) then
begin
@ -883,27 +883,27 @@ if FButtonKind in [bkButton, bkDropdown] then
else
begin
{$REGION 'Tryb z rozwijanym menu'}
// *** To ***
// *** T³o ***
if not(FEnabled) then
begin
{$REGION 'To dla Disabled'}
{$REGION 'T³o dla Disabled'}
//
{$ENDREGION}
end else
if FButtonState = bsIdle then
begin
{$REGION 'To dla Idle'}
{$REGION 'T³o dla Idle'}
//
{$ENDREGION}
end else
if (FButtonState = bsBtnHottrack) or (FButtonState = bsDropdownHottrack) or
(FButtonState = bsBtnPressed) or (FButtonState = bsDropdownPressed) then
begin
{$REGION 'To dla aktywnego'}
{$REGION 'T³o dla aktywnego'}
// *** Przycisk ***
{$REGION 'Ustalanie kolorw'}
{$REGION 'Ustalanie kolorów'}
if FButtonState = bsBtnHottrack then
begin
FrameColor:=FAppearance.Element.HotTrackFrameColor;
@ -930,7 +930,7 @@ else
end;
{$ENDREGION}
{$REGION 'To przycisku'}
{$REGION 'T³o przycisku'}
DrawRgn:=CreateRectRgn(FButtonRect.Left,
FButtonRect.Top + LARGEBUTTON_RADIUS,
FButtonRect.Right + 1,
@ -968,7 +968,7 @@ else
{$ENDREGION}
{$REGION 'Ramka przycisku'}
// Wewntrzna ramka
// Wewnêtrzna ramka
TGuiTools.DrawAARoundCorner(ABuffer,
T2DIntPoint.Create(FButtonRect.Left + 1, FButtonRect.Top + 1),
LARGEBUTTON_RADIUS,
@ -1014,7 +1014,7 @@ else
InnerLightColor,
ClipRect);
// Zewntrzna ramka
// Zewnêtrzna ramka
TGuiTools.DrawAARoundCorner(ABuffer,
T2DIntPoint.Create(FButtonRect.Left, FButtonRect.Top),
LARGEBUTTON_RADIUS,
@ -1049,7 +1049,7 @@ else
// *** Dropdown ***
{$REGION 'Ustalanie kolorw'}
{$REGION 'Ustalanie kolorów'}
if FButtonState = bsDropdownHottrack then
begin
FrameColor:=FAppearance.Element.HotTrackFrameColor;
@ -1079,7 +1079,7 @@ else
end;
{$ENDREGION}
{$REGION 'To dropdown'}
{$REGION 'T³o dropdown'}
DrawRgn:=CreateRectRgn(FDropdownRect.left,
FDropdownRect.Top,
FDropdownRect.Right + 1,
@ -1117,7 +1117,7 @@ else
{$ENDREGION}
{$REGION 'Ramka dropdown'}
// Wewntrzna ramka
// Wewnêtrzna ramka
TGuiTools.DrawAARoundCorner(ABuffer,
T2DIntPoint.Create(FDropdownRect.Left + 1, FDropdownRect.Bottom - LARGEBUTTON_RADIUS),
@ -1164,7 +1164,7 @@ else
ClipRect);
// Zewntrzna ramka
// Zewnêtrzna ramka
TGuiTools.DrawAARoundCorner(ABuffer,
T2DIntPoint.Create(FDropdownRect.Left, FDropdownRect.Bottom - LARGEBUTTON_RADIUS + 1),
LARGEBUTTON_RADIUS,
@ -1197,12 +1197,12 @@ else
{$ENDREGION}
end else
raise InternalException.create('TSpkLargeButton.Draw: Nieprawidowa warto�� FButtonState!');
raise InternalException.create('TSpkLargeButton.Draw: Nieprawid³owa wartoœæ FButtonState!');
// *** Ikona ***
if not(FEnabled) then
begin
{$REGION 'Ikona wy��czona'}
{$REGION 'Ikona wy³¹czona'}
if (FLargeImageIndex>=0) and
(FDisabledLargeImages<>nil) and
(FLargeImageIndex<FDisabledLargeImages.Count) then
@ -1233,7 +1233,7 @@ else
end
else
begin
{$REGION 'Ikona zwyka'}
{$REGION 'Ikona zwyk³a'}
if (FLargeImageIndex>=0) and
(FLargeImages<>nil) and
(FLargeImageIndex<FLargeImages.Count) then
@ -1414,13 +1414,13 @@ if FLargeImages<>nil then
// *** Tekst ***
if FButtonKind = bkButton then
begin
// amiemy etykiet
// £amiemy etykietê
FindBreakPlace(FCaption,BreakPos,RowWidth);
TextWidth:=2 * LARGEBUTTON_CAPTION_HMARGIN + RowWidth;
end
else
begin
// Nie amiemy etykiety
// Nie ³amiemy etykiety
Bitmap.canvas.font.assign(FAppearance.Element.CaptionFont);
TextWidth:=2 * LARGEBUTTON_CAPTION_HMARGIN + Bitmap.Canvas.TextWidth(FCaption);
end;
@ -1470,7 +1470,7 @@ Bitmap:=FToolbarDispatch.GetTempBitmap;
if not(assigned(Bitmap)) then
exit;
// *** Niezalenie od rodzaju, musi by miejsce dla ikony i/lub tekstu ***
// *** Niezale¿nie od rodzaju, musi byæ miejsce dla ikony i/lub tekstu ***
BtnWidth:=0;
AdditionalPadding:=false;
@ -1492,22 +1492,22 @@ if FShowCaption then
AdditionalPadding:=true;
end;
// Padding za tekstem lub ikon
// Padding za tekstem lub ikon¹
if AdditionalPadding then
BtnWidth:=BtnWidth + SMALLBUTTON_PADDING;
// Szeroko�� zawartoci przycisku musi wynosi co najmniej SMALLBUTTON_MIN_WIDTH
// Szerokoœæ zawartoœci przycisku musi wynosiæ co najmniej SMALLBUTTON_MIN_WIDTH
BtnWidth:=max(SMALLBUTTON_MIN_WIDTH, BtnWidth);
// *** Dropdown ***
case FButtonKind of
bkButton: begin
// Lewa kraw�d� przycisku
// Lewa krawêdŸ przycisku
if FGroupBehaviour in [gbContinuesGroup, gbEndsGroup] then
BtnWidth:=BtnWidth + SMALLBUTTON_HALF_BORDER_WIDTH else
BtnWidth:=BtnWidth + SMALLBUTTON_BORDER_WIDTH;
// Prawa kraw�d� przycisku
// Prawa krawêdŸ przycisku
if (FGroupBehaviour in [gbBeginsGroup, gbContinuesGroup]) then
BtnWidth:=BtnWidth + SMALLBUTTON_HALF_BORDER_WIDTH else
BtnWidth:=BtnWidth + SMALLBUTTON_BORDER_WIDTH;
@ -1516,18 +1516,18 @@ case FButtonKind of
DropRect:=T2DIntRect.Create(0, 0, 0, 0);
end;
bkButtonDropdown: begin
// Lewa kraw�d� przycisku
// Lewa krawêdŸ przycisku
if FGroupBehaviour in [gbContinuesGroup, gbEndsGroup] then
BtnWidth:=BtnWidth + SMALLBUTTON_HALF_BORDER_WIDTH else
BtnWidth:=BtnWidth + SMALLBUTTON_BORDER_WIDTH;
// Prawa kraw�d� przycisku
// Prawa krawêdŸ przycisku
BtnWidth:=BtnWidth + SMALLBUTTON_HALF_BORDER_WIDTH;
// Lewa kraw�d� i zawarto�� pola dropdown
// Lewa krawêdŸ i zawartoœæ pola dropdown
DropdownWidth:=SMALLBUTTON_HALF_BORDER_WIDTH + SMALLBUTTON_DROPDOWN_WIDTH;
// Prawa kraw�d� pola dropdown
// Prawa krawêdŸ pola dropdown
if (FGroupBehaviour in [gbBeginsGroup, gbContinuesGroup]) then
DropdownWidth:=DropdownWidth + SMALLBUTTON_HALF_BORDER_WIDTH else
DropdownWidth:=DropdownWidth + SMALLBUTTON_BORDER_WIDTH;
@ -1539,18 +1539,18 @@ case FButtonKind of
PANE_ROW_HEIGHT - 1);
end;
bkDropdown: begin
// Lewa kraw�d� przycisku
// Lewa krawêdŸ przycisku
if FGroupBehaviour in [gbContinuesGroup, gbEndsGroup] then
BtnWidth:=BtnWidth + SMALLBUTTON_HALF_BORDER_WIDTH else
BtnWidth:=BtnWidth + SMALLBUTTON_BORDER_WIDTH;
// Prawa kraw�d� przycisku
// Prawa krawêdŸ przycisku
if (FGroupBehaviour in [gbBeginsGroup, gbContinuesGroup]) then
BtnWidth:=BtnWidth + SMALLBUTTON_HALF_BORDER_WIDTH else
BtnWidth:=BtnWidth + SMALLBUTTON_BORDER_WIDTH;
// Dodatkowy obszar na dropdown + miejsce na rodkow kraw�d�,
// dla kompatybilnoci wymiarw z dkButtonDropdown
// Dodatkowy obszar na dropdown + miejsce na œrodkow¹ krawêdŸ,
// dla kompatybilnoœci wymiarów z dkButtonDropdown
BtnWidth:=BtnWidth + SMALLBUTTON_BORDER_WIDTH + SMALLBUTTON_DROPDOWN_WIDTH;
BtnRect:=T2DIntRect.Create(0, 0, BtnWidth - 1, PANE_ROW_HEIGHT - 1);
@ -1585,7 +1585,7 @@ if (FRect.width<2*LARGEBUTTON_RADIUS) or (FRect.Height<2*LARGEBUTTON_RADIUS) the
// *** Przycisk ***
// To i ramka
// T³o i ramka
{$REGION 'Rysowanie przycisku'}
if (FButtonState = bsIdle) and (not(FHideFrameWhenIdle)) then
begin
@ -1664,7 +1664,7 @@ if (FButtonState in [bsDropdownHottrack, bsDropdownPressed]) then
// Ikona
if not(FEnabled) then
begin
{$REGION 'Ikona wy��czona'}
{$REGION 'Ikona wy³¹czona'}
if (FImageIndex>=0) and
(FDisabledImages<>nil) and
(FImageIndex<FDisabledImages.Count) then
@ -1699,7 +1699,7 @@ if not(FEnabled) then
end
else
begin
{$REGION 'Ikona zwyka'}
{$REGION 'Ikona zwyk³a'}
if (FImageIndex>=0) and
(FImages<>nil) and
(FImageIndex<FImages.Count) then
@ -1770,7 +1770,7 @@ if FButtonKind = bkButton then
end else
if FButtonKind = bkButtonDropdown then
begin
// To i ramka
// T³o i ramka
{$REGION 'Rysowanie dropdowna'}
if (FButtonState = bsIdle) and (not(FHideFrameWhenIdle)) then
begin

View File

@ -3,9 +3,9 @@ unit spkt_Const;
(*******************************************************************************
* *
* Plik: spkt_Const.pas *
* Opis: Stae wykorzystywane do obliczania geometrii toolbara *
* Copyright: (c) 2009 by Spook. Jakiekolwiek uycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi zamanie *
* Opis: Sta³e wykorzystywane do obliczania geometrii toolbara *
* Copyright: (c) 2009 by Spook. Jakiekolwiek u¿ycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi z³amanie *
* prawa autorskiego! *
* *
*******************************************************************************)
@ -38,58 +38,58 @@ const // ****************
// *** Obszar tafli ***
// ********************
/// <summary>Maksymalna wysoko�� obszaru, ktry moe zaj�� zawarto��
/// <summary>Maksymalna wysokoœæ obszaru, który mo¿e zaj¹æ zawartoœæ
/// tafli z elementami</summary>
MAX_ELEMENT_HEIGHT = 67;
/// <summary>Wysoko�� pojedynczego wiersza elementw tafli</summary>
/// <summary>Wysokoœæ pojedynczego wiersza elementów tafli</summary>
PANE_ROW_HEIGHT = 22;
PANE_FULL_ROW_HEIGHT = 3 * PANE_ROW_HEIGHT;
/// <summary>Wewntrzny pionowy margines pomidzy pierwszym elementem a
/// tafl w przypadku wersji jednowierszowej</summary>
/// <summary>Wewnêtrzny pionowy margines pomiêdzy pierwszym elementem a
/// tafl¹ w przypadku wersji jednowierszowej</summary>
PANE_ONE_ROW_TOPPADDING = 22;
/// <summary>Wewntrzny pionowy margines pomidzy ostatnim elementem
/// a tafl w przypadku wersji jednowierszowej</summary>
/// <summary>Wewnêtrzny pionowy margines pomiêdzy ostatnim elementem
/// a tafl¹ w przypadku wersji jednowierszowej</summary>
PANE_ONE_ROW_BOTTOMPADDING = 23;
/// <summary>Odleg�o�� pomidzy wierszami w przypadku wersji dwuwierszowej
/// <summary>Odleg³oœæ pomiêdzy wierszami w przypadku wersji dwuwierszowej
/// </summary>
PANE_TWO_ROWS_VSPACER = 7;
/// <summary>Wewntrzny pionowy margines pomidzy pierwszym elementem a
/// tafl w przypadku wersji dwuwierszowej</summary>
/// <summary>Wewnêtrzny pionowy margines pomiêdzy pierwszym elementem a
/// tafl¹ w przypadku wersji dwuwierszowej</summary>
PANE_TWO_ROWS_TOPPADDING = 8;
/// <summary>Wewntrzny pionowy margines pomidzy ostatnim elementem
/// a tafl w przypadku wersji dwuwierszowej</summary>
/// <summary>Wewnêtrzny pionowy margines pomiêdzy ostatnim elementem
/// a tafl¹ w przypadku wersji dwuwierszowej</summary>
PANE_TWO_ROWS_BOTTOMPADDING = 8;
/// <summary>Odleg�o�� pomidzy wierszami w przypadku wersji
/// <summary>Odleg³oœæ pomiêdzy wierszami w przypadku wersji
/// trzywierszowej</summary>
PANE_THREE_ROWS_VSPACER = 0;
/// <summary>Wewntrzny pionowy margines pomidzy pierwszym elementem a
/// tafl w przypadku wersji trzywierszowej</summary>
/// <summary>Wewnêtrzny pionowy margines pomiêdzy pierwszym elementem a
/// tafl¹ w przypadku wersji trzywierszowej</summary>
PANE_THREE_ROWS_TOPPADDING = 0;
/// <summary>Wewntrzny pionowy margines pomidzy ostatnim elementem
/// a tafl w przypadku wersji trzywierszowej</summary>
/// <summary>Wewnêtrzny pionowy margines pomiêdzy ostatnim elementem
/// a tafl¹ w przypadku wersji trzywierszowej</summary>
PANE_THREE_ROWS_BOTTOMPADDING = 1;
PANE_FULL_ROW_TOPPADDING = PANE_THREE_ROWS_TOPPADDING;
PANE_FULL_ROW_BOTTOMPADDING = PANE_THREE_ROWS_BOTTOMPADDING;
/// <summary>Odleg�o�� pomidzy lew krawdzi a pierwszym elementem
/// <summary>Odleg³oœæ pomiêdzy lew¹ krawêdzi¹ a pierwszym elementem
/// tafli</summary>
PANE_LEFT_PADDING = 2;
/// <summary>Odleg�o�� pomidzy ostatnim elementem tafli a praw krawdzi
/// <summary>Odleg³oœæ pomiêdzy ostatnim elementem tafli a praw¹ krawêdzi¹
/// </summary>
PANE_RIGHT_PADDING = 2;
/// <summary>Odleg�o�� pomidzy dwoma kolumnami wewntrz tafli</summary>
/// <summary>Odleg³oœæ pomiêdzy dwoma kolumnami wewn¹trz tafli</summary>
PANE_COLUMN_SPACER = 4;
/// <summary>Odleg�o�� pomidzy dwoma osobnymi grupami wewntrz wiersza
/// <summary>Odleg³oœæ pomiêdzy dwoma osobnymi grupami wewnêtrz wiersza
/// w tafli</summary>
PANE_GROUP_SPACER = 4;
@ -97,47 +97,47 @@ const // ****************
// *** Tafla ***
// *************
/// <summary>Wysoko�� obszaru tytuu tafli</summary>
/// <summary>Wysokoœæ obszaru tytu³u tafli</summary>
PANE_CAPTION_HEIGHT = 15;
PANE_CORNER_RADIUS = 3;
/// <summary>Szeroko��/wysoko�� ramki tafli</summary>
/// <remarks>Nie naley zmienia tej staej!</remarks>
/// <summary>SzerokoϾ/wysokoϾ ramki tafli</summary>
/// <remarks>Nie nale¿y zmieniaæ tej sta³ej!</remarks>
PANE_BORDER_SIZE = 2;
/// <summary>Poowa szerokoci ramki tafli</summary>
/// <remarks>Nie naley zmienia tej staej!</remarks>
/// <summary>Po³owa szerokoœci ramki tafli</summary>
/// <remarks>Nie nale¿y zmieniaæ tej sta³ej!</remarks>
PANE_BORDER_HALF_SIZE = 1;
/// <summary>Wysoko�� caej tafli (uwzgldniajc ramk)</summary>
/// <summary>Wysokoœæ ca³ej tafli (uwzglêdniaj¹c ramkê)</summary>
PANE_HEIGHT = MAX_ELEMENT_HEIGHT + PANE_CAPTION_HEIGHT + 2 * PANE_BORDER_SIZE;
/// <summary>Poziomy margines etykiety zakadki</summary>
/// <summary>Poziomy margines etykiety zak³adki</summary>
PANE_CAPTION_HMARGIN = 6;
// ***********************
// *** Obszar zakadki ***
// *** Obszar zak³adki ***
// ***********************
/// <summary>Promie zaokrglenia zakadki</summary>
/// <summary>Promieñ zaokr¹glenia zak³adki</summary>
TAB_CORNER_RADIUS = 4;
/// <summary>Lewy wewntrzny margines zakadki</summary>
/// <summary>Lewy wewnêtrzny margines zak³adki</summary>
TAB_PANE_LEFTPADDING = 2;
/// <summary>Prawy wewntrzny margines zakadki</summary>
/// <summary>Prawy wewnêtrzny margines zak³adki</summary>
TAB_PANE_RIGHTPADDING = 2;
/// <summary>Grny wewntrzny margines zakadki</summary>
/// <summary>Górny wewnêtrzny margines zak³adki</summary>
TAB_PANE_TOPPADDING = 2;
/// <summary>Dolny wewntrzny margines zakadki</summary>
/// <summary>Dolny wewnêtrzny margines zak³adki</summary>
TAB_PANE_BOTTOMPADDING = 1;
/// <summary>Odleg�o�� pomidzy taflami</summary>
/// <summary>Odleg³oœæ pomiêdzy taflami</summary>
TAB_PANE_HSPACING = 3;
/// <summary>Szeroko��/wysoko�� ramki zakadki (nie naley zmienia!)
/// <summary>Szerokoœæ/wysokoœæ ramki zak³adki (nie nale¿y zmieniaæ!)
/// </summary>
TAB_BORDER_SIZE = 1;
/// <summary>Wysoko�� zakadki</summary>
/// <summary>Wysokoœæ zak³adki</summary>
TAB_HEIGHT = PANE_HEIGHT + TAB_PANE_TOPPADDING + TAB_PANE_BOTTOMPADDING + TAB_BORDER_SIZE;
// ***************
@ -148,14 +148,14 @@ const // ****************
TOOLBAR_CORNER_RADIUS = 3;
/// <summary>Wysoko�� etykiet z nazwami zakadek</summary>
/// <summary>Wysokoœæ etykiet z nazwami zak³adek</summary>
TOOLBAR_TAB_CAPTIONS_HEIGHT = 22;
/// <summary>Poziomy margines wewntrznego tytuu zakadki</summary>
/// <summary>Poziomy margines wewnêtrznego tytu³u zak³adki</summary>
TOOLBAR_TAB_CAPTIONS_TEXT_HPADDING = 4;
TOOLBAR_MIN_TAB_CAPTION_WIDTH = 32;
/// <summary>Sumaryczna wysoko�� toolbara</summary>
/// <summary>Sumaryczna wysokoϾ toolbara</summary>
TOOLBAR_HEIGHT = TOOLBAR_TAB_CAPTIONS_HEIGHT +
TAB_HEIGHT;
@ -164,9 +164,9 @@ implementation
initialization
{$IFDEF DEBUG}
// Sprawdzanie poprawnoci
// Sprawdzanie poprawnoœci
// uk duego przycisku
// £uk du¿ego przycisku
assert(LARGEBUTTON_RADIUS * 2 <= LARGEBUTTON_DROPDOWN_FIELD_SIZE);
// Tafla, wersja z jednym wierszem

View File

@ -3,10 +3,10 @@ unit spkt_Dispatch;
(*******************************************************************************
* *
* Plik: spkt_Dispatch.pas *
* Opis: Bazowe klasy dyspozytorw poredniczcych pomidzy elementami *
* Opis: Bazowe klasy dyspozytorów poœrednicz¹cych pomiêdzy elementami *
* toolbara. *
* Copyright: (c) 2009 by Spook. Jakiekolwiek uycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi zamanie *
* Copyright: (c) 2009 by Spook. Jakiekolwiek u¿ycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi z³amanie *
* prawa autorskiego! *
* *
*******************************************************************************)

View File

@ -3,9 +3,9 @@ unit spkt_Exceptions;
(*******************************************************************************
* *
* Plik: spkt_Exceptions.pas *
* Opis: Klasy wyjtkw toolbara *
* Copyright: (c) 2009 by Spook. Jakiekolwiek uycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi zamanie *
* Opis: Klasy wyj¹tków toolbara *
* Copyright: (c) 2009 by Spook. Jakiekolwiek u¿ycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi z³amanie *
* prawa autorskiego! *
* *
*******************************************************************************)

View File

@ -3,9 +3,9 @@ unit spkt_Items;
(*******************************************************************************
* *
* Plik: spkt_Items.pas *
* Opis: Modu zawiera klas kolekcji elementw tafli. *
* Copyright: (c) 2009 by Spook. Jakiekolwiek uycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi zamanie *
* Opis: Modu³ zawiera klasê kolekcji elementów tafli. *
* Copyright: (c) 2009 by Spook. Jakiekolwiek u¿ycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi z³amanie *
* prawa autorskiego! *
* *
*******************************************************************************)
@ -151,8 +151,8 @@ begin
case Operation of
opInsert: begin
// Ustawienie dyspozytora na nil spowoduje, e podczas
// przypisywania wasnoci nie b�d� woane metody Notify*
// Ustawienie dyspozytora na nil spowoduje, ¿e podczas
// przypisywania w³asnoœci nie bêd¹ wo³ane metody Notify*
TSpkBaseItem(Item).ToolbarDispatch:=nil;
TSpkBaseItem(Item).Appearance:=FAppearance;

View File

@ -4,8 +4,8 @@ unit spkt_Pane;
* *
* Plik: spkt_Pane.pas *
* Opis: Komponent tafli toolbara *
* Copyright: (c) 2009 by Spook. Jakiekolwiek uycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi zamanie *
* Copyright: (c) 2009 by Spook. Jakiekolwiek u¿ycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi z³amanie *
* prawa autorskiego! *
* *
*******************************************************************************)
@ -52,10 +52,10 @@ type TSpkPane = class;
FVisible : boolean;
FItems : TSpkItems;
// *** Generowanie layoutu elementw ***
// *** Generowanie layoutu elementów ***
function GenerateLayout: TSpkPaneItemsLayout;
// *** Obsuga designtime i DFM ***
// *** Obs³uga designtime i DFM ***
procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
procedure DefineProperties(Filer : TFiler); override;
procedure Loaded; override;
@ -75,7 +75,7 @@ type TSpkPane = class;
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
// *** Obsuga gryzonia ***
// *** Obs³uga gryzonia ***
procedure MouseLeave;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer);
@ -88,7 +88,7 @@ type TSpkPane = class;
procedure Draw(ABuffer : TBitmap; ClipRect : T2DIntRect);
function FindItemAt(x, y: integer): integer;
// *** Obsuga elementw ***
// *** Obs³uga elementów ***
procedure FreeingItem(AItem : TSpkBaseItem);
property ToolbarDispatch : TSpkBaseToolbarDispatch read FToolbarDispatch write SetToolbarDispatch;
@ -127,7 +127,7 @@ type TSpkPanes = class(TSpkCollection)
constructor Create(RootComponent : TComponent); override;
destructor Destroy; override;
// *** Dodawanie i wstawianie elementw ***
// *** Dodawanie i wstawianie elementów ***
function Add : TSpkPane;
function Insert(index : integer) : TSpkPane;
@ -225,7 +225,7 @@ var x: Integer;
i: Integer;
begin
// W niektrych warunkach nie jestemy w stanie rysowa:
// W niektórych warunkach nie jesteœmy w stanie rysowaæ:
// * Brak dyspozytora
if FToolbarDispatch=nil then
exit;
@ -253,7 +253,7 @@ if FPaneState = psIdle then
BorderDarkColor:=TColorTools.Brighten(FAppearance.Pane.BorderDarkColor,20);
end;
// To
// T³o
TGuiTools.DrawRoundRect(ABuffer.Canvas,
T2DIntRect.Create(FRect.left,
FRect.top,
@ -265,7 +265,7 @@ TGuiTools.DrawRoundRect(ABuffer.Canvas,
FAppearance.Pane.GradientType,
ClipRect);
// To etykiety tafli
// T³o etykiety tafli
TGuiTools.DrawRoundRect(ABuffer.Canvas,
T2DIntRect.Create(FRect.Left,
FRect.Bottom - PANE_CAPTION_HEIGHT - PANE_BORDER_HALF_SIZE,
@ -373,8 +373,8 @@ result.Width:=0;
if FItems.count=0 then
exit;
// Notatka: algorytm jest skonstruowany w ten sposb, e trjka: CurrentColumn,
// CurrentRow oraz CurrentItem wskazuje na element, ktrego jeszcze nie
// Notatka: algorytm jest skonstruowany w ten sposób, ¿e trójka: CurrentColumn,
// CurrentRow oraz CurrentItem wskazuje na element, którego jeszcze nie
// ma (zaraz za ostatnio dodanym elementem).
setlength(Layout,1);
@ -393,14 +393,14 @@ for i := 0 to FItems.count - 1 do
ItemTableBehaviour := FItems[i].GetTableBehaviour;
ItemSize := FItems[i].GetSize;
// Rozpoczcie nowej kolumny?
// Rozpoczêcie nowej kolumny?
if (i=0) or
(ItemSize = isLarge) or
(ItemTableBehaviour = tbBeginsColumn) or
((ItemTableBehaviour = tbBeginsRow) and (CurrentRow = 2)) or
(ForceNewColumn) then
begin
// Jeli ju jestemy na pocztku nowej kolumny, nie ma nic do roboty.
// Jeœli ju¿ jesteœmy na pocz¹tku nowej kolumny, nie ma nic do roboty.
if (CurrentRow<>0) or (CurrentItem<>0) then
begin
setlength(Layout, length(Layout)+1);
@ -413,10 +413,10 @@ for i := 0 to FItems.count - 1 do
CurrentItem:=0;
end;
end else
// Rozpoczcie nowego wiersza?
// Rozpoczêcie nowego wiersza?
if (ItemTableBehaviour = tbBeginsRow) then
begin
// Jeli ju jestemy na pocztku nowego wiersza, nie ma nic do roboty.
// Jeœli ju¿ jesteœmy na pocz¹tku nowego wiersza, nie ma nic do roboty.
if CurrentItem <> 0 then
begin
setlength(Layout[CurrentColumn], length(Layout[CurrentColumn])+1);
@ -427,7 +427,7 @@ for i := 0 to FItems.count - 1 do
ForceNewColumn:=ItemSize = isLarge;
// Jeli element jest widoczny, dodajemy go w aktualnej kolumnie i aktualnym
// Jeœli element jest widoczny, dodajemy go w aktualnej kolumnie i aktualnym
// wierszu.
if FItems[i].Visible then
begin
@ -438,17 +438,17 @@ for i := 0 to FItems.count - 1 do
end;
end;
// W tym miejscu mamy gotowy layout. Teraz trzeba obliczy pozycje i rozmiary
// Rectw.
// W tym miejscu mamy gotowy layout. Teraz trzeba obliczyæ pozycje i rozmiary
// Rectów.
// Najpierw wypeniamy je pustymi danymi, ktre zapeni miejsce elementw
// Najpierw wype³niamy je pustymi danymi, które zape³ni¹ miejsce elementów
// niewidocznych.
for i := 0 to FItems.count - 1 do
result.Rects[i]:=T2DIntRect.create(-1, -1, -1, -1);
MaxRowX:=0;
// Teraz iterujemy po layoucie, ustalajc recty.
// Teraz iterujemy po layoucie, ustalaj¹c recty.
if length(Layout)>0 then
for c := 0 to high(Layout) do
begin
@ -497,8 +497,8 @@ if length(Layout)>0 then
end
else
begin
// Jeli element nie jest pierwszy, musi zosta
// odsunity marginesem od poprzedniego
// Jeœli element nie jest pierwszy, musi zostaæ
// odsuniêty marginesem od poprzedniego
if i>0 then
tmpRect.Left:=LastX + PANE_GROUP_SPACER else
tmpRect.Left:=LastX;
@ -551,8 +551,8 @@ if length(Layout)>0 then
end;
end;
end;
// W tym miejscu MaxRowX wskazuje na pierwszy piksel za najbardziej wysunitym
// w prawo elementem - ergo jest rwny szerokoci caego layoutu.
// W tym miejscu MaxRowX wskazuje na pierwszy piksel za najbardziej wysuniêtym
// w prawo elementem - ergo jest równy szerokoœci ca³ego layoutu.
Result.Width:=MaxRowX;
end;
@ -588,18 +588,18 @@ if tmpBitmap=nil then
exit;
tmpBitmap.Canvas.font.assign(FAppearance.Pane.CaptionFont);
// *** Minimalna szeroko�� tafli (tekstu) ***
// *** Minimalna szerokoϾ tafli (tekstu) ***
TextW:=tmpBitmap.Canvas.TextWidth(FCaption);
PaneCaptionWidth:=2*PANE_BORDER_SIZE +
2*PANE_CAPTION_HMARGIN +
TextW;
// *** Szeroko�� elementw tafli ***
// *** Szerokoœæ elementów tafli ***
Layout:=GenerateLayout;
ElementsW:=Layout.Width;
PaneElementsWidth:=PANE_BORDER_SIZE + PANE_LEFT_PADDING + ElementsW + PANE_RIGHT_PADDING + PANE_BORDER_SIZE;
// *** Ustawianie szerokoci tafli ***
// *** Ustawianie szerokoœci tafli ***
result:=max(PaneCaptionWidth, PaneElementsWidth);
end;
@ -644,7 +644,7 @@ if FMouseActiveElement.ElementType = peNone then
FMouseActiveElement.ElementType:=pePaneArea;
FMouseActiveElement.ElementIndex:=-1;
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia.
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia.
end;
end;
end;
@ -660,15 +660,15 @@ if FMouseActiveElement.ElementType = peNone then
end else
if FMouseHoverElement.ElementType = pePaneArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia.
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia.
end;
end;
FMouseHoverElement.ElementType:=peNone;
FMouseHoverElement.ElementIndex:=-1;
// Niezalenie od tego, ktry element by aktywny / pod mysz, trzeba
// wygasi HotTrack.
// Niezale¿nie od tego, który element by³ aktywny / pod mysz¹, trzeba
// wygasiæ HotTrack.
if FPaneState<>psIdle then
begin
FPaneState:=psIdle;
@ -683,9 +683,9 @@ var i : integer;
NewMouseHoverElement : TSpkMousePaneElement;
begin
// MouseMove jest wywoywany tylko, gdy tafla jest aktywna, b�d� gdy
// mysz rusza si wewntrz jej obszaru. Wobec tego zawsze naley
// w tej sytuacji zapali HotTrack.
// MouseMove jest wywo³ywany tylko, gdy tafla jest aktywna, b¹dŸ gdy
// mysz rusza siê wewn¹trz jej obszaru. Wobec tego zawsze nale¿y
// w tej sytuacji zapaliæ HotTrack.
if FPaneState = psIdle then
begin
@ -694,7 +694,7 @@ if FPaneState = psIdle then
FToolbarDispatch.NotifyVisualsChanged;
end;
// Szukamy obiektu pod mysz
// Szukamy obiektu pod mysz¹
i:=FindItemAt(x, y);
if i<>-1 then
begin
@ -719,12 +719,12 @@ if FMouseActiveElement.ElementType = peItem then
end else
if FMouseActiveElement.ElementType = pePaneArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia
end else
if FMouseActiveElement.ElementType = peNone then
begin
// Jeli element pod mysz si zmienia, informujemy poprzedni element o
// tym, e mysz opuszcza jego obszar
// Jeœli element pod mysz¹ siê zmienia, informujemy poprzedni element o
// tym, ¿e mysz opuszcza jego obszar
if (NewMouseHoverElement.ElementType<>FMouseHoverElement.ELementType) or
(NewMouseHoverElement.ElementIndex<>FMouseHoverElement.ElementIndex) then
begin
@ -735,7 +735,7 @@ if FMouseActiveElement.ElementType = peNone then
end else
if FMouseHoverElement.ElementType = pePaneArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia
end;
end;
@ -746,7 +746,7 @@ if FMouseActiveElement.ElementType = peNone then
end else
if NewMouseHoverElement.ElementType = pePaneArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia
end;
end;
@ -768,7 +768,7 @@ if FMouseActiveElement.ElementType = peItem then
end else
if FMouseActiveElement.ElementType = pePaneArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia.
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia.
end;
if ClearActive and
@ -782,7 +782,7 @@ if ClearActive and
end else
if FMouseActiveElement.ElementType = pePaneArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia.
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia.
end;
if FMouseHoverElement.ElementType = peItem then
@ -792,7 +792,7 @@ if ClearActive and
end else
if FMouseHoverElement.ElementType = pePaneArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia.
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia.
end else
if FMouseHoverElement.ElementType = peNone then
begin
@ -919,7 +919,7 @@ var Owner, Parent : TComponent;
begin
if (index<0) or (index>self.Count) then
raise InternalException.create('TSpkPanes.Insert: Nieprawidowy indeks!');
raise InternalException.create('TSpkPanes.Insert: Nieprawid³owy indeks!');
if FRootComponent<>nil then
begin
@ -954,8 +954,8 @@ begin
case Operation of
opInsert: begin
// Ustawienie dyspozytora na nil spowoduje, e podczas
// przypisywania wasnoci nie b�d� woane metody Notify*
// Ustawienie dyspozytora na nil spowoduje, ¿e podczas
// przypisywania w³asnoœci nie bêd¹ wo³ane metody Notify*
TSpkPane(Item).ToolbarDispatch:=nil;
TSpkPane(Item).Appearance:=FAppearance;

View File

@ -3,9 +3,9 @@ unit spkt_Tab;
(*******************************************************************************
* *
* Plik: spkt_Tab.pas *
* Opis: Komponent zakadki toolbara *
* Copyright: (c) 2009 by Spook. Jakiekolwiek uycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi zamanie *
* Opis: Komponent zak³adki toolbara *
* Copyright: (c) 2009 by Spook. Jakiekolwiek u¿ycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi z³amanie *
* prawa autorskiego! *
* *
*******************************************************************************)
@ -66,7 +66,7 @@ type TSpkTab = class;
// *** Wyszukiwanie tafli ***
function FindPaneAt(x, y : integer) : integer;
// *** Obsuga designtime i DFM ***
// *** Obs³uga designtime i DFM ***
procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
procedure DefineProperties(Filer : TFiler); override;
procedure Loaded; override;
@ -88,11 +88,11 @@ type TSpkTab = class;
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
// *** Geometria, obsuga tafli, rysowanie ***
// *** Geometria, obs³uga tafli, rysowanie ***
function AtLeastOnePaneVisible: boolean;
procedure Draw(ABuffer : TBitmap; AClipRect : T2DIntRect);
// *** Obsuga gryzonia ***
// *** Obs³uga gryzonia ***
procedure MouseLeave;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer);
@ -100,10 +100,10 @@ type TSpkTab = class;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer);
// *** Obsuga zdarze dyspozytora ***
// *** Obs³uga zdarzeñ dyspozytora ***
procedure NotifyAppearanceChanged;
// *** Obsuga elementw ***
// *** Obs³uga elementów ***
procedure FreeingPane(APane : TSpkPane);
property ToolbarDispatch : TSpkBaseToolbarDispatch read FToolbarDispatch write SetToolbarDispatch;
@ -350,7 +350,7 @@ if FMouseActiveElement.ElementType = etPane then
end else
if FMouseActiveElement.ElementType = etTabArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia.
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia.
end else
if FMouseActiveElement.ElementType = etNone then
begin
@ -374,7 +374,7 @@ if FMouseActiveElement.ElementType = etNone then
FMouseActiveElement.ElementType:=etTabArea;
FMouseActiveElement.ElementIndex:=-1;
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia.
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia.
end;
end;
end;
@ -390,7 +390,7 @@ if FMouseActiveElement.ElementType = etNone then
end else
if FMouseHoverElement.ElementType = etTabArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia.
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia.
end;
end;
@ -404,7 +404,7 @@ var i : integer;
NewMouseHoverElement : TSpkMouseTabElement;
begin
// Szukamy obiektu pod mysz
// Szukamy obiektu pod mysz¹
i:=FindPaneAt(x, y);
if i<>-1 then
begin
@ -431,12 +431,12 @@ if FMouseActiveElement.ElementType = etPane then
end else
if FMouseActiveElement.ElementType = etTabArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia
end else
if FMouseActiveElement.ElementType = etNone then
begin
// Jeli element pod mysz si zmienia, informujemy poprzedni element o
// tym, e mysz opuszcza jego obszar
// Jeœli element pod mysz¹ siê zmienia, informujemy poprzedni element o
// tym, ¿e mysz opuszcza jego obszar
if (NewMouseHoverElement.ElementType<>FMouseHoverElement.ElementType) or
(NewMouseHoverElement.ElementIndex<>FMouseHoverElement.ElementIndex) then
begin
@ -447,7 +447,7 @@ if FMouseActiveElement.ElementType = etNone then
end else
if FMouseHoverElement.ElementType = etTabArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia
end;
end;
@ -458,7 +458,7 @@ if FMouseActiveElement.ElementType = etNone then
end else
if NewMouseHoverElement.ElementType = etTabArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia
end;
end;
@ -480,7 +480,7 @@ if FMouseActiveElement.ElementType = etPane then
end else
if FMouseActiveElement.ElementType = etTabArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia.
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia.
end;
if ClearActive and
@ -494,7 +494,7 @@ if ClearActive and
end else
if FMouseActiveElement.ElementType = etTabArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia.
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia.
end;
if FMouseHoverElement.ElementType = etPane then
@ -504,7 +504,7 @@ if ClearActive and
end else
if FMouseHoverElement.ElementType = etTabArea then
begin
// Placeholder, jeli zajdzie potrzeba obsugi tego zdarzenia.
// Placeholder, jeœli zajdzie potrzeba obs³ugi tego zdarzenia.
end;
end;
@ -583,7 +583,7 @@ if FOverrideAppearance then
FPanes.Appearance:=FCustomAppearance else
FPanes.Appearance:=FAppearance;
// Metoda peni rol makra - dlatego nie powiadamia dyspozytora o zmianie.
// Metoda pe³ni rolê makra - dlatego nie powiadamia dyspozytora o zmianie.
end;
procedure TSpkTab.SetVisible(const Value: boolean);
@ -655,7 +655,7 @@ var Owner, Parent : TComponent;
begin
if (index<0) or (index>=self.Count) then
raise InternalException.create('TSpkTabs.Insert: Nieprawidowy indeks!');
raise InternalException.create('TSpkTabs.Insert: Nieprawid³owy indeks!');
if FRootComponent<>nil then
begin
@ -689,8 +689,8 @@ begin
case Operation of
opInsert: begin
// Ustawienie dyspozytora na nil spowoduje, e podczas
// przypisywania wasnoci nie b�d� woane metody Notify*
// Ustawienie dyspozytora na nil spowoduje, ¿e podczas
// przypisywania w³asnoœci nie bêd¹ wo³ane metody Notify*
TSpkTab(Item).ToolbarDispatch:=nil;
TSpkTab(Item).Appearance:=self.FAppearance;

View File

@ -3,9 +3,9 @@ unit spkt_Tools;
(*******************************************************************************
* *
* Plik: spkt_Tools.pas *
* Opis: Klasy narzdziowe uatwiajce renderowanie toolbara. *
* Copyright: (c) 2009 by Spook. Jakiekolwiek uycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi zamanie *
* Opis: Klasy narzêdziowe u³atwiaj¹ce renderowanie toolbara. *
* Copyright: (c) 2009 by Spook. Jakiekolwiek u¿ycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi z³amanie *
* prawa autorskiego! *
* *
*******************************************************************************)
@ -70,14 +70,14 @@ TGuiTools.DrawRoundRect(Bitmap.Canvas,
not(LeftEdgeOpen or BottomEdgeOpen),
not(RightEdgeOpen or BottomEdgeOpen));
// Wewntrzna kraw�d�
// *** Gra ***
// Wewnêtrzna krawêdŸ
// *** Góra ***
x1:=Rect.Left + radius * TopClosed * LeftClosed + LeftClosed;
x2:=Rect.Right - radius * TopClosed * RightClosed - RightClosed;
y1:=Rect.Top + TopClosed;
TGuiTools.DrawHLine(Bitmap, x1, x2, y1, InnerLightColor, ClipRect);
// *** D�� ***
// *** Dó³ ***
x1:=Rect.Left + radius * BottomClosed * LeftClosed + LeftClosed;
x2:=Rect.Right - radius * BottomClosed * RightClosed - RightClosed;
y1:=Rect.Bottom - BottomClosed;
@ -99,7 +99,7 @@ if RightEdgeOpen then
TGuiTools.DrawVLine(Bitmap, x1, y1, y2, InnerDarkColor, ClipRect) else
TGuiTools.DrawVLine(Bitmap, x1, y1, y2, InnerLightColor, ClipRect);
// Zaokrglone naroniki
// Zaokr¹glone naro¿niki
if not(LeftEdgeOpen or TopEdgeOpen) then
TGuiTools.DrawAARoundCorner(Bitmap,
T2DIntPoint.create(Rect.left + 1, Rect.Top + 1),
@ -129,8 +129,8 @@ if not(RightEdgeOpen or BottomEdgeOpen) then
InnerLightColor,
ClipRect);
// Zewntrzna kraw�d�
// Zaokrglone naroniki
// Zewnêtrzna krawêdŸ
// Zaokr¹glone naro¿niki
if not(TopEdgeOpen) then
begin
x1:=Rect.Left + Radius * LeftClosed;

View File

@ -3,9 +3,9 @@ unit spkt_Types;
(*******************************************************************************
* *
* Plik: spkt_Types.pas *
* Opis: Definicje typw uywanych podczas pracy toolbara *
* Copyright: (c) 2009 by Spook. Jakiekolwiek uycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi zamanie *
* Opis: Definicje typów u¿ywanych podczas pracy toolbara *
* Copyright: (c) 2009 by Spook. Jakiekolwiek u¿ycie komponentu bez *
* uprzedniego uzyskania licencji od autora stanowi z³amanie *
* prawa autorskiego! *
* *
*******************************************************************************)
@ -29,7 +29,7 @@ type TSpkComponent = class(TComponent)
// *** Konstruktor ***
constructor Create(AOwner : TComponent); override;
// *** Obsuga parenta ***
// *** Obs³uga parenta ***
function HasParent : boolean; override;
function GetParentComponent : TComponent; override;
procedure SetParentComponent(Value : TComponent); override;
@ -45,11 +45,11 @@ type TSpkCollection = class(TPersistent)
FListState : TSpkListState;
FRootComponent : TComponent;
// *** Metody reakcji na zmiany w licie ***
// *** Metody reakcji na zmiany w liœcie ***
procedure Notify(Item : TComponent; Operation : TOperation); virtual;
procedure Update; virtual;
// *** Wewntrzne metody dodawania i wstawiania elementw ***
// *** Wewnêtrzne metody dodawania i wstawiania elementów ***
procedure AddItem(AItem : TComponent);
procedure InsertItem(index : integer; AItem : TComponent);
@ -60,7 +60,7 @@ type TSpkCollection = class(TPersistent)
constructor Create(RootComponent : TComponent); reintroduce; virtual;
destructor Destroy; override;
// *** Obsuga listy ***
// *** Obs³uga listy ***
procedure Clear;
function Count : integer;
procedure Delete(index : integer); virtual;
@ -70,7 +70,7 @@ type TSpkCollection = class(TPersistent)
procedure Exchange(item1, item2 : integer);
procedure Move(IndexFrom, IndexTo : integer);
// *** Reader, writer i obsuga designtime i DFM ***
// *** Reader, writer i obs³uga designtime i DFM ***
procedure WriteNames(Writer : TWriter); virtual;
procedure ReadNames(Reader : TReader); virtual;
procedure ProcessNames(Owner : TComponent); virtual;
@ -85,8 +85,8 @@ implementation
procedure TSpkCollection.AddItem(AItem: TComponent);
begin
// Ta metoda moe by wywoywana bez przetworzenia nazw (w szczeglnoci, metoda
// przetwarzajca nazwy korzysta z AddItem)
// Ta metoda mo¿e byæ wywo³ywana bez przetworzenia nazw (w szczególnoœci, metoda
// przetwarzaj¹ca nazwy korzysta z AddItem)
Notify(AItem, opInsert);
FList.Add(AItem);
@ -122,7 +122,7 @@ end;
procedure TSpkCollection.Delete(index: integer);
begin
if (index<0) or (index>=FList.count) then
raise InternalException.Create('TSpkCollection.Delete: Nieprawidowy indeks!');
raise InternalException.Create('TSpkCollection.Delete: Nieprawid³owy indeks!');
Notify(TComponent(FList[index]), opRemove);
@ -147,7 +147,7 @@ end;
function TSpkCollection.GetItems(index: integer): TComponent;
begin
if (index<0) or (index>=FList.Count) then
raise InternalException.create('TSpkCollection.GetItems: Nieprawidowy indeks!');
raise InternalException.create('TSpkCollection.GetItems: Nieprawid³owy indeks!');
result:=TComponent(FList[index]);
end;
@ -160,7 +160,7 @@ end;
procedure TSpkCollection.InsertItem(index: integer; AItem: TComponent);
begin
if (index<0) or (index>FList.Count) then
raise InternalException.Create('TSpkCollection.Insert: Nieprawidowy indeks!');
raise InternalException.Create('TSpkCollection.Insert: Nieprawid³owy indeks!');
Notify(AItem, opInsert);
@ -173,7 +173,7 @@ procedure TSpkCollection.Move(IndexFrom, IndexTo: integer);
begin
if (indexFrom<0) or (indexFrom>=FList.Count) or
(indexTo<0) or (indexTo>=FList.Count) then
raise InternalException.Create('TSpkCollection.Move: Nieprawidowy indeks!');
raise InternalException.Create('TSpkCollection.Move: Nieprawid³owy indeks!');
FList.Move(IndexFrom, IndexTo);