Re: button farbig manchen??
Hallo
Also ich hab einen runden button mal selber erstellt und dort kann man die Farbe wählen. Wenn du willst kann ich dir den Code mal zeigen. Freundliche Grüsse Mars |
Re: button farbig manchen??
Das wäre cool wenn du mir das mal schicken könntest!!
|
Re: button farbig manchen??
Hallo
Also erstens must du eine neue Anwendung eröffnen.Dann musst du im Menu Komponente auf ''Neue Komponente'' drücken und dann dort alles einstellen(der namen der Unit muss in Lib gespeichert werden). Dann die Zeilen in der neu erstellten Unit mit der hier ergänzen. Dann mustt du(in komponente) auf Komponente installieren, und dort(die vorhergespeicherte unit OButton.pas) einstellen(unten nichts verstellen!). Jezt auf Ok und dann sollte der Button im Register Zusätzlich sein. Wenn du nicht weisst wie man ein Bitmap eines Symbols ändert kann ich dir das auch noch erklären. Hoffentlich funktionierts bei dir!
Delphi-Quellcode:
// Edit hatte was vergessen
unit OButton;
interface uses SysUtils, Classes, Graphics, Controls; const OColor: Array[1..3] of TColor = (clBlack, clGray, clWhite); type TOButton = class(TCustomControl) private { Private-Deklarationen } x,y: Integer; FColor: TColor; FCaption: String; Pressed: Boolean; protected { Protected-Deklarationen } procedure Paint; override; procedure MouseDown (Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override; procedure MouseUp (Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override; procedure SetCaption (OText: String); virtual; public { Public-Deklarationen } constructor Create (AOwner: TComponent); override; procedure SetColor (OBrush: TColor); virtual; published { Published-Deklarationen } property OnClick; property OnMouseDown; property OnMouseUp; property OnEnter; property OnExit; property OnKeyPress; property OnKeyDown; property OnKeyUp; property Caption: String read FCaption write SetCaption; property Color: TColor read FColor write SetColor; end; procedure Register; implementation constructor TOButton.Create (AOwner: TComponent); begin inherited Create (AOwner); FColor := clBtnFace; Canvas.Brush.Color := FColor; Pressed := false; Caption := 'OButton'; SetBounds (0,0,50,50); end; procedure TOButton.SetCaption (OText: String); begin FCaption := OText; Repaint; end; procedure TOButton.SetColor (OBrush: TColor); begin FColor := OBrush; Canvas.Brush.Color := FColor; Repaint; end; procedure TOButton.MouseDown (Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin inherited MouseDown (Button, Shift, X, Y); if Button = mbLeft then begin Pressed := true; Paint; end; end; procedure TOButton.MouseUp (Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin inherited MouseUp (Button, Shift, X, Y); Pressed := false; Paint; end; procedure TOButton.Paint; var i: Integer; begin // Position für Anzeige von Caption x := (Width - Canvas.TextWidth(Caption)) div 2; y := (Height- Canvas.TextHeight(Caption)) div 2; // OButton gedrückt if Pressed then for i := 1 to 3 do begin // Canvas.Pen.Color := OColor[4-i]; Canvas.Pen.Color := OColor[(i+1) div 2]; Canvas.Arc (i, i, Width-i, Height-i, i, i, i, i); Canvas.Ellipse (3, 3, Width-3, Height-3); Canvas.TextOut (x+1,y+1, Caption+' '); end // OButton nicht gedrückt else for i := 1 to 3 do begin Canvas.Pen.Color := OColor[i]; Canvas.Arc (i, i, Width-i, Height-i, i, i, i, i); Canvas.Ellipse (3, 3, Width-3, Height-3); Canvas.TextOut (x,y, Caption+' '); end; end; procedure Register; begin RegisterComponents ('Zusätzlich', [TOButton]); end; Freundliche Grüsse Mars |
Re: button farbig manchen??
Aus Delphi für Kids ne ? :mrgreen:
Gruß Neutral General |
Re: button farbig manchen??
Jep, richtig erkannt. Wieso hast du das auch mal gemacht?
Freundliche Grüsse Mars |
Re: button farbig manchen??
Du kannst auch einfach einen Eigenen Button erstellen indem du ihn von TPanel ableitest und dann halt noch mousdown bzw mousup oder nur das click ereignis zuweist
|
Re: button farbig manchen??
Jo klar ;)
Mit dem Buch hab ich auch mal angefangen :) Gruß Neutral General |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:13 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