![]() |
dbgrid.selectedindex und ähnliche funktionieren nicht
Ich habe ein DBGrid mit 4 Spalten. Es funktiuoniert leider nicht, den Fokus auf eine bestimmte Spalte zu setzen. D.h. ich möchte nach dem Editieren der 1. Spalte auf die 4. Spalte springen. Der Fokus springt aber, nach OnEditingDone und/oder OnEnter immer auf das nächste Feld.
MyDB.Edit; MXYZ := MyDB.Fields.FieldByName('Feld1').Value; MyDB.Post; // Bis hierher alles ok und dann weder entweder/oder funktionieren nicht entweder: MyDBGrid.SelectedIndex := 4; // Zu Spalte 4 springen MyDBGrid.SetFocus; oder: MyDBGrid.SelectedField :=MyDB.FieldByName('Feld4'); MyDBGrid.SetFocus; ????????? Gruß Manfred p.s. Nach ca. 1-stündigem Suchen in den Foren und Tutorials gab es keine Antwort |
AW: dbgrid.selectedindex und ähnliche funktionieren nicht
Nja, wenn in den verfügbaren Events das Umsetzen nicht möglich ist, weil die Komponente anschießend das nochmal überschreibt, dann bleibt nur verzögern übrig.
Delphi-Quellcode:
Hoffe es hilft hierbei.
procedure TForm1MyDBGrid.MyDBGridIrgendwasEvent(Sender: TObject);
begin ... TThread.ForceQueue(nil, procedure begin if MyDBGrid.Focused then // nichts machen, falls der Fokus inzwischen sonstwo ist MyDBGrid.SelectedField := ...; end); end; |
AW: dbgrid.selectedindex und ähnliche funktionieren nicht
Jetzt finde ich nicht die Unit, die ForceQue enthält: identifier idents no member ForceQueue
TThread.ForceQueue(nil, procedure begin if MyDBGrid.Focused then // nichts machen, falls der Fokus inzwischen sonstwo ist MyDBGrid.SelectedField := MyDBF.FieldByName('Feld4'); end); Gruß Manfred p.s. Danke für die Info |
AW: dbgrid.selectedindex und ähnliche funktionieren nicht
könnte es sein, daß der index 3 ist und nicht 4 ?
Gruß K-H |
AW: dbgrid.selectedindex und ähnliche funktionieren nicht
Es ist egal, welchen Index ich angebe. Alles von 2-4 geht nicht.
Jetzt suche ich noch die Unit für ForceQueue, die er icht findet. Manfred |
AW: dbgrid.selectedindex und ähnliche funktionieren nicht
|
AW: dbgrid.selectedindex und ähnliche funktionieren nicht
Das
![]() Anstatt das Verhalten zu reparieren, wurde die neue Funktion ![]() ![]() Ansonten PostMessage, TTimer oder was es sonst noch gibt, um etwas später auszuführen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:19 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