Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TToolbar OnCustomBtnDraw zeichnet falsch (https://www.delphipraxis.net/37248-ttoolbar-oncustombtndraw-zeichnet-falsch.html)

svenjko 3. Jan 2005 11:37


TToolbar OnCustomBtnDraw zeichnet falsch
 
Hi!
Vielleicht könnt ihr mir helfen.
Bei OnCustomBtnDraw wird der Text nicht richtig angezeigt
und die Farben nicht richtig dargestellt.
Funktioniert auch nicht mit OnAdvancedCustomBtnDraw !

Danke !
Svenja


Code:
unit OOToolBar;

interface

uses
  Windows, SysUtils, Classes, Controls, ToolWin, ComCtrls, Graphics, Forms;

type
  TOOToolBar = class(TToolBar)
//--------------------------------------------------------------------------------------
  private
  procedure CustomBtnDraw(Sender: TToolBar; Button: TToolButton;State: TCustomDrawState; var DefaultDraw: Boolean);
  procedure CustonDraw(Sender: TToolBar;const ARect: TRect; var DefaultDraw: Boolean);

//--------------------------------------------------------------------------------------
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
//--------------------------------------------------------------------------------------
  published
    { Published-Deklarationen }

//--------------------------------------------------------------------------------------
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Privat', [TOOToolBar]);
end;

constructor TOOToolBar.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Flat := True;
  ShowCaptions := True;
  OnCustomDraw:= CustonDraw;
  OnCustomDrawButton:= CustomBtnDraw;
end;

destructor TOOToolBar.Destroy;
begin
  inherited Destroy;
end;

procedure TOOToolBar.CustomBtnDraw(Sender: TToolBar; Button: TToolButton;State:TCustomDrawState; var DefaultDraw: Boolean);
var
 R,R2: TRect;
begin
 R:= Button.BoundsRect;
 R2:= Rect(Button.BoundsRect.Left+2,Button.BoundsRect.Top+2,
 Button.BoundsRect.Right-2,Button.BoundsRect.Bottom-2);

 if cdsSelected in State then
 begin
 Canvas.Brush.Color:= Color;
 Canvas.FillRect(R);
 Canvas.Brush.Color:= $00E3DFE0;
 Canvas.FillRect(R2);
 Canvas.Brush.Style:= bsClear;
 Canvas.Pen.Color:= $007A868A;
 Canvas.Rectangle(R2);
 end
 else
 if (cdsHot in State) and not (cdsSelected in State) then
 begin
 Canvas.Brush.Color:= Color;
 Canvas.FillRect(R);
 Canvas.Brush.Color:= clBlue;
 Canvas.FillRect(R2);
 Canvas.Brush.Style:= bsClear;
 Canvas.Pen.Color:= $00C66931;
 Canvas.Rectangle(R2);

end;
 Canvas.TextRect(R,4,4,'test');
 Canvas.TextRect(R,70,4,'test');
 DefaultDraw:= False;
end;

procedure TOOToolBar.CustonDraw(Sender: TToolBar;const ARect: TRect;var DefaultDraw: Boolean);
begin

end;

end.

svenjko 5. Jan 2005 22:08

Re: TToolbar OnCustomBtnDraw zeichnet falsch
 
Danke für die super tolle Hilfe !!!!!!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz