Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Speichern Button (https://www.delphipraxis.net/160196-speichern-button.html)

Speter 2. Mai 2011 09:21

Speichern Button
 
Hallo leute,

bin neu hier und habe direkt mal ne Frage.
Mein Quelltext ist so:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, Inifiles, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;



type
  TForm1 = class(TForm)
    Ueberschrift: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label7: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Speichern: TButton;
    Ende: TButton;
    RadioGroup1: TRadioGroup;
    RadioGroup2: TRadioGroup;
    RadioGroup3: TRadioGroup;
    Label6: TLabel;
    Label8: TLabel;
    RadioGroup4: TRadioGroup;
    RadioGroup5: TRadioGroup;
    RadioGroup6: TRadioGroup;
    RadioGroup7: TRadioGroup;
    RadioGroup8: TRadioGroup;
    RadioGroup9: TRadioGroup;
    RadioGroup10: TRadioGroup;
    procedure EndeClick(Sender: TObject);
    procedure SpeichernClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;


implementation

{$R *.dfm}

procedure TForm1.EndeClick(Sender: TObject);
begin
close
end;

procedure TForm1.SpeichernClick(Sender: TObject);

var
dummy_inifile:tinifile;
begin
dummy_inifile:=tinifile.create('Auswertung.ini');
dummy_inifile.writeinteger('Inifile_section','Radiogroup1',Radiogroup1.ItemIndex);
dummy_inifile.free;
end;

// Lesen:

var
dummy_inifile:tinifile;
begin
dummy_inifile:=tinifile.create('dateiname.ini');
radiogroup1.itemindex:=dummy_inifile.readinteger('Inifile_section','Radiogroup1',-1);
dummy_inifile.free;
end;
end.
Nun bekomm ich aber folgende Fehlermeldungen:

[Fehler] Unit1.pas(73): Undefinierter Bezeichner: 'radiogroup1'
[Fehler] Unit1.pas(73): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(75): '.' erwartet, aber ';' gefunden
[Fataler Fehler] Fragebogen.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden

Hoffe hier kann mir jemand helfen.

Mit freundlichen Grüßen

rollstuhlfahrer 2. Mai 2011 09:24

AW: Speichern Button
 
Hallo und herzlich willkommen in der DP :dp: :dp:

Wenn wir jetzt auch noch wissen würden wo Zeile 73 ist, dann ist alles gut.

Bernhard

DeddyH 2. Mai 2011 09:26

AW: Speichern Button
 
Wenn ich mir die Deklaration des Formulars ansehe komme ich zu dem Schluss, dass das Lesen keine Methode, sondern wahrscheinlich eine reguläre Prozedur ist. Dort ist dann die RadioGroup natürlich nicht bekannt.

[edit] Sry, Willkommen in der DP :dp: [/edit]

angos 2. Mai 2011 09:30

AW: Speichern Button
 
Hi,

du greifst von der Unit aus direkt auf die Radiogroup zu. Die Radiogroup selbst ist aber nur in deinem Formular deklariert.

Besser wäre, wenn du eine Neue Methode "DatenLaden" dem Formular hinzufügst und dort alles für das Laden der Daten vorsiehst. (wie schon durch DeddyH geschrieben)

Speter 2. Mai 2011 09:33

AW: Speichern Button
 
Erstmal vielen dank für die schnellen antworten :)

Delphi-Quellcode:
Radiogroup1.itemindex:=dummy_inifile.readinteger('Inifile_section','Radiogroup1',-1);
hier zeigt er mir das Radiogroup1 ein Undefinierter Bezeichner währe.
Paar Zeilen drüber habe ich das aber auch stehen und da ist es kein Fehler??


Das soll nämlich ein Fragebogen werden den Leute ausfüllen. Die ergebnisse sollen in csv. gespeichert werden also mit excel ausgelesen werden.
Hab gedacht mit dem was ich da habe währe das so möglich oder?

Mit freundlichen Grüßen

DeddyH 2. Mai 2011 09:35

AW: Speichern Button
 
Ist das der komplette Quelltext, den Du da gepostet hast?

Speter 2. Mai 2011 09:36

AW: Speichern Button
 
ja das ist das komplette.
Bin davon ausgegangen das es eigentlich doch so funktionieren müsste wenn ich die Fehler behoben habe.

Mit freundlichen Grüßen

himitsu 2. Mai 2011 09:38

AW: Speichern Button
 
jupp, das "Lesen" ist keine Methode von TForm1,
sondern die Initialisierungsprozedur der Unit, da du den Funktions-Header vergessen hast.

Delphi-Quellcode:
procedure TForm1.SpeichernClick(Sender: TObject); { der Funktions-Header }
var
dummy_inifile:tinifile;
begin
dummy_inifile:=tinifile.create('Auswertung.ini');
dummy_inifile.writeinteger('Inifile_section','Radiogroup1',Radiogroup1.ItemIndex);
dummy_inifile.free;
end;

// Lesen:

{ hier fehlt etwas ganz Wichtiges }
var
dummy_inifile:tinifile;
begin
dummy_inifile:=tinifile.create('dateiname.ini');
radiogroup1.itemindex:=dummy_inifile.readinteger('Inifile_section','Radiogroup1',-1);
dummy_inifile.free;
end;
Und da dieses keine Methode der Form ist, kann es so auch nichts kennen, was innerhalb der Form deklariert ist.

Am Ende fehlt dir der Laden-Button und die zugehörige OnClick-Methode.

DeddyH 2. Mai 2011 09:40

AW: Speichern Button
 
Richtig. Es müsste so lauten:
Delphi-Quellcode:
procedure TForm1.Laden; //diese Zeile ist enorm wichtig
var
dummy_inifile:tinifile;
begin
dummy_inifile:=tinifile.create('dateiname.ini');
radiogroup1.itemindex:=dummy_inifile.readinteger('Inifile_section','Radiogroup1',-1);
dummy_inifile.free;
end;
Außerdem musst Du die Methode noch im interface-Abschnitt bekanntmachen.
Delphi-Quellcode:
type
  TForm1 = class(TForm)
  ...
  procedure Laden;
  ...
  end;

rollstuhlfahrer 2. Mai 2011 09:44

AW: Speichern Button
 
Und dann noch im OnCreate der Form die Laden-Prozedur aufrufen.

Bernhard


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:00 Uhr.
Seite 1 von 2  1 2      

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