Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi ButtonKlick ermitteln und wiedergeben (https://www.delphipraxis.net/50836-buttonklick-ermitteln-und-wiedergeben.html)

VT-DA 5. Aug 2005 12:37

Re: ButtonKlick ermitteln und wiedergeben
 
Hi,

Du meinst die ShouteBox? :wiejetzt:
Da kann man aber nicht vernünftig chatten.

Mfg

tigerman33 5. Aug 2005 12:43

Re: ButtonKlick ermitteln und wiedergeben
 
Keine Ahnung hab das noch nicht ausprobiert. Aber ich war hier schon mal in so nem komischen Chatroom. Idee wo man sonst hingehen könnte?

VT-DA 5. Aug 2005 12:47

Re: ButtonKlick ermitteln und wiedergeben
 
Hi,

Ja. Vllt kennst du dich ja mit IRC aus?
Naja:
Server: irc.blitzed.org
Port: 6667
Channel: #Delphi

Oder halt hier: http://www.blitzed.org/chat?chan=delphi

Mfg

tigerman33 5. Aug 2005 12:54

Re: ButtonKlick ermitteln und wiedergeben
 
Da bin ich jetzt mal gerade reingegangen

Sharky 5. Aug 2005 13:13

Re: ButtonKlick ermitteln und wiedergeben
 
Zitat:

Zitat von VT-DA
... Du meinst die ShouteBox? ...

Hier ihr.

Nur mal so als Info zum Thema "Chat in der DP"

http://www.sharkys-home.de/dp/chat.jpg

tigerman33 5. Aug 2005 15:49

Re: ButtonKlick ermitteln und wiedergeben
 
Hier wie versprochen der Kram den wir vorhin im Chat besprochen haben. Ich hab noch mal alles was ich an Code vorhin übern Chat gejagt hab zusammengefasst. Aber: untested.

Delphi-Quellcode:
type TMyButton = class(TButton)
      private
        FWasClicked: boolean;
        function GetWasClicked: boolean;
        procedure CNCommand(var Message: TWMCommand); message CN_COMMAND;
      public
        constructor Create(AOwner: TComponent); override;
        property WasClicked: boolean read GetWasClicked write FWasClicked;
      end;

.
. Nicht vergessen, beim Createn anstelle von TButton.Create TMyButton.Create aufzurufen!!
.

constructor TMyButton.Create(AOwner: TComponent);
begin
  inherited;
  WasClicked := false; // Initialisieren
end;

procedure TMyButton.CNCommand(var Message: TWMCommand);
begin
  // Die Methode hier wird immer aufgerufen, wenn Windows eine COMMAND-Botschaft
  // an deinen Button sendet
  if Message.NotifyCode = BN_CLICKED then // Prüfen ob's die richtige Message ist
    WasClicked := true; // Deine Eigenschaft setzen
  inherited;
end;

function TMyButton.GetWasClicked: boolean;
begin
  Result := FWasClicked;
  WasClicked := false; // Wieder resetten
end;

function ButtonClicked(Obj: TMyButton): boolean;
begin
  Result := Obj.WasClicked;
end;

.
.
.

end.
Hoffe das funktioniert jetzt alles. :-D

Khabarakh 5. Aug 2005 15:57

Re: ButtonKlick ermitteln und wiedergeben
 
Es ist schlechter Programmierstil, ein Feld im Getter zu verändern. Und warum überschreibt ihr nicht einfach Click :wink: ?

@VT-DA: Hättest du einmal dein Problem genau beschrieben, hättest du sicher nicht 4 Tage auf die Lösung warten müssen.

VT-DA 5. Aug 2005 15:59

Re: ButtonKlick ermitteln und wiedergeben
 
Hi,

es klappt perfekt. Großen Dank an tigerman33 für seine Hilfe.

Mfg

tigerman33 6. Aug 2005 06:43

Re: ButtonKlick ermitteln und wiedergeben
 
@Khabarakh:
Zitat:

Es ist schlechter Programmierstil, ein Feld im Getter zu verändern.
Hast natürlich Recht. Mea Culpa... :oops:

An Click hab ich gar nicht gedacht. Auf dem Rechner mit dem ich im Netz bin ist kein Delphi = keine RTL-Source. Aber da die Klick-procedure ja sozusagen bloß ein Muster ist, wird es auf Dauer sowieso einfacher sein, die Messagehandler zu überschreiben. Damit lässt sich das ganze "zentraler" handhaben als jede einzelne protected-Methode neu zu implementieren...

Ist letztendlich irgendwann eine Frage des persönlichen Geschmacks, denke ich.

Khabarakh 6. Aug 2005 10:16

Re: ButtonKlick ermitteln und wiedergeben
 
Zitat:

Zitat von tigerman33
Ist letztendlich irgendwann eine Frage des persönlichen Geschmacks, denke ich.

Da gebe ich dir Recht. In meinem aktuellen Projekt überschreibe ich MouseDown, MouseMove, MouseUp, DoMouseWheelDown und DoMouseWheelUp. Stattdessen eine case-Anweisung über 100 Zeilen (+ weitere verschachtelte case-Anweisungen) wäre mir persönlich zu unübersichtlich :wink: .


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:39 Uhr.
Seite 3 von 4     123 4      

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