TStringgrid und ONSelection

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Lorca
Beiträge: 196
Registriert: Di 3. Nov 2020, 12:25

TStringgrid und ONSelection

Beitrag von Lorca »

Hallo zusammen,

mit den Ereignissen "OnSelection, ONAfterSelection und ONBeforeSelection" habe ich einige Herausforderungen.
Greife ich diese Ereignisse ab (bzw. ich benötige NUR OnSelection ) wird bzw. werden diese Events bei jedem OnMouseMove ausgeführt.


PROCEDURE Tfrm_Test.Sgrd_memberselection(Sender : Tobject; Acol,Arow : Integer);
BEGIN

ShowMessage( 'Selektion' );

END;

Jedesmal wenn ich den TEST-Popup weg Klicke, springt das Programm sofort wieder in dieses Ereignis.
Wenn man nun in diesem Ereignis einen DB Zugriff startet kann dies u. U. sehr zeitaufwendig werden.

Was mache ich hier falsch bzw. was muss ich beachten?
Ich suche mir einen "Heißen" zu diesem Thema und finde nichts.

Kann jemand weiterhelfen?

Vielen Dank
Lorca

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: TStringgrid und ONSelection

Beitrag von fliegermichl »

Das kann ich nicht nachvollziehen.
OnSelection wird bei mir nur einmal gefeuert wenn ich in eine Zelle klicke.

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: TStringgrid und ONSelection

Beitrag von Winni »

Hi!

ShowMessage ist denkbar ungeeignet um Mouse-Events zu tracen.

Man kann sich behelfen mit einer globalen Variablen und einem Label:

Code: Alles auswählen

implementation
var Global_I : Integer = 0;
und dann bei Onselection ausgeben:

Code: Alles auswählen

Inc (Global_I);
label1.Caption := 'Onselection '+IntToStr(Global_I);

Winni

aro
Beiträge: 130
Registriert: Di 26. Jul 2011, 19:58
OS, Lazarus, FPC: Deepin 20.2; Lazarus 2.0.0 + dfsg-2
CPU-Target: 64Bit

Re: TStringgrid und ONSelection

Beitrag von aro »

Hallo,

jedes mal, wenn Du TEST-Popup weg Klickst, erhält dein Stringgrid wieder den Focus. Damit werden jede Menge Funktionen in Deinem Formular und vor allem den Vorgängerobjekten gestartet und damit Ereignisse verschickt.

Lorca
Beiträge: 196
Registriert: Di 3. Nov 2020, 12:25

Re: TStringgrid und ONSelection

Beitrag von Lorca »

Hallo alle, Hallo Winni,

erst einmal herzlichen Dank für eure Mühen und Antworten.
Eine echt Coole Idee, Winni danke dafür.
Da hätte ich selber drauf kommen müssen.
Ich versuche es einmal.

Ganz lieben Dank an alle

Lorca

Winni hat geschrieben:
Fr 23. Apr 2021, 12:31
Hi!

ShowMessage ist denkbar ungeeignet um Mouse-Events zu tracen.

Man kann sich behelfen mit einer globalen Variablen und einem Label:

Code: Alles auswählen

implementation
var Global_I : Integer = 0;
und dann bei Onselection ausgeben:

Code: Alles auswählen

Inc (Global_I);
label1.Caption := 'Onselection '+IntToStr(Global_I);

Winni

Antworten