![]() |
Button.Down auch für normale TButtons?
Hallo!
Ich hab in der Schule(lang ist es her) mal einen Button so erzogen das er nach dem Klick unten geblieben ist.(Quasi Button.down). Ich würde einen Speedbutton nehmen aber ich benötige Tabstops und den hat der Speedbutton nicht. Jemand eine Idee? Ich benutze Delphi5 Enterprise Die Suche hab ich bereits bemüht aber nicht wirklich was gefunden. Danke ! |
Re: Button.Down auch für normale TButtons?
Du kannst eine Checkbox nehmen und sie wie einen normalen Button aussehen lassen.
|
Re: Button.Down auch für normale TButtons?
Oder such dir eine Komponentensammlung die entsprechende Button-Komponenten bereitstellt (wie z.B. das ElPack)
|
Re: Button.Down auch für normale TButtons?
Moin,
da hast du eine "Komponente" :D ...ich habe die mal vor paar Monaten eher spasseshalber gemacht ...ist von TPanel abgeleitet
Delphi-Quellcode:
unit CustomPanelButton;
interface uses SysUtils, Classes, Controls, ExtCtrls, Messages, ActnList; type TButtonType =(btNone, btButton, btRadio); type TCustomPanelButton = class(TPanel) private { Private declarations } FClicked: Boolean; FButtonType: TButtonType; procedure SetClicked(const Value: Boolean); procedure SetButtonType(const Value: TButtonType); protected { Protected declarations } procedure Click(); override; procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override; procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override; public { Public declarations } constructor Create(AOwner: TComponent); override; destructor Destroy(); override; published { Published declarations } property Clicked: Boolean read FClicked write SetClicked; property ButtonType: TButtonType read FButtonType write SetButtonType; end; procedure Register; implementation procedure Register; begin RegisterComponents('Standard', [TCustomPanelButton]); end; { TCustomPanelButton } constructor TCustomPanelButton.Create(AOwner: TComponent); begin inherited Create(AOwner); FButtonType := btNone; FClicked := False; self.Width := 75; self.Height := 25; self.Caption := 'Button'; end; destructor TCustomPanelButton.Destroy; begin inherited; end; procedure TCustomPanelButton.Click; begin if FButtonType = btRadio then begin FClicked := BevelOuter = bvLowered; if FClicked then BevelOuter := bvRaised else BevelOuter := bvLowered; end; end; procedure TCustomPanelButton.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin inherited; if FButtonType = btButton then BevelOuter := bvLowered; end; procedure TCustomPanelButton.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin inherited; if FButtonType = btButton then BevelOuter := bvRaised; end; procedure TCustomPanelButton.SetButtonType(const Value: TButtonType); begin FButtonType := Value; if FButtonType = btButton then BevelOuter := bvRaised; end; procedure TCustomPanelButton.SetClicked(const Value: Boolean); begin FClicked := Value; if FClicked and (FButtonType = btRadio) then BevelOuter := bvLowered else BevelOuter := bvRaised; end; end. |
Re: Button.Down auch für normale TButtons?
Erstmal danke für die Antworten...
aber das ist alles mehr oder weniger von hinten durch die Brust ins Auge ;) Ich versuchs mal mit den Handeln anders hinzubekommen ... |
Re: Button.Down auch für normale TButtons?
Nein, ist es nicht. Unter Windows sind Schaltflächen, Checkboxen und Optionsfelder alles Schaltflächen - nur mit unterschiedlichen Stilen.
|
Re: Button.Down auch für normale TButtons?
Zitat:
...:cat:... |
Re: Button.Down auch für normale TButtons?
ok ok .. Schande über mein Haupt ;)
Und nochmals Danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz