![]() |
Delphi 5: Problem mit Create bei Ini-Datei...
Hi, dickes Problem:
Ich bin noch Schüler und habe deshalb nur Delphi5... Ich wollte für ein Objekt eine Ini-Datei anlegen, damit ich Integer Werte beim Schließen speichern und beim Laden einlesen kann, das Programm soll transportabel sein, daher Ini... jetzt bekomme ich aber immer direckt nen Fehler wenn ich folgende Zeile rein setze:
Delphi-Quellcode:
die Zeile ist original aus der Delphi Hilfe... Hab auch schon String durch Integer ersetzt aber selbes Problem, es geht ihm gar nicht um String/Integer er sagt: Undefinierter Bezeichner Create...
constructor Create(const FileName String);
Bei der Gelegenheit: Ist es entscheident wo der constructor steht?
Delphi-Quellcode:
constructor Create(const FileName String);
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Image1: TImage; Timer1: TTimer; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation var ax,ay :Integer; var a : Integer; {$R *.DFM}
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin Button1.visible:=FALSE; Button2.visible:=FALSE; Button3.visible:=FALSE; Button4.visible:=TRUE; Button5.visible:=FALSE; Button6.visible:=FALSE; Timer1.Enabled:=True; ax:=543; ay:=303; end; procedure TForm1.Button2Click(Sender: TObject); begin Button1.visible:=FALSE; Button2.visible:=FALSE; Button3.visible:=FALSE; Button4.visible:=FALSE; Button5.visible:=TRUE; Button6.visible:=FALSE; Timer1.Enabled:=True; ax:=591; ay:=351; end; procedure TForm1.Button3Click(Sender: TObject); begin Button1.visible:=FALSE; Button2.visible:=FALSE; Button3.visible:=FALSE; Button4.visible:=FALSE; Button5.visible:=FALSE; Button6.visible:=TRUE; Timer1.Enabled:=True; ax:=623; ay:=383; end; procedure TForm1.Timer1Timer(Sender: TObject); var x , y :Integer; begin Randomize; x:=Random(ax); y:=Random(ay); if Button4.visible=True then begin Button4.Left:=x; Button4.Top:=y; end else if Button5.visible=True then begin Button5.Left:=x; Button5.Top:=y; end else begin Button6.Left:=x; Button6.Top:=y; end; end; procedure TForm1.Button4Click(Sender: TObject); begin Timer1.Enabled:=False; ShowMessage('You Won!'); Button1.visible:=TRUE; Button2.visible:=TRUE; Button3.visible:=TRUE; Button4.visible:=FALSE; Button5.visible:=FALSE; Button6.visible:=FALSE; end; procedure TForm1.Button5Click(Sender: TObject); begin Timer1.Enabled:=False; ShowMessage('You Won!'); Button1.visible:=TRUE; Button2.visible:=TRUE; Button3.visible:=TRUE; Button4.visible:=FALSE; Button5.visible:=FALSE; Button6.visible:=FALSE; end; procedure TForm1.Button6Click(Sender: TObject); begin Timer1.Enabled:=False; ShowMessage('You Won!'); Button1.visible:=TRUE; Button2.visible:=TRUE; Button3.visible:=TRUE; Button4.visible:=FALSE; Button5.visible:=FALSE; Button6.visible:=FALSE; end; procedure TForm1.FormCreate(Sender: TObject); begin a := ReadInteger('Abschnitt1','Anzahl',0); a := a+1; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin ini.WriteInteger('Abschnitt1','Anzahl',a); end; end. |
Re: Delphi 5: Problem mit Create bei Ini-Datei...
Der Konstruktor muss schon in der Klassendeklaration deklariert werden. Aber Du könntest doch das FormCreate-Ereignis benutzen, um die Ini zu erzeugen und diese im OnDestroy-Ereignis wieder freigeben.
|
Re: Delphi 5: Problem mit Create bei Ini-Datei...
Könntest du mir das bitte genauer erklären, kenne mich da gar nicht aus...
soll ich das einfach nur vor implementation setzen oder das hinter type??? bzw. meinst du gar nicht diese unit? aber wenn nicht wie springe ich in Delphi 5? |
Re: Delphi 5: Problem mit Create bei Ini-Datei...
Um den Konstruktor nutzen bzw. zu verändern zu können musst du das in der Implementation der Klasse ändern. Quasi dir eine eigene Klasse erzeugen.
TForm stellt jedoch genug Optionen zur Verfügung, welche du nutzen kannst. Die Ini-Datei kannst du zum Beispiel im OnCreate-Ereignis deiner Form nutzen und diese im OnDestroy-Ereignis wieder freigeben. |
Re: Delphi 5: Problem mit Create bei Ini-Datei...
Delphi-Quellcode:
Ein Konstruktor ist eine spezielle Methode einer Klasse, daher muss er auch zu dieser Klasse gehören und kann nicht einfach irgendwo in den Quelltext geschrieben werden.
type
TMyClass = class private //... protected //... public constructor Create(Parameter: Typ); //hier wird der Konstruktor deklariert end; implementation //und hier implementiert constructor TMyClass.Create(Parameter: Typ); begin inherited Create; //weiterer Code end; |
Re: Delphi 5: Problem mit Create bei Ini-Datei...
|
Re: Delphi 5: Problem mit Create bei Ini-Datei...
Schießt Ihr nicht alle etwas weit über das Ziel hinaus?
Der Thread-Starter will doch nur auf eine INI-Datei zugreifen, oder?
Delphi-Quellcode:
€: OK, Helmi sieht es zum Glück auch so... wieso hatte ich keine rote Box?
uses
...INIFiles... [...Form...] private { Private-Deklarationen } INI : TINIFile; public { Public-Deklarationen } end; var Form1: TForm1; implementation TForm1.FormCreate(Sender: TObject); begin INI := TIniFile.Create('myInifile.ini'); // nur mal so als Beispiel [...] €2: DeddyH erst auch, ist aber dann auf den anderen Zug aufgesprungen |
Re: Delphi 5: Problem mit Create bei Ini-Datei...
Ihm fehlt ja aber jegliches grundlegendes Verständnis für den Aufbau einer Klasse und der Deklaration von Methoden und Funktionen.
Zitat:
Das meinte ich ja auch oben als ich DeddyH's Beitrag verdeutlichte. |
Re: Delphi 5: Problem mit Create bei Ini-Datei...
Ich wollte ihm doch nur klarmachen, was ein Konstruktor ist. Dass er gar keinen braucht, steht doch schon in meiner ersten Antwort.
|
Re: Delphi 5: Problem mit Create bei Ini-Datei...
War ja auch auf keinen Fall böse gemeint, aber in Post #3 siehst Du, was Du angerichtet hast :stupid:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:07 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