Delphi-PRAXiS

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 On-Ereigniss ersetzen (https://www.delphipraxis.net/52831-ereigniss-ersetzen.html)

LoL 5. Sep 2005 08:36


On-Ereigniss ersetzen
 
Moin,

ich hab folgendes Problem:
Ich habe ein Fenster in dem etwas aus einer Listbox ausgewählt werden soll und darunter ein Knopf. Die Routine auf dem Knopf soll auch ausgeführt werden wenn ich einen doppelklick auf die Listbox mache. Die Routine wenn man auf den Button drückt funktioniert einwandfrei. Für den dblKlick auf die Listbox verwende ich folgenden Code:

Delphi-Quellcode:
  @OnDblClick := @btbtn_okClick;
Funktioniert auch soweit: Die Routine wird aufgerufen. Komischerweise "hängt" sich dann mein Programm auf, aber eine Endlosschleife ist es nicht habe ich schon überprüft, denn der Code ist abgearbeitet nur kann ich auf dem Form dann irgendwie nichts mehr machen...

Worann kann das liegen? Wenn ihr nochmehr Code wollt einfach sagen :mrgreen:

marabu 5. Sep 2005 08:40

Re: On-Ereigniss ersetzen
 
Hi Christoph,

hast du es schonmal so probiert:

Delphi-Quellcode:
ListBox.OnDblClick := btbtn_on_okClick;
Grüße vom marabu

LoL 5. Sep 2005 08:44

Re: On-Ereigniss ersetzen
 
:mrgreen:

Ich hab das eventuell etwas falsch dargestellt.
Der Button wird zur Laufzeit erstellt genau wie die Listbox. Also weise ich dem Button sowie der Listbox die Routine zu:

Delphi-Quellcode:
@Button.OnClick := @Machwas;
@ListBox.OnDblClick := @Machwas;
Und da das ja einfach nur ne procedure ist nehm ich da den Pointer...

Sharky 5. Sep 2005 08:49

Re: On-Ereigniss ersetzen
 
Zitat:

Zitat von LoL
...Der Button wird zur Laufzeit erstellt genau wie die Listbox.

Hai Christoph,

trotzdem wollte es eigentlich so gehen wie von marabu beschrieben.

marabu 5. Sep 2005 08:55

Re: On-Ereigniss ersetzen
 
Vielleicht überzeugt dich ja das:

Delphi-Quellcode:
unit DemoFrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TDemoForm = class(TForm)
    DemoButton: TButton;
    ListBox: TListBox;
    procedure DemoButtonClick(Sender: TObject);
    procedure ButtonClick(Sender: TObject);
  private
    MyButton: TButton;
  end;

var
  DemoForm: TDemoForm;

implementation

{$R *.dfm}

procedure TDemoForm.DemoButtonClick(Sender: TObject);
begin
  if Assigned(MyButton) then
    MyButton.Free;
  MyButton := TButton.Create(self);
  MyButton.Parent := self;
  MyButton.Top := DemoButton.Top + 100;
  MyButton.Left := DemoButton.Left;
  MyButton.Caption := 'So geht es';
  MyButton.OnClick := ButtonClick;
  ListBox.OnDblClick := ButtonClick;
end;

procedure TDemoForm.ButtonClick(Sender: TObject);
begin
  ShowMessage('Hi');
end;

end.
marabu

LoL 5. Sep 2005 09:36

Re: On-Ereigniss ersetzen
 
Nun das habe ich nun gemacht trotzdem das selbe wie vorher auch:

Delphi-Quellcode:
  Tfrm_GraphEdit = class(TForm)
    lb_graphen: TListBox;
    btbtn_ok: TBitBtn;
    procedure btbtn_okLoadGraph(Sender : TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
{...}
btbtn_ok.OnClick := btbtn_okLoadGraph;
lb_graphen.OnDblClick := btbtn_okLoadGraph;
komischer weise entsteht das problem immer noch.
Ich weis nicht mehr weiter :wall: :wall: :wall:

Wie kann es sein das das Programm mit dem Button funktioniert aber mit einem Doppelklick sich aufhängt????

Sharky 5. Sep 2005 09:38

Re: On-Ereigniss ersetzen
 
Hai LoL,

wie sieht den der Code für deine Klick-Procedure aus?

tigerman33 5. Sep 2005 09:44

Re: On-Ereigniss ersetzen
 
Könnte da vielleicht ein unbedachter Typecast des Parameters Sender im Eventhandler der Übeltäter sein?

LoL 5. Sep 2005 10:13

Re: On-Ereigniss ersetzen
 
Seltsam
Ich hab Delphi geschlossen, neugestartet, neucompiliert und jetzt gehts???
Naja hauptsache ich hab den doofen Fehler nichtmehr


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz