Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Button OnClick wird nicht ausgelöst.. (https://www.delphipraxis.net/67618-button-onclick-wird-nicht-ausgeloest.html)

Angel4585 17. Apr 2006 19:15

Re: Button OnClick wird nicht ausgelöst..
 
@mkinzler: ui des mit dem Parent geht.. aber sie sind dann nimmer auf dem Grid und scrollen au nimmer mit...

@SirThornberry: Dein Vorschlag funktioniert nicht, es bleibt wie es ist.

DGL-luke 17. Apr 2006 19:29

Re: Button OnClick wird nicht ausgelöst..
 
Irgendwo muss das OnClick ja ankommen ;)

Wenns im TStringGrid.onclick ankommt: Weiterleiten, vielleicht kommt auch OnMouseUp an (hat der button das? falls nicht, Windowproc überschreiben)

Angel4585 17. Apr 2006 19:42

Re: Button OnClick wird nicht ausgelöst..
 
Zitat:

Zitat von DGL-luke
vielleicht kommt auch OnMouseUp an (hat der button das? falls nicht, Windowproc überschreiben)

Tatsache.. ein OnMouseUp, und OnMouseDown usw funzen alle :thumb: Problem erledigt..

[OT]Meint ihr das mit dem Button im Grid wär was für die Codelib?[/OT]

SirThornberry 17. Apr 2006 20:53

Re: Button OnClick wird nicht ausgelöst..
 
für die Codelib? Ich finde eher nicht da es doch recht unelegant ist in jedem Draw einen Button neu zu erstellen. Desweiteren gibt es bei dieser Variante doch unschöne Effekte beim Scrollen.

Angel4585 18. Apr 2006 05:53

Re: Button OnClick wird nicht ausgelöst..
 
japp.. diese Effekte muss ich noch beheben.. aber dafür brauch ich irgendwie die Position und die Größe einer Zelle...

Sidorion 18. Apr 2006 16:01

Re: Button OnClick wird nicht ausgelöst..
 
Lass doch einfach den TButton weg und zeichne ihn selber. Dann berechnest Du im StringGrid.Click die Zelle (MouseToCell oder so).
Das selberzeichnen ist auch fett schneller, einziges Problem ist evtl. das Highlighting bei aktivierten Themes. da musst Du im MouseMove die verlassene und betretene Zelle ausrechnen und diese beiden neuzeichnen.

Sidorion 10. Jul 2007 15:00

Re: Button OnClick wird nicht ausgelöst..
 
Ist zwar schon älter, der Thread, aber ich hab gerade die Lösung gefunden: Die Stringgrid reicht die WM_COMMAND Nachricht nicht an ihre Childcontrols weiter. Abhilfe schafft dieser Code:
Delphi-Quellcode:
procedure TControlGrid.WMCommand(var Message: TWMCommand);
var
  Control: TWinControl;
begin
  Control := FindControl(Message.Ctl);
  if Control <> nil
  then Begin
    with TMessage(Message)
    do Result:=(Control.Perform(Msg + CN_BASE, WParam, LParam));
    If Message.Result<>0
    Then Inherited;
  End;
end;
Dazu muss die WMCommand-Methode überschrieben werden (ist nicht virtuell, macht aber in diesem Fall nix, da diese speziellen Nachrichtenbehandlungsmethoden anders behandelt werden)
Delphi-Quellcode:
  protected
    procedure WMCommand(var Message: TWMCommand); message WM_COMMAND;
Vielleicht brauchts ja jemand nochmal.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:49 Uhr.
Seite 2 von 2     12   

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