![]() |
TStringgrid meldet eAccessViolation
Hallo,
ich habe auf einer Registerkarte eines TPageControl ein TStringgrid positioniert. Nun bekomme ich jedesmal, wenn ich Eigenschaften des Grids aufrufen möchte eAccessViolations. Das Grid ist nicht zur Laufzeit erstellt, womit ich davon ausgehe dass ich es nicht als Istanz initiieren muss. Hier die hauptsächliche betroffene Prozedur:
Delphi-Quellcode:
procedure TFormSettings.setIdentifiers;
var i, ZeilenanzahlBuerger, ZeilenAnzahlWirtschaft : Integer; Datei: TStringList; begin Datei:=TStringList.Create; Datei.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'identifiers.txt'); splitString(Datei.Strings[0],';',IdentifierNameW); splitString(Datei.Strings[1],';',IdentifierZeilenNrW); splitString(Datei.Strings[2],';',IdentifierAusdruckW); splitString(Datei.Strings[3],';',IdentifierName); splitString(Datei.Strings[4],';',IdentifierZeilenNr); splitString(Datei.Strings[5],';',IdentifierAusdruck); ZeilenanzahlBuerger := StringGridBuerger.ColCount; ZeilenanzahlWirtschaft := StringGridWirtschaft.ColCount; for i:= 0 to ZeilenanzahlBuerger-1 do begin IdentifierName.Strings[i] := FormSettings.StringGridBuerger.Cells[i, 0]; IdentifierAusdruck.Strings[i] := FormSettings.StringGridBuerger.Cells[i, 2]; IdentifierZeilenNr.Strings[i] := FormSettings.StringGridBuerger.Cells[i, 1]; end; for i:= 0 to ZeilenanzahlWirtschaft-1 do begin IdentifierNameW.Strings[i] := FormSettings.StringGridWirtschaft.Cells[i, 0]; IdentifierAusdruckW.Strings[i] := FormSettings.StringGridWirtschaft.Cells[i, 2]; IdentifierZeilenNrW.Strings[i] := FormSettings.StringGridWirtschaft.Cells[i, 1]; end; Datei.Free; end; |
Re: TStringgrid meldet eAccessViolation
Hi,
da du die Stelle nicht bezeichnest, an der die Zugriffsverletzung auftritt, nehme ich die erste Stelle, an der du auf eine property des StringGrid zugreifst:
Delphi-Quellcode:
Hier kann ich mir nur einen Lesezugriff an Adresse 0 vorstellen - weil das StringGrid nil ist. Prüfe das mal mit einem breakpoint nach.
...
ZeilenanzahlBuerger := StringGridBuerger.ColCount; ... Grüße vom marabu |
Re: TStringgrid meldet eAccessViolation
Die AV tritt immer auf, egal welchen der enthaltenen Zugriffe auf das Grid ich als erstes provoziere.
|
Re: TStringgrid meldet eAccessViolation
Zitat:
Wie kann ein StringGrid nil sein, was nicht zur Laufzeit erstellt wird? |
Re: TStringgrid meldet eAccessViolation
Moin Kurt,
Zitat:
Hast Du denn mal nachgeprüft, ob das StringGrid = nil ist? Verwendest Du irgendwo Arrays? Ich könnte mir nämlich vorstellen, dass eventuell die Werte durch das Überschreiten von Grenzen überschrieben, und somit ungültig werden. (ggf. mal die Bereichsprüfung in den Compileroptionen aktivieren) |
Re: TStringgrid meldet eAccessViolation
Zitat:
Werde das mal checken, danke. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 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