Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit Stringgrid - Begrenzung (https://www.delphipraxis.net/107313-problem-mit-stringgrid-begrenzung.html)

Noobinator 25. Jan 2008 16:04


Problem mit Stringgrid - Begrenzung
 
mein Code:

Delphi-Quellcode:
try
   if mygrid.Cells[row,col]= '' then
   begin
       mygrid.Cells[row,col]:= value;
       result := true;
   end;
except
    on E:ElistError do result := false;
end;
nun was passiert:

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?

QuickAndDirty 25. Jan 2008 16:35

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(??).

Noobinator 25. Jan 2008 16:40

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 :(

marabu 25. Jan 2008 17:20

Re: Problem mit Stringgrid - Begrenzung
 
Hi,

da hat sich doch schon einmal jemand gewundert: TStringGrid - Zugriff auf Zellen jenseits von ColCount

Grüße vom marabu

Noobinator 25. Jan 2008 17:25

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