AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Delphi 5: Problem mit Create bei Ini-Datei...
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 5: Problem mit Create bei Ini-Datei...

Ein Thema von Fussel9 · begonnen am 26. Mai 2009 · letzter Beitrag vom 27. Mai 2009
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Fussel9
Fussel9

Registriert seit: 25. Mai 2009
322 Beiträge
 
Turbo Delphi für Win32
 
#1

Delphi 5: Problem mit Create bei Ini-Datei...

  Alt 26. Mai 2009, 18:27
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:

constructor Create(const FileName String); 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...

Bei der Gelegenheit: Ist es entscheident wo der constructor steht?


Delphi-Quellcode:
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}
constructor Create(const FileName String);

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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Delphi 5: Problem mit Create bei Ini-Datei...

  Alt 26. Mai 2009, 18:31
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Fussel9
Fussel9

Registriert seit: 25. Mai 2009
322 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Delphi 5: Problem mit Create bei Ini-Datei...

  Alt 26. Mai 2009, 18:38
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?
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Delphi 5: Problem mit Create bei Ini-Datei...

  Alt 26. Mai 2009, 18:43
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.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Delphi 5: Problem mit Create bei Ini-Datei...

  Alt 26. Mai 2009, 18:43
Delphi-Quellcode:
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;
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Delphi 5: Problem mit Create bei Ini-Datei...

  Alt 26. Mai 2009, 18:47
Hallo,

ich denke Fussel braucht etwas so was hier
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Delphi 5: Problem mit Create bei Ini-Datei...

  Alt 26. Mai 2009, 18:51
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:
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
[...]
€: OK, Helmi sieht es zum Glück auch so... wieso hatte ich keine rote Box?
€2: DeddyH erst auch, ist aber dann auf den anderen Zug aufgesprungen
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Delphi 5: Problem mit Create bei Ini-Datei...

  Alt 26. Mai 2009, 18:52
Ihm fehlt ja aber jegliches grundlegendes Verständnis für den Aufbau einer Klasse und der Deklaration von Methoden und Funktionen.
Zitat:
Schießt Ihr nicht alle etwas weit über das Ziel hinaus?
Dito.
Das meinte ich ja auch oben als ich DeddyH's Beitrag verdeutlichte.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Delphi 5: Problem mit Create bei Ini-Datei...

  Alt 26. Mai 2009, 18:59
Ich wollte ihm doch nur klarmachen, was ein Konstruktor ist. Dass er gar keinen braucht, steht doch schon in meiner ersten Antwort.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Delphi 5: Problem mit Create bei Ini-Datei...

  Alt 26. Mai 2009, 19:02
War ja auch auf keinen Fall böse gemeint, aber in Post #3 siehst Du, was Du angerichtet hast
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 06:55 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