Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi speichern und laden eines stringgrid (https://www.delphipraxis.net/23224-speichern-und-laden-eines-stringgrid.html)

herrentor 31. Mai 2004 05:41


speichern und laden eines stringgrid
 
ich hab ein problem mit dem speichern und laden eines stringgrids. hier zeigt er die fehler (ungenügende forward- oder external-deklaration:'TForm1.LoadTab') und
(ungenügende forward- oder external-deklaration:'TForm1.LoadTab') an.

Code:

type
 TForm1 = class(TForm)
  procedure LoadTab(Sender: TObject; const FileName: TFileName);
  procedure OeffnenClick(Sender: TObject);
  procedure SaveTab(Sender: TObject; const FileName: TFileName);
  procedure Speichern1Click(Sender: TObject);
fürs speichern:

Code:

procedure SaveTab(Tab: TStringGrid; const FileName: TFileName);
var
  f:   TextFile;
  i, k: Integer;
begin
  AssignFile(f, FileName);
  Rewrite(f);
  with Tab do
  begin
    // Write number of Columns/Rows
    Writeln(f, ColCount);
    Writeln(f, RowCount);
    // loop through cells
    for i := 0 to ColCount - 1 do
      for k := 0 to RowCount - 1 do
        Writeln(F, Cells[i, k]);
  end;
  CloseFile(F);
end;

procedure TForm1.Speichern1Click(Sender: TObject);
begin
 SaveTab(Tab, 'c:\grid.txt');
end;
und fürs laden:

Code:

procedure LoadTab(Tab: TStringGrid; const FileName: TFileName);
var
  f:         TextFile;
  iTmp, i, k: Integer;
  strTemp:   String;
begin
  AssignFile(f, FileName);

  with Tab do
  begin
    // Get number of columns
    Readln(f, iTmp);
    ColCount := iTmp;
    // Get number of rows
    Readln(f, iTmp);
    RowCount := iTmp;
    // loop through cells & fill in values
    for i := 0 to ColCount - 1 do
      for k := 0 to RowCount - 1 do
      begin
        Readln(f, strTemp);
        Cells[i, k] := strTemp;
      end;
  end;
  CloseFile(f);
end;

procedure TForm1.OeffnenClick(Sender: TObject);
begin
 LoadTab(Tab, 'c:\grid.txt');
end;
was ist da los?

danke im voraus.

alcaeus 31. Mai 2004 05:49

Re: speichern und laden eines stringgrid
 
Hi! Der Header einer Funktion muss so lauten:
Code:
KlassenName.FunktionsName
Im Deklarationsteil (also oben in der Datei), stehen sie ohne Klassenname. Deshalb musst du schreiben:
Delphi-Quellcode:
type
 TForm1 = class(TForm)
  procedure SaveTab(Sender: TObject; const FileName: TFileName);
//...
procedure TForm1.SaveTab(Tab: TStringGrid; const FileName: TFileName);
Dasselbe gilt natürlich für alle anderen Funktionen auch. Beachte allerdings, dass in diesem Fall auch die Parameterlisten unterschiedlich sind, diese müssen aber gleich sein.

Greetz
alcaeus

Sharky 31. Mai 2004 05:53

Re: speichern und laden eines stringgrid
 
Hai herrentor,

wenn Du eine procedure als Methode deiner TForm deklarierst musst Du den Type-Namen davor setzen. *uff was für ein blöder satz*

Code:
type
 TForm1 = class(TForm)
  procedure LoadTab(Sender: TObject; const FileName: TFileName);
 end;

implementation

procedure [b]TForm1.[/b]LoadTab(Sender: TObject; const FileName: TFileName);
[Edit]Um diese Zeit tippe ich wohl zu langsam :cry: [/Edit]

herrentor 31. Mai 2004 06:49

Re: speichern und laden eines stringgrid
 
ok, speichert tut er jetzt, aber öffnen nicht. ich denke mal das liegt daran, dass ich diesen teil rausgenommen hab:

Code:

Reset(f);
weil er sonst sagt, operator oder semikolon fehlt.

herrentor 31. Mai 2004 06:53

Re: speichern und laden eines stringgrid
 
ok, ich hab den fehler gefunden. besten dank.

Sharky 31. Mai 2004 06:53

Re: speichern und laden eines stringgrid
 
Zitat:

Zitat von herrentor
ok, speichert tut er jetzt, aber öffnen nicht. ich denke mal das liegt daran, dass ich diesen teil rausgenommen hab:.....

Hai herrentor,

ich kann in deinem obigen Code nirgends ein Reset (f); finden.

Nicodius 31. Mai 2004 06:55

Re: speichern und laden eines stringgrid
 
dann wird ers wohl VOR dem posten hier drinnen gehabt haben :stupid:

von wegen ICH bin müde :mrgreen:


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