Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#6

AW: Funktionsaufruf innerhalb With..do => access violation

  Alt 6. Mär 2017, 12:39
Ohne den vollständigen Quelltext und die vollständige Formulardefinition wird das konkrete Erkennen der Fehlerursache schwierig. Mal ein einfaches Beispiel, um auf eine mögliche Fehlerursache hinzuweisen:

Gegeben sei ein Formular (Form1) mit 'nem Label (Label1) drauf:
Delphi-Quellcode:
with Form1 do begin
  Caption := Label1.Caption;
end;

with Form1 do begin
  with Label1 do begin
    Caption := Caption;
  end;
end;

with Form1, Label1 do begin
  Caption := Caption;
end;
Diese Beispiele sind extrem verkürzt, machen aber hoffentlich klar, dass auch bei korrekter Syntax und Kompilierbarkeit von Quelltext bei der Verwendung von With "Namenskonflikte" auftreten können.

D. H.: Es kann sein, dass bei mehreren gleichnamigen Eigenschaften unterschiedlicher Objekte zwar eine syntaktisch korrekte Interpretation möglich ist, aber nicht zwingend vom Compiler die konkret gemeinte Eigenschaft genutzt wird, sondern die von ihm "vermutete" Eigenschaft. Die kann aber zur Laufzeit zu einem Objekt gehören, dass (noch) nicht erstellt wurde und dies führt zu dem von Dir beschriebenen Fehler.

Sprich: Es wird auf was anderes zugegriffen, als Du beim Schreiben und Lesen des Quelltextes meinst.
  Mit Zitat antworten Zitat