![]() |
Eigene Komponente mit Buttons
Hallo,
ich habe schon wieder eine Frage. Und zwar bin ich doch dabei, eine Komponente zu schreiben. Soweit auch schon ganz erfolgreich. Jetzt benötige ich Navigationsschaltflächen (vor und zurück), die ich per Draw aus einer Resource lade. Klappt auch. Doch wie kann ich jetzt registrieren, dass ein Benutzer auf dieses Bild klickt? Ich vermute mal, dass ich dazu noch nicht einmal Draw benutzen darf, sondern eine Button-Komponente einbauen muss, oder? Danke! |
Re: Eigene Komponente mit Buttons
von welcher Komponente hast du abgeleitet und wie stellst du die Bilder dar?
|
Re: Eigene Komponente mit Buttons
Ich würde auf jedenfall eine Unterkomponente verwenden
|
Re: Eigene Komponente mit Buttons
Zitat:
Wenn ich nichts verpasst habe, dann kann man mit der der Funktion Draw nur zeichnen, nicht laden. Die Frage ist hier eher, von was für einer Komponente ist Deine abgeleitet? Wenn Du auf sie zeichnen kannst, dann gibt es bestimmt auch die Ereignisse OnMouseDown und OnMouseUp, über diese bekommst Du die Position einer Mausaktion. Da Du das Bild zeichnest, musst Du nur schauen wo der Maus-click statt findet und was ander der Stelle steht (vor oder zurück), fertig. Gruß Der Unwissende |
Re: Eigene Komponente mit Buttons
Hallo,
meine Komponente ist von TCustomcontrol abgeleitet. Dass man mir Draw nur zeichnen kann, ist ja schon irgendwie klar. Ich weiß nur nicht, welche Unterkomponente ich verwenden soll, damit man bei dem Button keinen Rand mehr sieht. Dieser Button soll nämlich fest ins Design eingebaut werden und nicht "rausstehen". |
Re: Eigene Komponente mit Buttons
dann überschreibe einfach die Methoden MouseDown und MouseUp
|
Re: Eigene Komponente mit Buttons
Hm naja,
der Button steht ja von Haus aus ein bisschen raus. Dieser pseudo-3D-Effekt soll hier aber (in meinem Fall) vermieden werden. Oder gibt's dafür eine Eigenschaft? |
Re: Eigene Komponente mit Buttons
Zitat:
|
Re: Eigene Komponente mit Buttons
Das verstehe ich jetzt nicht... Sorry :oops:
|
Re: Eigene Komponente mit Buttons
Zitat:
Dieses Event erzwingen kannst du dann so, soweit du intern über das OnMouseDown Event festgestellt hast, dass das Bild angeklickt wurde:
Delphi-Quellcode:
type
TOnPictureClick = procedure (Sender : TObject) of object ; // Weitere Parameter sind auch möglich. TNotifyEvent entspricht dieser Deklaration TMyComponent = class (TUserControl) private procedure AnyProcedure ; published property OnPictureClick : TOnPictureClick read FOnPictureClick write FOnPictureClick ; end ; Das Event OnPictureClick auslösen kannst du in deinem Komponentencode überall etwa so:
Delphi-Quellcode:
procedure TMyComponent.AnyProcedure ;
begin if Assigned (OnPictureClick) then OnPictureClick (Self) ; end ; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:54 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