AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

VCL-Styles

Ein Thema von Jens Hartmann · begonnen am 22. Dez 2011 · letzter Beitrag vom 9. Jan 2012
Antwort Antwort
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#1

AW: VCL-Styles

  Alt 27. Dez 2011, 13:25
Hallo zusammen,

erstmal hoffe ich, das Ihr schönen Feiertage hattet. Ich habe mich soeben nochmal mit meinem Problem beschäftig. Also der Fehler mit der ausgelagerten Klasse tritt immer noch auf. Folgend habe ich mal die Klasse und deren aufrufe etc. zusammen gestellt. Vieleicht kann ja jemand da schon einen Fehler sehen.

Delphi-Quellcode:
//Ein Teil meiner Klasse
unit Bereiche;

interface

type
  TBereiche = class(TObject)
    private
      var
        BereichText : array[1..6] of string;
    public
      procedure SetBereich(Nr : integer; Text : string);
      function GetBereich(Nr : integer) : string;
   //Ich weiß, normal wird die Übergabe über property gemacht. Das ist aktuell nur zum testen....
  end;

implementation

{ TBereiche }
procedure TBereiche.SetBereich(Nr: integer; Text: string);
begin
  BereichText[Nr] := Text;
end;

function TBereiche.GetBereich(Nr: integer): string;
begin
  Result := BereichText[Nr];
end;

//im interface Teil der MainForm
  uses
    ...,Bereiche;
  ...
  private
  ...
  var
    FBereiche : TBereiche;

//im OnCreate der MainForm
  FBereiche := TBereiche.Create;

//im OnDestroy der MainForm
  FBereiche.Free;

//als Versuch und hier knallts schon
  FBereiche.SetBereich(1,'Test');
...
procedure TBereiche.SetBereich(Nr: integer; Text: string);
begin
  BereichText[Nr] := Text;//hier kommt die Zugriffsverletzung, in der variablen stehen vor der Zuweisung ganz viele wilde chinesiche Zeichen etc...
end;
//Kann es sein, das der Absturz mit den variablen zusammen hängt?
Eventuell kann ja jemand den Fehler einschränken...

Gruß und Danke schon mal

Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: VCL-Styles

  Alt 27. Dez 2011, 13:45
das einzig ungewöhliche scheint mir das zu sein:
Delphi-Quellcode:
    private
      var
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#3

AW: VCL-Styles

  Alt 27. Dez 2011, 13:57
das ist aber nicht das Problem, hab ich gerade entfernt. Im Anhang mal ein Screenshot der Fehlermeldung und Variablen.
Angehängte Grafiken
Dateityp: jpg Var.JPG (36,2 KB, 22x aufgerufen)
Dateityp: jpg Fehler.JPG (25,8 KB, 15x aufgerufen)
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.738 Beiträge
 
Delphi 12 Athens
 
#4

AW: VCL-Styles

  Alt 27. Dez 2011, 14:53
BereichText[Nr] := Text;//hier kommt die Zugriffsverletzung, in der variablen stehen vor der Zuweisung ganz viele wilde chinesiche Zeichen etc...
Das sieht so aus, als ob du ein nicht initialisiertes Objekt benutzt. Bei einem sauber initialisiertem Objekt wären die Strings alle leer.

P.S.: ...oder der Speicherbereich wird irgendwie überschrieben.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#5

AW: VCL-Styles

  Alt 27. Dez 2011, 14:56
Ja, aber wie und wo.

Ich benutze das gesamte Objekt bis jetzt nur im gezeigten Code. Nirgenwo anders, greife ich drauf zu, schreiben das Objekt etc.
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.738 Beiträge
 
Delphi 12 Athens
 
#6

AW: VCL-Styles

  Alt 27. Dez 2011, 14:59
Ja, aber wie und wo.

Ich benutze das gesamte Objekt bis jetzt nur im gezeigten Code. Nirgenwo anders, greife ich drauf zu, schreiben das Objekt etc.
Daß du die Objekt-Instanz nicht direkt überschreibst, ist mir schon klar. Deswegen sind solche Sachen auch so schwer zu finden. Auf jeden Fall sollte die Bereichsprüfung aktiv sein - das hat schon oft einen Tip gegeben.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#7

AW: VCL-Styles

  Alt 9. Jan 2012, 12:26
Zitat von Uwe Raabe:
Auf jeden Fall sollte die Bereichsprüfung aktiv sein - das hat schon oft einen Tip gegeben.
Danke für den Tip. Ich hab den Fehler gefunden, allerdings ganz woanders. Es war wirklich eine Bereichsverletzung der Grund für den Fehler. Alles zu zeigen, wäre zuviel. Das Problem lag in der definition eines array´s.

Delphi-Quellcode:
MeinArray : array[1..12] of integer;

...
for i = 1 to Test.Count do
 ...

//jetzt geändert in

MeinArray : array of integer;
...
  SetLength(MeinArray,Anzahl);
  for i := Low(MeinArray) to High(MeinArray) do
    MeinArray[i] := i;

  for i := Low(MeinArray) to High(MeinArray) do
    ShowMessage(IntToStr(MeinArray[i]));
Durch die Abfrage mit Low und High, kann die Bereichsverletzung jetzt nicht mehr vorkommen.

Danke nochmal...

Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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