Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Zugriffsverletzung bei Adresse ' ' in Modul (https://www.delphipraxis.net/184839-zugriffsverletzung-bei-adresse-modul.html)

Rippo 24. Apr 2015 09:37

Zugriffsverletzung bei Adresse ' ' in Modul
 
Delphi-Quellcode:
function RegPath: String;
begin
  Result := ExtractFileName(ChangeFileExt(ParamStr(0), '.ini'));
end;

procedure SaveFormSettings(frmKonfig : TfrmKonfig);
var
  RegIni: TRegIniFile;
begin
  RegIni := TRegIniFile.Create(RegPath);
  try
    RegIni.WriteInteger('Form', 'Color', frmKonfig.Color);
  finally
    RegIni.Free;
  end;
end;

procedure LoadFormSettings(frmkonfig: TfrmKonfig);
var
  RegIni: TRegIniFile;
begin
  RegIni := TRegIniFile.Create(RegPath);
  try
    frmKonfig.Color := RegIni.ReadInteger('Form', 'Color', frmKonfig.Color);
  finally
    RegIni.Free;
  end;
end;
was habe ich falsch gemacht?

baumina 24. Apr 2015 09:42

AW: Zugriffsverletzung bei Adresse ' ' in Modul
 
RegPath liefert sicher keinen vollständigen Dateinamen inkl. Pfad. Aber das kannst dir ja auch ganz einfach im Debugger anzeigen lassen.

Dalai 24. Apr 2015 10:42

AW: Zugriffsverletzung bei Adresse ' ' in Modul
 
Zitat:

Zitat von Rippo (Beitrag 1299059)
was habe ich falsch gemacht?

Zu schreiben, wo der Fehler genau auftritt.

MfG Dalai

Rippo 24. Apr 2015 10:58

AW: Zugriffsverletzung bei Adresse ' ' in Modul
 
bei function tritt der fehler auf

himitsu 24. Apr 2015 11:03

AW: Zugriffsverletzung bei Adresse ' ' in Modul
 
Ähhh, was/wo bitte?


PS: Und TRegIniFile und vorallem TRegistryIniFile sind eigentlich nur Komponenten zur "Abwärtskompatibilität", um ohne große Umbauten von INI auf Registry umzustellen, bzw. um sich nicht mit der Registry zu beschäftigen und das einfach billig wie eine TIniFile zu benutzen.
Für Neuentwicklungen würde sich die direkte Verwendung der TRegistry bestimmt besser anbieten.

mkinzler 24. Apr 2015 11:04

AW: Zugriffsverletzung bei Adresse ' ' in Modul
 
Ich würde mich auch erst mal um den Fehler kümmern, den baumina sofort erkannt hat.

Sir Rufo 24. Apr 2015 11:06

AW: Zugriffsverletzung bei Adresse ' ' in Modul
 
Zitat:

Zitat von Rippo (Beitrag 1299089)
bei function tritt der fehler auf

Es wäre zuckersüß, wenn du in ganzen Sätzen und zusammenhängend sagen könntest
  • was für ein Fehler (STRG-C im Meldungsfenster, STRG-V hier im Forum)
  • an exakt welcher Stelle
auftritt.

Auch wenn die Technik schon sehr weit fortgeschritten ist, aber wir können noch nicht in dein Hirn oder einfach so auf deinen Bildschirm schauen.

DeddyH 24. Apr 2015 11:43

AW: Zugriffsverletzung bei Adresse ' ' in Modul
 
Wird denn auch eine gültige Formularinstanz übergeben?

Rippo 24. Apr 2015 11:47

AW: Zugriffsverletzung bei Adresse ' ' in Modul
 
So

ich starte mein programm

wenn ich dann auf das formular klicke bekomme ich die fehlermeldung 'Zugriffsverletzung bei Adresse ...'
wenn ich es debugge kommt der fehler bei function ' Result := ...'

DeddyH 24. Apr 2015 11:50

AW: Zugriffsverletzung bei Adresse ' ' in Modul
 
In welcher Funktion denn?

Rippo 24. Apr 2015 11:51

AW: Zugriffsverletzung bei Adresse ' ' in Modul
 
Delphi-Quellcode:
function RegPath: String;
begin
  Result := ExtractFileName(ChangeFileExt(ParamStr(0), '.ini'));
end;
diese

DeddyH 24. Apr 2015 11:54

AW: Zugriffsverletzung bei Adresse ' ' in Modul
 
Ganz sicher? Ich wüsste nicht, was in dieser Zeile zur AV führen könnte.

Jasocul 24. Apr 2015 12:00

AW: Zugriffsverletzung bei Adresse ' ' in Modul
 
Ich habe das mal bei mir getestet, weil ich mir nicht vorstellen konnte, dass es dabei einen Fehler geben kann.
Ich bekomme keinen Fehler.

Rippo 24. Apr 2015 12:01

AW: Zugriffsverletzung bei Adresse ' ' in Modul
 
hmm ...ich überprüfe bei mir mal alles

DeddyH 24. Apr 2015 12:12

AW: Zugriffsverletzung bei Adresse ' ' in Modul
 
Etwas ganz anderes: wenn die Prozeduren Instanzen einer Formularklasse erwarten, wäre es da nicht wesentlich eleganter, gleich Methoden dieser Klasse daraus zu machen?

Sir Rufo 24. Apr 2015 14:11

AW: Zugriffsverletzung bei Adresse ' ' in Modul
 
Zitat:

Zitat von mkinzler (Beitrag 1299093)
Ich würde mich auch erst mal um den Fehler kümmern, den baumina sofort erkannt hat.

Wieso, da ist kein Fehler, oder muss man beim Zugriff auf die Registry neuerdings einen Dateinamen angeben ;)

p80286 24. Apr 2015 14:30

AW: Zugriffsverletzung bei Adresse ' ' in Modul
 
Da hier mal wieder eine "Durch die Brust ins Auge"-Lösung aufgebaut wird:
Zitat:

Description

TRegIniFile is a low-level wrapper for the Windows 95/NT system registry.

TRegIniFile presents a simple interface to the system registry, hiding the need to know about the underlying structure of the registry. TRegIniFile acts as a helper object to TRegistryIniFile, which descends from TCustomIniFile (and is therefore more widely compatible with other INI file classes).

TRegIniFile enables handling the Windows 95/NT system registry as if it were a Windows 3.x INI file. Instead of processing an INI file, however, TRegIniFile reads from and writes to the system registry.

Although TRegIniFile descends from TRegistry, it adds the properties and methods used by a TIniFile object. The FileName passed to a TRegIniFile object becomes a subkey under the system registry's root key (HKEY_CURRENT_USER by default). What corresponds to a section in an INI file is treated as a key in the system registry, and what corresponds to data entries under a section in an INI file are treated as data values under a key in the system registry.

Note:TRegIniFile is intended to be used primarily as a helper object to TRegistryIniFile, which unifies the interface to INI files and the system registry. However, applications can use TRegIniFile directly.
Ist der Dateiname doch notwendig.

@Rippo
Schmeiß diese seltsame Zwischenlösung weg, und mach es gleich richtig, entweder Registry oder Parameterdatei (von mir aus auch .INI), und wenn diese, dann bloß nicht im Programmverzeichnis!

Gruß
K-H

Sir Rufo 24. Apr 2015 14:56

AW: Zugriffsverletzung bei Adresse ' ' in Modul
 
@p80286

Aber dieser "Dateiname" benötigt eben nicht einen Dateinamen inkl. komplettem Pfad, so wie baumina das gemeint hat ... ;)


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