![]() |
Problem mit Stringgrid - Begrenzung
mein Code:
Delphi-Quellcode:
nun was passiert:
try
if mygrid.Cells[row,col]= '' then begin mygrid.Cells[row,col]:= value; result := true; end; except on E:ElistError do result := false; end; wenn ich nach links oder oben aus dem Stringgrid rausrenne, dann funktioniert dieser Try Except Block einwandfrei, wenn ich jedoch nach unten oder rechts rausrenne, dann komme ich garnicht in den Except block rein. Beispiel: Grid 10x10 Zelle -1|8 --> Exception Zelle 11|8 --> keine Exception. die Prüfung ob ich noch im Stringgrid drinne bin könnte ich auch anderst machen, ich weiß, aber ich wollte es mal so probieren, und das ist mir eben aufgefallen. woran kann das liegen? |
Re: Problem mit Stringgrid - Begrenzung
Weil TStringgridStrings sich Speicher mittels eines eigenen Verfahrens holt,
und zwar vom Stack anstelle vom Heap, dieses Verfahren ist auf geschwindigeit optimiert, scheinbar nicht immer Konsistent(??). |
Re: Problem mit Stringgrid - Begrenzung
ja aber warum wird Speicher außerhalb des Indexes reserviert?
Wäre das nicht so, müsste da ja eine schöne Access Violation aufploppen. Mensch da will man mal einen Fehler, und dann kommt keiner :( |
Re: Problem mit Stringgrid - Begrenzung
Hi,
da hat sich doch schon einmal jemand gewundert: ![]() Grüße vom marabu |
Re: Problem mit Stringgrid - Begrenzung
ok danke Marabu.
Mensch da wird man ja zum schlampigen programmieren eingeladen, wenn es nichtmal ne Fehlermeldung kommt, wenn man zu weit rennt^^ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 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