![]() |
SpeedButton im Edit erzeugen
Wie erstelle ich zur Laufzeit im OnEnter Ereignis einer Edit Komponente ein SpeedButton, der dann im Edit angezeigt wird?
Gruß |
Das zur Laufzeit erzeugen von Komponenten hatten wir schon öfters im Forum, bitte suchen.
Abner was soll der Button im Edit? :shock: |
Das Erzeugen ist ja auch nicht wirklich das Problem, nur der Button ist immer hinter dem Edit!
|
Warum sagst du das nicht gleich? :roll:
Schon mal SetParent probiert? Oder SetWindowPos? Allerdingst dürftest du Probleme bekommen, wenn der Speedbutton kein Handle hat, da er evntuell von TGraphicControl abgeleitet ist. |
Nicht nur "eventuell". Er ist es.
|
Hi Tpercon,
meinst du sowas?
Delphi-Quellcode:
Es wäre aber intelligenter, den Button im OnCreate-Ereignis zu erstellen und ihn nur im OnEnter-Ereignis sichtbar bzw. im OnExit-Ereignis unsichtbar zu machen. So wie hier wird nämlich bei jedem OnEnter-Ereignis der Button neu erstellt.
procedure TForm1.Edit1Enter(Sender: TObject);
var Button: TSpeedButton; begin Button := TSpeedButton.Create(TComponent(Sender)); with Button do begin Parent := TWidgetControl(Sender); Caption := 'Test'; Left := TEdit(Sender).Width - 40; Top := 2; Width := 38; Height := Parent.Height - 2; Flat := True; Font.Color := clRed; Font.Style := Font.Style + [fsBold]; OnClick := ButtonClick; end; end; procedure TForm1.ButtonClick(Sender: TObject); begin ShowMessage('Test'); end; procedure TForm1.ButtonClick(Sender: TObject); begin ShowMessage('Test'); end; MfG, d3g |
Was bedeutet denn TWidgetControl?
Erstens meckert Delphi da und zweitens läßt sich in der OH auch nichts dazu finden. :( |
Änder es mal in TWinControl. TWidgetControl wird in Kylix benutzt, kuck mak auf d3g's Delphi Version ;)
|
Danke!
Nur der SpeedButton bekommt leider den gleichen Cursor wie das Edit, kann man das noch ändern, außer über ne Abfrage im MouseMove der Edit Komponente? |
Wie wär's mit der Property Cursor des SpeedButtons?
Delphi-Quellcode:
procedure TForm1.Edit1Enter(Sender: TObject);
var Button: TSpeedButton; begin Button := TSpeedButton.Create(TComponent(Sender)); with Button do begin // ... Cursor := crHandPoint; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 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 by Thomas Breitkreuz