Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Bezeichner redefiniert + Deklaration? (https://www.delphipraxis.net/126894-bezeichner-redefiniert-deklaration.html)

Bericender 4. Jan 2009 11:31


Bezeichner redefiniert + Deklaration?
 
Laut Delphi habe ich einige Bezeichner redefiniert und eine ungenügende Forward- oder External Deklaration bei den Prozeduren. Sieht von euch wer woran es liegt? :glaskugel: :wink:

Delphi-Quellcode:
unit uUnit2;

interface

type
  TEinzelteile = record
        TNummer,Preis:integer;
        Bezeichnung,Verwendung:string[250];
  end;
  TKundenstamm = record
        Name,Strasse,Ort:string[100];
        Hausnummer,Postleitzahl:integer;
  end;
  Tearray=Array[0..999]of TEinzelteile;
  Tkarray=Array[0..999]of TKundenstamm;
  TFirma=class
        earray:Tearray;
        karray:Tkarray;
        fn:string[9];
        Einzelteile:File of TEinzelteile;
        Einzelteile:TEinzelteile;
        Kundenstamm:File of TKundenstamm;
        Kundenstamm:TKundenstamm;
        procedure speichern(fn:string);
        procedure neu (fn:string);
        procedure oeffnen (fn:string);
        procedure schliessen;
        procedure vor;
        procedure zurueck;
   end;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

implementation

{$R *.dfm}

procedure oeffnen (fn:string)TFirma;
begin
  fn:'Einzelteile.dat';
  assignfile(Einzelteile,fn);
  if fileexists ('Einzelteile.dat')
  then reset(Einzelteile);
  Einzelteile.TNummer:=Edit1.Text;
  Einzelteile.Preis:=Edit2.Text;
  Einzelteile.Bezeichnung:=Edit3.Text;
  Einzelteile.Verwendung:=Edit4.Text;
  else ReWrite(Einzelteile);   
end;

procedure neu (fn:string);
begin
  fn:'Einzelteile.dat';
  assignfile(Einzelteile,fn);
  seek(eof(einzelteile));
  rewrite(Einzelteile);
end;

procedure speichern(fn:string);
begin
  fn:'Einzelteile.dat';
  assignfile(Einzelteile,fn);
  Einzelteile.TNummer:=inttostr(Edit1.Text);
  Einzelteile.Preis:=inttostr(Edit2.Text);
  Einzelteile.Bezeichnung:=Edit3.Text;
  Einzelteile.Verwendung:=Edit4.Text;
  write(Einzelteile,earray);
end;

procedure vor;
  begin
  seek(Einzelteile,filepos(Einzelteile));
  Einzelteile.TNummer:=inttostr(Edit1.Text);
  Einzelteile.Preis:=inttostr(Edit2.Text);
  Einzelteile.Bezeichnung:=Edit3.Text;
  Einzelteile.Verwendung:=Edit4.Text;
end;

procedure zurueck;
begin
  Seek(Einzelteile, FilePos(Einzelteile)-2);
  Einzelteile.TNummer:=inttostr(Edit1.Text);
  Einzelteile.Preis:=inttostr(Edit2.Text);
  Einzelteile.Bezeichnung:=Edit3.Text;
  Einzelteile.Verwendung:=Edit4.Text;
end;

procedure schliessen;
begin
CloseFile(Einzelteile);
close
end;

end.

mkinzler 4. Jan 2009 11:32

Re: Bezeichner redefiniert + Deklaration?
 
Normalerweise sagt der Compiler auch welche und wo

Bei der Deklaration der Methoden ( nicht Prozeduren/Funktionen) fehlt die Angabe der Klasse

Die Muhkuh 4. Jan 2009 11:33

Re: Bezeichner redefiniert + Deklaration?
 
Zitat:

Zitat von mkinzler
Normalerweise sagt der Compiler auch welche und wo

Das sieht man aber ;)

Delphi-Quellcode:
procedure TFirma.oeffnen (fn:string);
procedure TFirma.neu (fn:string);
usw. usf.

Delphi-Quellcode:
fn:'Einzelteile.dat';
Interessante Syntax? :gruebel:

Bericender 4. Jan 2009 11:35

Re: Bezeichner redefiniert + Deklaration?
 
:-D
Tjaja der Wald vor lauter Bäumen :D
Theoretisch gesehen müsste ich die gesamte fn Geschichte weglassen oder? :wink:

mkinzler 4. Jan 2009 11:38

Re: Bezeichner redefiniert + Deklaration?
 
Jein, ist ja ein Parameter der Methode. Oder willst du ihn als Defaultwert nehmen wenn nichts übergeben wird

Die Muhkuh 4. Jan 2009 11:39

Re: Bezeichner redefiniert + Deklaration?
 
Wenn das die komplette Unit ist, ist da sowieso ein Kuddelmuddel drin.

Du greifst auf Edit-Boxen zu, die es gar nicht gibt?

Bericender 4. Jan 2009 11:40

Re: Bezeichner redefiniert + Deklaration?
 
ich würde die Datei überall Einzelteile.dat nennen und somit komplett auf fn verzichten.
Die Edit Boxen sind in Unit 1 :wink:

mkinzler 4. Jan 2009 11:42

Re: Bezeichner redefiniert + Deklaration?
 
Zitat:

Die Edit Boxen sind in Unit 1 Wink
Dann solltest du diese aber richtig referenzieren :zwinker:

Bericender 4. Jan 2009 11:43

Re: Bezeichner redefiniert + Deklaration?
 
Hier ist übrigens die Unit 1 ;)
Delphi-Quellcode:
unit uUnit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Button1: TButton;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
        TFirma.neu;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
        TFirma.oeffnen;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
        TFirma.vor;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
        TFirma.zurueck;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
        TFirma.speichern;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
        TFirma.schliessen;
end;

end.

Die Muhkuh 4. Jan 2009 11:44

Re: Bezeichner redefiniert + Deklaration?
 
Mei, da fehlt es an Grundlagen. Du musst ein Objekt der Klasse nutzen und nicht die Klasse selbst, höchstens es sind Klassenmethoden.

Schau mal auf www.dsdt.info vorbei, dort gibt es gute Grundlagentutorials.


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