Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Kernel32.dll fehler bei einlesen von Komponente (https://www.delphipraxis.net/59907-kernel32-dll-fehler-bei-einlesen-von-komponente.html)

hoef 30. Dez 2005 12:56


Kernel32.dll fehler bei einlesen von Komponente
 
Hi, vielleicht finde ich hier wieder einmal die Lösung:

Ich lese und schreibe mit Hilfe eines Filestream eine Listview ein. Funktioniert auch ohne Probleme, in einer anderen (aber viel kleineren Anwendung schon). Jetzt versuche ich den gleichen Ablauf in einer großen Anwendung wieder einzubringen und jedes Mal beim einlesen der Listview erschein ein Kernel32.dll Fehler! ('Access violation at address 77E5A75E in module 'kernel32.dll. Read of address 001E04A2')

Code:
procedure TExcelForm.LoadLvEntry(filename: string; a: TComponent);
var
FileStream:TFileStream;
FileReader:TReader;
BufferSize:Integer;
Identification:String;
begin
try
  BufferSize := 1024;
  FileStream := TFileStream.Create(filename,fmOpenRead);
  FileReader := TReader.Create(FileStream,BufferSize);
  FileReader.ReadRootComponent(a);
finally
  FileReader.Free;
  FileStream.Free;
end;
end;
Hat jemand einen Lösungvorschlag???

P.S. case Jahr of
>2006: Ein einen guten Rutsch;
2006: Ein schönes neues Jahr;
end;

3_of_8 30. Dez 2005 13:00

Re: Kernel32.dll fehler bei einlesen von Komponente
 
Ich kenne mich nicht wirklich aus, aber kann es sein, dass die BufferSize zu klein ist?

hoef 2. Jan 2006 07:32

Re: Kernel32.dll fehler bei einlesen von Komponente
 
Stimmt, hab den Buffer erhöht und jetzt klappts wieder...

Danke, auf euch ist verlass.... :firejump:

Luckie 2. Jan 2006 07:41

Re: Kernel32.dll fehler bei einlesen von Komponente
 
Setz mal das Erzeugen der Objekte vor den try-Block. Konstruktoren erzeugen keine Exception, es gibt also nichts zum Freigeben, wenn da was schief geht.

jim_raynor 2. Jan 2006 07:51

Re: Kernel32.dll fehler bei einlesen von Komponente
 
Zitat:

Zitat von Luckie
Konstruktoren erzeugen keine Exception, es gibt also nichts zum Freigeben, wenn da was schief geht.

MMh. Exception können schon in Konstruktoren auftreten (siehe TFileStream.Create), aber bei einer Exception im Konstruktor wird automatisch das Objekt wieder freigegeben. Also von daher ist die Behauptung nur zur Hälfte Richtig :duck:

Luckie 2. Jan 2006 08:31

Re: Kernel32.dll fehler bei einlesen von Komponente
 
Verwunschen seist du mit deiner Rechthaberei. Möge auf die der ewige Zorn des OOP Gottes lasten. :mrgreen:

jim_raynor 2. Jan 2006 09:05

Re: Kernel32.dll fehler bei einlesen von Komponente
 
Zitat:

Zitat von Luckie
Verwunschen seist du mit deiner Rechthaberei. Möge auf die der ewige Zorn des OOP Gottes lasten. :mrgreen:

Zum glück glaube ich nicht an Götter :stupid: hehe

Aber du hast natürlich recht. :roll: Es gibt Tage, da kann ich einfach nicht anders ... Ich habe auch vorher wirklich überlegt, ob ich was dazu schreiben soll oder nicht ... Und diesmal war ich mir so sicher ... da konnte ich einfach nicht widerstehen :stupid: Und ja, ich gebe zu am Anfang hatte ich den Beitrag noch Rechthaberisch gemacht (so mit klugscheissmodus und solchen Sachen) :oops: . Aber ich hab mir dass dann doch geklemmt und wollte nur dezent darauf hinweisen, dass die Aussage nicht ganz korrekt ist.

Aber wir sind offtopic und ich überlege, ob ich mir nicht lieber diesen Beitrag sparen sollte ... :cat:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:42 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