AGB  ·  Datenschutz  ·  Impressum  







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

Inifile in eine Klasse und ansteuern

Ein Thema von Merowinger · begonnen am 7. Mär 2006 · letzter Beitrag vom 7. Mär 2006
Antwort Antwort
Merowinger

Registriert seit: 7. Jul 2005
13 Beiträge
 
Delphi 7 Enterprise
 
#1

Inifile in eine Klasse und ansteuern

  Alt 7. Mär 2006, 19:31
Hey DPLer,

ich möchte meine Klasse TMYIniFile die Eigenschaft ini_file vom Typ TInifiles

einbringen. Nun sollen Schreib- und Lesemthoden noch mit hinzukommen. Der Quelltext :


Delphi-Quellcode:

unit TMyIniFileUnit;

interface

    uses Inifiles;

    type TMYIniFile = class(TIniFile)
       ini_File : TIniFile;

    public
       function get_ID(Sektion, Ident : String) : String;
       procedure set_ID(Sektion, Ident,iDID : String);
    end;



implementation

{ TMYIniFile }


function TMYIniFile.get_ID(Sektion, Ident : String): String;
begin
     Result := ini_File.ReadString(Sektion,Ident,'0');
end;

procedure TMYIniFile.set_ID(Sektion, Ident,iDID : String);
begin
     ini_File.WriteString(Sektion,Ident,iDID);
end;

und nun im Hauptprogramm aufgerufen:

Delphi-Quellcode:

uses TMyIniFileUnit;

procedure TMainForm.Button1Click(Sender: TObject);
var Ini : TMYIniFile;

begin
     Ini := TMYIniFile.Create('bert.ini');
     Ini.set_ID('A','B','C');
     Label1.Caption := Ini.get_ID('A','B');
     Ini.Free;
end;
und siehe da:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Projekt_Kreditanfrage.exe ist eine Exception der Klasse EAccessViolation

aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 004B96DE in Modul

'Projekt_Kreditanfrage.exe'. Lesen von Adresse 00000000'. Prozess wurde angehalten.

Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------

Der Fehler tritt bei ini_File.WriteString(Sektion,Ident,iDID) in der Funktion auf.

Ich möchte aber über diesen Weg gehen. Ich weiß, dass strukturiert ggf. einfacher ist.

Wie lößt man so etwas richtig???

Danke Merwoinger
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#2

Re: Inifile in eine Klasse und ansteuern

  Alt 7. Mär 2006, 19:48
Mal abgesehen von deinem Problem: Gibt es denn einen Grund, eine Klasse in eine Klasse zu packen?
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#3

Re: Inifile in eine Klasse und ansteuern

  Alt 7. Mär 2006, 20:04
Hi,
dein Problem liegt darin, dass du glaube ich nicht wirklich viel vom Ableiten verstanden hast, oder? Meine es gar nicht böse. Aber du leitest etwas von einem Inifile ab. Das heißt die neue Klasse hat alle Eigenschaften und Methoden (z.B. writeString), die auch alle seine Vorfahren haben.
Das wiederum führt uns zu der Frage von Mathias, warum du eine Variable vom Typ iniFile in einem IniFile (also einem Nachfahren) brauchst. Ganz zu schweigen davon, dass diese Variable auch nicht published sein sollte, wird von der nie eine Instanz erzeugt.

Mit deinem Set soll aber in dieses IniFile (nil) geschrieben werden. Wenn du einfach die Variable löscht und stattdessen self.writeString benutzt wird alles gut.

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Merowinger

Registriert seit: 7. Jul 2005
13 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Inifile in eine Klasse und ansteuern

  Alt 7. Mär 2006, 20:26
Hey DPler,

ja ich weiß das es auch sehr viel einfacher geht. Über strukturiert...

Zitat:
Mal abgesehen von deinem Problem: Gibt es denn einen Grund, eine Klasse in eine Klasse zu packen?
Nein, eigentlich nicht. Aber die Aufgabenstellung verlangte es und damit der Lehrer nicht meckert macht es ein Schüler.


Zitat:
dein Problem liegt darin, dass du glaube ich nicht wirklich viel vom Ableiten verstanden hast, oder?
Da hast du vollkommen recht. Bin gerade dabei die OOP zu entdecken... is auch nicht ganz einfach.

Zitat:
Wenn du einfach die Variable löscht und stattdessen self.writeString benutzt wird alles gut.
Ja! Mann lernt ja mit jedem Fehler.

Danke Merowinger
  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 05:34 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