![]() |
StringGrid verhält sich komisch
Hallo,
ich habe ein StringGrid auf einer Form und einen Button. Beim Start werden Daten in das Grid geschrieben und dann wird der Button geklickt. Es wird ein neues Fenster geöffnet. Nach dem Schließen dieses Fensters ist der Focus noch auf dem Button. Wenn ich jetzt auf die erste freie Zelle oben links klicke, kann ich dort Daten eingeben, obwohl ich mit dem Ereignis OnSelectCell für diese Spalte angebe:
Delphi-Quellcode:
Im Debugger wird als erstes Ereignis aber OnMouseDown angesprungen. Bei anderen Zellen des Grids funktioniert alles wunderbar. Ich weiß zur Zeit keine Lösung.
CanSelect := false;
Nachtrag: Das Grid verhält sich nur so beim ersten Klick nach dem Schließen des zweiten Fensters. Wenn ich dann in andere Zellen klicke und danach wieder in die erste Zelle oben links, kann ich diese Zelle nicht mehr editieren. Sollte es auch ja auch schon beim ersten Klick sein. Folgende Grid-Option sind eingestellt:
Delphi-Quellcode:
Mike
goEditing := true;
goFixedVertLine := true; goFixedHorzLine := true; goVertLine := true; goHorzLine := true; alles andere ist FALSE |
Re: StringGrid verhält sich komisch
Hallo,
setz mal in OnSelectCell einen Haltepunkt, denn vermutlich wird OnSelectCell nicht ausgelöst, weil die erste Zelle zu dem Zeitpunkt schon selectiert ist. also :arrow: eine Zelle, die editiert werden darf, vorher selectieren. |
Re: StringGrid verhält sich komisch
Ich habs doch geschrieben: ich habe ein OnSelectCell und ein OnMouseDown.
In OnSelectCell prüfe ich, ob die Zelle überhaupt selektiert werden darf. Das OnMouseDown brauche ich zur Ermittlung der Position Maus und Zelle für die weitere Arbeit. Und natürlich habe ich auf beide Ereignisse einen Haltepunkt gesetzt. Und natürlich wird OnSelect beim ersten Mal nicht ausgelöst. Steht alles im ersten Text. Die Möglichkeit, daß die Zelle bereits selektiert ist, besteht allerdings. An einer anderen Stelle im Programm, ebenfalls mit einem StringGrid und Button konnte ich das Problem jedoch nicht feststellen. Ich muß da nochmal nachschauen. |
Re: StringGrid verhält sich komisch
Also, ich konnte keine weiteren Unterschiede feststellen. Trotzdem verhalten sich beide Grids unterschiedlich.
Ich habe jetzt in OnSelectCell noch folgende Zeilen am Ende eingebaut:
Delphi-Quellcode:
Damit bekomme ich das Grid-Verhalten, was ich möchte.
if (CanSelect)
then begin GridData.Options := GridData.Options + [goEditing]; end else begin GridData.Options := GridData.Options - [goEditing]; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 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