![]() |
(TDBGrid) - Klick auf den indicator abfangen?
hallo zusammen,
ich habe eine kleine aber wichtige frage: wie kann ich einen klick auf den indicator eines DBGrids abfangen, das heillt, sobald ich auf den indicator klicke, muss eine procedure ausgeführt werden. wichtig ist auch, dass die zeile, bei der auf den indicator geklickt wurde, zur aktuellen zeile wird, und auch der datensatz. ich denke das ist nicht sehr schwierig, aber ich habe noch nichts darüber gefunden. schon mal danke im voraus, ich hoffe ihr könnt mir helfen |
Re: (TDBGrid) - Klick auf den indicator abfangen?
Hallo,
wenn ich das richtig verstanden habe, dann soll der aktuelle DS makiert und eine Aktion ausgeführt werden. Dann setze im OP einfach die Option alwayShowSelection auf true, so wird die gesamte Zeile makiert und im onClick- o.onDBClick-Ereignis kannst du die gewünschte Aktion ausführen. Durch den Click auf den Datensatz im DBGrid wird der Datensatzzeiger automatisch auf den aktuellen DS gesetzt. Darum brauchst Du dich also nicht kümmern. |
Re: (TDBGrid) - Klick auf den indicator abfangen?
ok, das hab ich
aber wie kann ich jetzt einen klick auf den indicator abfangen? |
Re: (TDBGrid) - Klick auf den indicator abfangen?
Hallo urbanbruhin,
ich nehme an, daß Du die linke graue Spalte als "indicator" bezeichnest. Auf "OnMouseDown" reagiert - wie's aussieht - das Standard-TDBGrid nicht. Im TRxDBGrid hingegen kann man eine Auswertung vornehmen.
Code:
mfg
procedure TFAllgUP2.dbg201MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin if x < 20 then begin // gezielte Reaktion auf die Position des Mauszeigers end; end; eddy |
Re: (TDBGrid) - Klick auf den indicator abfangen?
also das fuktioniert nicht
|
Re: (TDBGrid) - Klick auf den indicator abfangen?
Hallo urbanbruhin,
Du mußt Dir schon die Mühe machen und zuvor einer Version von "RX Library 2.75" zu installieren. Getestet und funktionsfähig mit TRxDBGrid
Code:
mfg
procedure TForm1.dbg1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin BotStat00.Caption := 'X/Y=' + IntToStr(x) + '/' + IntToStr(y); end; procedure TForm1.dbg1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if x < 11 then begin if Button = mbLeft then begin //, mbRight, mbMiddle ShowMessage('Linke Maustaste am linken Rand gedrückt'); end; end; end; eddy |
Re: (TDBGrid) - Klick auf den indicator abfangen?
aber das ist ja das selbe wie das von vorher: wenn der cursor soviel x hat, passierts
gibt es keine andere möglichkeit? Zitat:
|
Re: (TDBGrid) - Klick auf den indicator abfangen?
Hallo urbanbruhin,
ganz einfach: damit funktioniert es!!! Habe ich aber oben schon geschrieben: Zitat:
mfg eddy |
Re: (TDBGrid) - Klick auf den indicator abfangen?
und dieser neue dbgrid kann ich auch einfach mit einem TDataSource verbinden?
wenn ja: wüsstest du gerade, wo man dieses "teil" downloaden kann? wenn nein: dann nützt es mir nichts |
Re: (TDBGrid) - Klick auf den indicator abfangen?
Zitat:
TRxDBGrid ist bestandteil der RxTools. Da diese jedoch nicht weiterentwickelt werden empfehle ich dir eher die ![]() |
Re: (TDBGrid) - Klick auf den indicator abfangen?
ok, ich werde es mal herunterladen
vielen dank schon mal |
Re: (TDBGrid) - Klick auf den indicator abfangen?
hallo urbanruhin!
so ganz kann ich dein problem nicht verstehen... sobald du auf den indicator klickst, machst du diesen datensatz zum aktuellen. und die procedure, welche du starten willst, rufst du entweder im 'BeforeScrollEvent' oder im 'AfterScrollEvent' des hinter dem DBGrid liegenden DataSets auf, je nachdem, ob sie vor oder nach dem datensatzwechsel ausgeführt werden soll. mfg, stefan |
Re: (TDBGrid) - Klick auf den indicator abfangen?
alsooo...
ich bastele ein mp3player. das archiv ist ein tdbgrid, dort sind alle tracks aufgelistet. wenn ich ein doppelklick auf ein track mache, wandert die datei in die abspielliste. soweit sogut um aber die datei anzuhören (preview), ohne dass sie in die abspielliste wandert, müsste man auf den indicator dieses tracks klicken. ich hoffe du hast es verstanden... |
Re: (TDBGrid) - Klick auf den indicator abfangen?
klar hab ich dich verstanden, nur kann ich mir nicht gut vorstellen, dass du deine daten in einem DBGrid archiviert hast. ich denke, sie befinden sich eher in einer tabelle :wink:
dein 'pre-listen' startest du durch wechseln des datensatzes (im AfterScrollEvent des zugehörigen DataSets) und durch doppelklick wählst du den datensatz aus und übernimmst ihn, wohin du ihn auch immer haben willst. in meinem vorigen beitrag habe ich auch nichts gegenteiliges behauptet, oder? mfg, stefan |
Re: (TDBGrid) - Klick auf den indicator abfangen?
Zitat:
Zitat:
^die procedure soll ja erst ausgelöst werden wenn man auf den Indicator klickt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:42 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-2025 by Thomas Breitkreuz