![]() |
Re: OnClick abfangen
Zitat:
Das hier funktioniert allerdings doch, Dank himitsu :wink:
Delphi-Quellcode:
var
Form1: TForm1; LastFocus : TWinControl; implementation {$R *.DFM} //------------------------------------------------------------------------------ procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if ActiveControl <> ListBox1 then LastFocus := Form1.ActiveControl; end; //------------------------------------------------------------------------------ procedure TForm1.ListBox1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Form1.ActiveControl := LastFocus; end; //------------------------------------------------------------------------------ |
Re: OnClick abfangen
Hi Ihr,
dann Frag doch in deinem OnExit des anderen Steuerelements ab, ob der Fokus jetzt auf die Listbox gesetzt wurde, und falls ja setzt du ihn wieder zurück und falls nein kannst du dein eigentliches OnExit auslösen:
Delphi-Quellcode:
procedure TForm1.OnExit(Sender: TObject);
begin if ( Form1.ActiveControl.Name = ListBox1 ) //oder so ähnlich *g* then begin Sender.SetFocus; //oder so ähnlich ^^ end else begin //Mache was du sonst normalerweise in OnExit gemacht hättest! end; end; |
Re: OnClick abfangen
:angel:
Zitat:
und du mußt ja die Maus erstmal über die ListBox schieben, damit du draufklicken dannst. (es sei denn das Programm startet und die Maus ist schon reinzufällig an der richtigen Stelle) |
Re: OnClick abfangen
Zitat:
Ansonsten wäre es OK. :? |
Re: OnClick abfangen
HiIhr,
Funktioniert den ![]() Leuchtende Grüße Stefan PS: Der Link ist eigentlich nur der Aurfruf eines Ankers, aber nur den Akner will er nicht als Link anerkennen. ![]() |
Re: OnClick abfangen
müßte gehen (denk ich jetzt mal)
aber so geht es dann halt nur dafür, wo du diese Ereignisprozedur angegeen hast (darfst dann also nichts vergessen, da du es ja bei JEDER andendern Komponenten eintragen mußt)
Delphi-Quellcode:
procedure TForm1.IrgendwasOnExit(Sender: TObject);
begin if Form1.ActiveControl = ListBox1 then begin Sender.SetFocus; end else begin //Mache was du sonst normalerweise in OnExit gemacht hättest! end; end; // ach, ich liebe ja Kurzformen ^^ procedure TForm1.IrgendwasOnExit(Sender: TObject); begin if Form1.ActiveControl <> ListBox1 then begin //Mache was du sonst normalerweise in OnExit gemacht hättest! end else Sender.SetFocus; end; // oder falls man nichts anderes machen möchte procedure TForm1.IrgendwasOnExit(Sender: TObject); begin if Form1.ActiveControl = ListBox1 then Sender.SetFocus; end; [add] Zitat:
aber schau in die Posts (da bei der #Nummer) http://www.delphipraxis.net/template...n_minipost.gif |
Re: OnClick abfangen
Hallo,
ich habe erst jetzt wieder Zeit weiter zu machen :) . Ja das sieht sehr Erfolgsversprechend aus. Wenn die Behandlung bei allen anderen Steuerelementen gleich ist, kann in allen Steuerelementen die selbe Procedure angegeben werden und muss nicht x-mal geschrieben werden. Vielen Dank erstmal ciao Martin |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:43 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