diff --git a/lcl/graphtype.pp b/lcl/graphtype.pp index 4a8b8dabbd..c2e2b5ec36 100644 --- a/lcl/graphtype.pp +++ b/lcl/graphtype.pp @@ -285,6 +285,7 @@ function CopyImageData(AWidth, AHeight, ARowStride: Integer; ABPP: Word; ASource: Pointer; const ARect: TRect; ASourceOrder: TRawImageLineOrder; ADestinationOrder: TRawImageLineOrder; ADestinationEnd: TRawImageLineEnd; out ADestination: Pointer; out ASize: PtrUInt): Boolean; +function RawImageQueryFlagsToString(AFlags: TRawImageQueryFlags): string; var MissingBits: array[0..15] of array[0..7] of word; @@ -294,7 +295,6 @@ implementation uses Math; - {------------------------------------------------------------------------------ Function: CopyImageData ------------------------------------------------------------------------------} @@ -455,6 +455,18 @@ begin Result := True; end; +function RawImageQueryFlagsToString(AFlags: TRawImageQueryFlags): string; +begin + Result := ''; + if riqfMono in AFlags then Result := Result + 'riqfMono '; + if riqfGrey in AFlags then Result := Result + 'riqfGrey '; + if riqfRGB in AFlags then Result := Result + 'riqfRGB '; + if riqfAlpha in AFlags then Result := Result + 'riqfAlpha '; + if riqfMask in AFlags then Result := Result + 'riqfMask '; + if riqfPalette in AFlags then Result := Result + 'riqfPalette '; + if riqfUpdate in AFlags then Result := Result + 'riqfUpdate '; +end; + {------------------------------------------------------------------------------ Function: GetBytesPerLine ------------------------------------------------------------------------------} @@ -1042,7 +1054,6 @@ begin Result := True; end; - { TRawImage } function TRawImage.IsMasked(ATestPixels: Boolean): Boolean; diff --git a/lcl/interfaces/customdrawn/customdrawnlclintf.inc b/lcl/interfaces/customdrawn/customdrawnlclintf.inc index 13e1850a4d..37accd9b9a 100644 --- a/lcl/interfaces/customdrawn/customdrawnlclintf.inc +++ b/lcl/interfaces/customdrawn/customdrawnlclintf.inc @@ -1,4 +1,4 @@ -{%MainUnit customdrawnint.pp} +{%MainUnit customdrawnint.pas} {****************************************************************************** All CustomDrawn interface support routines Initial Revision : Sat Jan 17 19:00:00 2004 @@ -422,10 +422,15 @@ var lRawImage: TRawImage; lBitmap: TCDBitmap; begin + {$ifdef VerboseCDBitmap} + DebugLn(Format(':>[TCDWidgetSet.RawImage_CreateBitmaps] ARawImage.Description=%s', [ARawImage.Description.AsString])); + {$endif} + Result := False; ABitmap := 0; AMask := 0; + // Copy the data if ARawImage.DataSize > 0 then begin NewData := GetMem(ARawImage.DataSize); @@ -437,14 +442,15 @@ begin // this is only a rough implementation, there is no check against bitsperpixel lBitmap := TCDBitmap.Create; ABitmap := HBITMAP(lBitmap); - lRawImage := ARawImage; + System.Move(ARawImage, lRawImage, SizeOf(TRawImage)); lRawImage.Data := NewData; lBitmap.Image := TLazIntfImage.Create(lRawImage, True); Result := ABitmap <> 0; - - if ASkipMask then Exit; - AMask := 0; + // Currently we dont support the Mask + if not ASkipMask then + begin + AMask := 0; { if (ARawImage.Mask <> nil) and (ARawImage.MaskSize > 0) then begin @@ -455,6 +461,11 @@ begin NewData := nil; AMask := HBitmap(TQtImage.Create(NewData, Desc.Width, Desc.Height, QImageFormat_Mono, True));} + end; + + {$ifdef VerboseCDBitmap} + DebugLn(Format(':<[TCDWidgetSet.RawImage_CreateBitmaps] out ABitmap=%x AMask=%x', [ABitmap, AMask])); + {$endif} end; {------------------------------------------------------------------------------ @@ -470,6 +481,10 @@ var CDBitmap: TCDBitmap; lRawImage: TRawImage; begin + {$ifdef VerboseCDBitmap} + DebugLn(Format('[TCDWidgetSet.RawImage_DescriptionFromBitmap] ABitmap=%x', [ABitmap])); + {$endif} + Result := IsValidBitmap(ABitmap); if not Result then begin @@ -512,6 +527,10 @@ function TCDWidgetSet.RawImage_FromBitmap(out ARawImage: TRawImage; ABitmap, AMa var CDBitmap: TCDBitmap; begin + {$ifdef VerboseCDBitmap} + DebugLn(Format('[TCDWidgetSet.RawImage_FromBitmap] ABitmap=%x', [ABitmap])); + {$endif} + Result := IsValidBitmap(ABitmap); if not Result then begin @@ -719,10 +738,14 @@ end;*) Params: AFlags: ADesc: Returns: - ------------------------------------------------------------------------------} function TCDWidgetSet.RawImage_QueryDescription(AFlags: TRawImageQueryFlags; var ADesc: TRawImageDescription): Boolean; begin + {$ifdef VerboseCDBitmap} + DebugLn(Format('[TCDWidgetSet.RawImage_QueryDescription] AFlags=%s', [RawImageQueryFlagsToString(AFlags)])); + {$endif} + + // The default implementation is good enough, don't change this without a very good reason Result := inherited RawImage_QueryDescription(AFlags, ADesc); end; diff --git a/lcl/interfaces/customdrawn/customdrawnwinapi.inc b/lcl/interfaces/customdrawn/customdrawnwinapi.inc index 8b85e24e57..efad6e4083 100644 --- a/lcl/interfaces/customdrawn/customdrawnwinapi.inc +++ b/lcl/interfaces/customdrawn/customdrawnwinapi.inc @@ -69,7 +69,7 @@ end;*) ------------------------------------------------------------------------------} function TCDWidgetSet.BeginPaint(Handle: hWnd; Var PS : TPaintStruct): hdc; begin - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} DebugLn('Trace:> [WinAPI BeginPaint] Handle=', dbghex(Handle)); {$endif} Result := 0; @@ -109,22 +109,22 @@ begin WriteLn('Trace:< [WinAPI BeginPaint] Result=', dbghex(Result)); {$endif}*) end; -(* -function TQtWidgetSet.BitBlt(DestDC: HDC; X, Y, Width, Height: Integer; SrcDC: HDC; XSrc, YSrc: Integer; Rop: DWORD): Boolean; + +function TCDWidgetSet.BitBlt(DestDC: HDC; X, Y, Width, Height: Integer; SrcDC: HDC; XSrc, YSrc: Integer; Rop: DWORD): Boolean; begin - {$ifdef VerboseQtWinAPI} - WriteLn('Trace:> [TQtWidgetSet.BitBlt]'); + {$ifdef VerboseCDDrawing} + WriteLn('Trace:> [TCDWidgetSet.BitBlt]'); {$endif} Result := StretchBlt(DestDC, X, Y, Width, Height, SrcDC, XSrc, YSrc, Width, Height, ROP); - {$ifdef VerboseQtWinAPI} - WriteLn('Trace:< [TQtWidgetSet.BitBlt]'); + {$ifdef VerboseCDDrawing} + WriteLn('Trace:< [TCDWidgetSet.BitBlt]'); {$endif} end; -function TQtWidgetSet.CallNextHookEx(hHk: HHOOK; ncode : Integer; wParam: WParam; lParam : LParam) : Integer; +(*function TQtWidgetSet.CallNextHookEx(hHk: HHOOK; ncode : Integer; wParam: WParam; lParam : LParam) : Integer; begin {$ifdef VerboseQtWinAPI_MISSING_IMPLEMENTATION} WriteLn('***** [WinAPI TQtWidgetSet.CallNextHookEx] missing implementation '); @@ -394,7 +394,7 @@ function TCDWidgetSet.CreateBrushIndirect(const LogBrush: TLogBrush): HBRUSH; var lBrush: TFPCustomBrush; begin - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} DebugLn(Format(':>[TCDWidgetSet.CreateBrushIndirect] Style: %d, Color: %8x', [LogBrush.lbStyle, LogBrush.lbColor])); {$endif} @@ -468,7 +468,7 @@ begin DebugLn('TQtWidgetSet.CreateBrushIndirect: Failed'); end;*) - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} DebugLn(':<[WinAPI CreateBrushIndirect] Result: ', dbghex(Result)); {$endif} end; @@ -485,16 +485,19 @@ end;*) Returns: handle to a memory device context Creates a memory device context (DC) compatible with the specified device. + + This is utilized for example for creating a Canvas for a Bitmap, by later using + SelectObject to select the bitmap ------------------------------------------------------------------------------} function TCDWidgetSet.CreateCompatibleDC(DC: HDC): HDC; begin - {$ifdef VerboseCDWinAPI} - WriteLn('[WinAPI CreateCompatibleDC] DC: ', dbghex(DC)); + {$ifdef VerboseCDDrawing} + DebugLn('[WinAPI CreateCompatibleDC] DC: ', dbghex(DC)); {$endif} - Result := 0;//HDC(TQtDeviceContext.Create(nil, True)); + Result := HDC(TLazCanvas.Create(nil)); end; -(* -{------------------------------------------------------------------------------ + +(*{------------------------------------------------------------------------------ Function: CreateEllipticRgn Params: p1 - X position of the top-left corner p2 - Y position of the top-left corner @@ -666,7 +669,7 @@ function TCDWidgetSet.CreatePenIndirect(const LogPen: TLogPen): HPEN; var lPen: TFPCustomPen; begin - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} DebugLn(Format(':>[TCDWidgetSet.CreatePenIndirect] Style: %d, Color: %8x', [LogPen.lopnStyle, LogPen.lopnColor])); {$endif} @@ -791,11 +794,11 @@ var aObject: TObject; // APaintEngine: QPaintEngineH; // APainter: QPainterH; - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} ObjType: string; {$endif} begin - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} DebugLn('Trace:> [WinAPI DeleteObject] GDIObject: ', dbghex(GDIObject)); ObjType := 'Unidentifyed'; {$endif} @@ -816,7 +819,7 @@ begin ------------------------------------------------------------------------------} if aObject is TFPCustomFont then begin - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} ObjType := 'Font'; {$endif} end @@ -825,7 +828,7 @@ begin ------------------------------------------------------------------------------} else if aObject is TFPCustomBrush then begin - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} ObjType := 'Brush'; {$endif} end @@ -863,7 +866,7 @@ begin ------------------------------------------------------------------------------} else if aObject is TFPCustomPen then begin - {$ifdef VerboseQtWinAPI} + {$ifdef VerboseCDDrawing} ObjType := 'Pen'; {$endif} end; @@ -1487,13 +1490,13 @@ var LazDC: TLazCanvas absolute DC; R: TRect; begin - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} DebugLn(Format(':>[WinAPI Ellipse] DC=%s', [dbghex(DC)])); {$endif} if not IsValidDC(DC) then begin - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} DebugLn(':<[WinAPI Rectangle] Invalid DC!'); {$endif} Exit(False); @@ -2239,7 +2242,7 @@ var begin Result := False; - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} DebugLn('[WinAPI FillRect Rect=', dbgs(Rect),' Brush=', dbghex(Brush)); {$endif} @@ -2745,7 +2748,7 @@ var lWinControl: TWinControl; lFormHandle: TCDForm; begin - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} DebugLn(':>[WinAPI GetDC] hWnd: ', dbghex(hWnd)); {$endif} @@ -2781,7 +2784,7 @@ begin // to receive something which can be drawn to anyway if Result = 0 then Result := HDC(CDWidgetset.ScreenDC); - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} DebugLn(':<[WinAPI GetDC] Result: ', dbghex(Result)); {$endif} end; @@ -4655,7 +4658,7 @@ var lControlHandle: TCDWinControl; lControl: TWinControl; begin - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} WriteLn('[WinAPI InvalidateRect]'); {$endif} if AHandle = 0 then exit(False); @@ -4728,7 +4731,7 @@ var PenPos, LastPos: TPoint; LazDC: TLazCanvas absolute DC; begin - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} DebugLn(Format('[TCDWidgetSet.LineTo] DC=%x X=%d Y=%d', [DC, X, Y])); {$endif} @@ -4804,7 +4807,7 @@ function TCDWidgetSet.MoveToEx(DC: HDC; X, Y: Integer; OldPoint: PPoint): Boolea var LazDC: TLazCanvas absolute DC; begin - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} DebugLn('[WinAPI MoveToEx]', ' DC:', dbghex(DC), ' X:', dbgs(X), @@ -4863,7 +4866,7 @@ end;*) function TCDWidgetSet.PolyBezier(DC: HDC; Points: PPoint; NumPts: Integer; Filled, Continuous: Boolean): Boolean; begin - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} WriteLn('[WinAPI PolyBezier] DC: ', dbghex(DC)); {$endif} Result := inherited PolyBezier(DC, Points, NumPts, Filled, Continuous); @@ -4881,7 +4884,7 @@ var lPoints: array of TPoint; i: Integer; begin - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} DebugLn(Format(':>[WinAPI Polygon] DC=%s', [dbghex(DC)])); {$endif} @@ -4890,7 +4893,7 @@ begin SetLength(lPoints, NumPts); for i := 0 to NumPts-1 do begin - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} LCLProc.DbgOut(Format(' P=%d,%d', [Points[i].X, Points[i].Y])); {$endif} lPoints[i] := Points[i]; @@ -4899,7 +4902,7 @@ begin LazDC.Polygon(lPoints); Result := True; - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} DebugLn(''); {$endif} end; @@ -4915,7 +4918,7 @@ var lPoints: array of TPoint; i: Integer; begin - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} DebugLn(Format(':>[WinAPI Polygon] DC=%s', [dbghex(DC)])); {$endif} @@ -4965,13 +4968,13 @@ function TCDWidgetSet.Rectangle(DC: HDC; X1, Y1, X2, Y2: Integer): Boolean; var LazDC: TLazCanvas absolute DC; begin - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} DebugLn(Format(':>[WinAPI Rectangle] DC=%s', [dbghex(DC)])); {$endif} if not IsValidDC(DC) then begin - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} DebugLn(':<[WinAPI Rectangle] Invalid DC!'); {$endif} Exit(False); @@ -5310,11 +5313,11 @@ var lPen: TFPCustomPen absolute AObject; lBrush: TFPCustomBrush absolute AObject; lOrigBrush: TFPCustomBrush; - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} ObjType: string; {$endif} begin - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} DebugLn(Format(':>[TCDWidgetSet.SelectObject] DC=%s GDIObj=%s', [dbghex(DC), dbghex(GDIObj)])); {$endif} @@ -5323,7 +5326,7 @@ begin if not IsValidDC(DC) then begin - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} DebugLn(':<[TCDWidgetSet.SelectObject] Invalid DC'); {$endif} @@ -5332,7 +5335,7 @@ begin if not IsValidGDIObject(GDIObj) then begin - {$ifdef VerboseQtWinAPI} + {$ifdef VerboseCDDrawing} DebugLn(':<[TCDWidgetSet.SelectObject] Invalid GDI Object'); {$endif} @@ -5353,7 +5356,7 @@ begin end else*) if aObject is TFPCustomPen then begin - {$ifdef VerboseCDWinAPI}ObjType := 'Pen';{$endif} + {$ifdef VerboseCDDrawing}ObjType := 'Pen';{$endif} Result := HGDIOBJ(TLazCanvas(DC).AssignedPen); TLazCanvas(DC).AssignPenData(lPen); // := doesn't work and Assign() raises exceptions @@ -5361,30 +5364,27 @@ begin end else if aObject is TFPCustomBrush then begin - {$ifdef VerboseCDWinAPI}ObjType := 'Brush';{$endif} + {$ifdef VerboseCDDrawing}ObjType := 'Brush';{$endif} Result := HGDIOBJ(TLazCanvas(DC).AssignedBrush); TLazCanvas(DC).AssignBrushData(lBrush); // := doesn't work and Assign() raises exceptions TLazCanvas(DC).AssignedBrush := lBrush; - end(* - else if aObject is TQtImage then + end + else if aObject is TCDBitmap then begin - {$ifdef VerboseQtWinAPI} - ObjType := 'Image'; - {$endif} + {$ifdef VerboseCDDrawing}ObjType := 'Bitmap';{$endif} - Result := HGDIOBJ(TQtDeviceContext(DC).vImage); + Result := HGDIOBJ(TLazCanvas(DC).Image); - // TODO: is this also saved in qpainter_save? - TQtDeviceContext(DC).setImage(TQtImage(aObject)); - end else + TLazCanvas(DC).Image := TCDBitmap(aObject).Image; + end; (*else if AObject is TQtRegion then begin Result := HGDIOBJ(TQtDeviceContext(DC).getClipRegion); SelectClipRGN(DC, HRGN(GDIObj)); end*); - {$ifdef VerboseCDWinAPI} + {$ifdef VerboseCDDrawing} DebugLn(':<[TCDWidgetSet.SelectObject] Result=', dbghex(Result), ' ObjectType=', ObjType); {$endif} end; @@ -6230,7 +6230,7 @@ begin end; Result := True; end; -end; +end;*) {------------------------------------------------------------------------------ Function: StretchBlt @@ -6250,7 +6250,7 @@ end; destination device context. If SrcDC contains a mask the pixmap will be copied with this transparency. ------------------------------------------------------------------------------} -function TQtWidgetSet.StretchBlt(DestDC: HDC; X, Y, Width, Height: Integer; +function TCDWidgetSet.StretchBlt(DestDC: HDC; X, Y, Width, Height: Integer; SrcDC: HDC; XSrc, YSrc, SrcWidth, SrcHeight: Integer; ROp: Cardinal): Boolean; begin Result := StretchMaskBlt(DestDC,X,Y,Width,Height, @@ -6278,32 +6278,30 @@ end; Sizing is done according to the stretching mode currently set in the destination device context. ------------------------------------------------------------------------------} -function TQtWidgetSet.StretchMaskBlt(DestDC: HDC; X, Y, Width, Height: Integer; +function TCDWidgetSet.StretchMaskBlt(DestDC: HDC; X, Y, Width, Height: Integer; SrcDC: HDC; XSrc, YSrc, SrcWidth, SrcHeight: Integer; Mask: HBITMAP; XMask, YMask: Integer; Rop: DWORD): Boolean; var - SrcQDC: TQtDeviceContext absolute SrcDC; - DstQDC: TQtDeviceContext absolute DestDC; + SrcLazDC: TLazCanvas absolute SrcDC; + DstLazDC: TLazCanvas absolute DestDC; SrcRect, DstRect, MaskRect: TRect; - Image, TmpImage, QMask, TmpMask: QImageH; - TmpPixmap: QPixmapH; - SrcMatrix: QTransformH; - dx, dy: integer; begin - {$ifdef VerboseQtWinAPI} - WriteLn('[WinAPI StretchMaskBlt]', - ' DestDC:', dbghex(DestDC), - ' SrcDC:', dbghex(SrcDC), - ' Image:', dbghex(PtrInt(Image)), - ' X:', dbgs(X), ' Y:', dbgs(Y), - ' W:', dbgs(Width), ' H:', dbgs(Height), - ' XSrc:', dbgs(XSrc), ' YSrc:', dbgs(YSrc), - ' WSrc:', dbgs(SrcWidth), ' HSrc:', dbgs(SrcHeight)); + {$ifdef VerboseCDDrawing} + DebugLn('[WinAPI StretchMaskBlt]' + + ' DestDC:' + dbghex(DestDC) + + ' SrcDC:' + dbghex(SrcDC) + +// ' Image:', dbghex(PtrInt(Image)), + ' X:' + dbgs(X) + ' Y:' + dbgs(Y) + + ' W:' + dbgs(Width) + ' H:', dbgs(Height) + + ' XSrc:' + dbgs(XSrc) + ' YSrc:' + dbgs(YSrc) + + ' WSrc:' + dbgs(SrcWidth) + ' HSrc:' + dbgs(SrcHeight)); {$endif} Result := False; - SrcMatrix := QPainter_transform(SrcQDC.Widget); + DstLazDC.AlphaBlend(SrcLazDC, X, Y, XSrc, YSrc, SrcWidth, SrcHeight); + +(* SrcMatrix := QPainter_transform(SrcQDC.Widget); if SrcQDC.vImage = nil then begin if SrcQDC.Parent <> nil then @@ -6388,12 +6386,12 @@ begin DstQDC.drawImage(@DstRect, Image, @SrcRect, QMask, @MaskRect); if SrcQDC.vImage = nil then - QImage_destroy(Image); + QImage_destroy(Image); *) Result := True; end; -{------------------------------------------------------------------------------ +(*{------------------------------------------------------------------------------ Function: SystemParametersInfo Params: uiAction: System-wide parameter to be retrieved or set uiParam: Depends on the system parameter being queried or set diff --git a/lcl/interfaces/customdrawn/customdrawnwinapih.inc b/lcl/interfaces/customdrawn/customdrawnwinapih.inc index 61ca39b984..94a69bdb2b 100644 --- a/lcl/interfaces/customdrawn/customdrawnwinapih.inc +++ b/lcl/interfaces/customdrawn/customdrawnwinapih.inc @@ -31,9 +31,9 @@ function Arc(DC: HDC; Left,Top,Right,Bottom,angle1,angle2 : Integer): Boolean; o (*function AngleChord(DC: HDC; x1, y1, x2, y2, angle1, angle2: Integer): Boolean; override;*) function BeginPaint(Handle: hWnd; Var PS : TPaintStruct) : hdc; override; -(*function BitBlt(DestDC: HDC; X, Y, Width, Height: Integer; SrcDC: HDC; XSrc, YSrc: Integer; Rop: DWORD): Boolean; override; +function BitBlt(DestDC: HDC; X, Y, Width, Height: Integer; SrcDC: HDC; XSrc, YSrc: Integer; Rop: DWORD): Boolean; override; -function CallNextHookEx(hHk: HHOOK; ncode : Integer; wParam: WParam; lParam : LParam) : Integer; override; +(*function CallNextHookEx(hHk: HHOOK; ncode : Integer; wParam: WParam; lParam : LParam) : Integer; override; function CallWindowProc(lpPrevWndFunc : TFarProc; Handle : HWND; Msg : UINT; wParam: WParam; lParam : lParam) : Integer; override; function ClientToScreen(Handle: HWND; var P: TPoint) : Boolean; override; @@ -214,13 +214,13 @@ function SetWindowPos(hWnd: HWND; hWndInsertAfter: HWND; function SetWindowRgn(hWnd: HWND; hRgn: HRGN; bRedraw: Boolean):longint; override; function ShowCaret(hWnd: HWND): Boolean; override; function ShowScrollBar(Handle: HWND; wBar: Integer; bShow: Boolean): Boolean; override; -function ShowWindow(hWnd: HWND; nCmdShow: Integer): Boolean; override; +function ShowWindow(hWnd: HWND; nCmdShow: Integer): Boolean; override;*) function StretchBlt(DestDC: HDC; X, Y, Width, Height: Integer; SrcDC: HDC; XSrc, YSrc, SrcWidth, SrcHeight: Integer; ROp: Cardinal): Boolean; override; function StretchMaskBlt(DestDC: HDC; X, Y, Width, Height: Integer; SrcDC: HDC; XSrc, YSrc, SrcWidth, SrcHeight: Integer; Mask: HBITMAP; XMask, YMask: Integer; Rop: DWORD): Boolean; override; -function SystemParametersInfo(uiAction: DWord; uiParam: DWord; pvParam: Pointer; fWinIni: DWord): LongBool; override;*) +(*function SystemParametersInfo(uiAction: DWord; uiParam: DWord; pvParam: Pointer; fWinIni: DWord): LongBool; override;*) function TextOut(DC: HDC; X,Y : Integer; Str : Pchar; Count: Integer) : Boolean; override; (*function UpdateWindow(Handle: HWND): Boolean; override;