AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TStringgrid meldet eAccessViolation

Ein Thema von Benjin · begonnen am 28. Sep 2005 · letzter Beitrag vom 1. Okt 2005
Antwort Antwort
Benjin

Registriert seit: 1. Nov 2004
Ort: München
64 Beiträge
 
Delphi 7 Enterprise
 
#1

TStringgrid meldet eAccessViolation

  Alt 28. Sep 2005, 18:40
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;
..... - Kurt - .....
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: TStringgrid meldet eAccessViolation

  Alt 28. Sep 2005, 19:23
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:
...
ZeilenanzahlBuerger := StringGridBuerger.ColCount;
...
Hier kann ich mir nur einen Lesezugriff an Adresse 0 vorstellen - weil das StringGrid nil ist. Prüfe das mal mit einem breakpoint nach.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benjin

Registriert seit: 1. Nov 2004
Ort: München
64 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: TStringgrid meldet eAccessViolation

  Alt 28. Sep 2005, 22:04
Die AV tritt immer auf, egal welchen der enthaltenen Zugriffe auf das Grid ich als erstes provoziere.
..... - Kurt - .....
  Mit Zitat antworten Zitat
Benjin

Registriert seit: 1. Nov 2004
Ort: München
64 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: TStringgrid meldet eAccessViolation

  Alt 28. Sep 2005, 22:07
Zitat von marabu:
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:
...
ZeilenanzahlBuerger := StringGridBuerger.ColCount;
...
Hier kann ich mir nur einen Lesezugriff an Adresse 0 vorstellen - weil das StringGrid nil ist. Prüfe das mal mit einem breakpoint nach.

Grüße vom marabu
Das habe ich schon geprüft, es sind genau diese Stellen.

Wie kann ein StringGrid nil sein, was nicht zur Laufzeit erstellt wird?
..... - Kurt - .....
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: TStringgrid meldet eAccessViolation

  Alt 28. Sep 2005, 22:35
Moin Kurt,

Zitat von Benjin:
Wie kann ein StringGrid nil sein, was nicht zur Laufzeit erstellt wird?
berechtigte Frage, vorausgesetzt, das Stringgrid befindet sich auf FormSettings, wovon man allerdings, auf Grund des Codes, ausgehen muss

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)
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benjin

Registriert seit: 1. Nov 2004
Ort: München
64 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: TStringgrid meldet eAccessViolation

  Alt 1. Okt 2005, 12:39
Zitat von Christian Seehase:
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)
Tue ich, ja.
Werde das mal checken, danke.
..... - Kurt - .....
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz