![]() |
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. |
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 |
Re: Bezeichner redefiniert + Deklaration?
Zitat:
Delphi-Quellcode:
usw. usf.
procedure TFirma.oeffnen (fn:string);
procedure TFirma.neu (fn:string);
Delphi-Quellcode:
Interessante Syntax? :gruebel:
fn:'Einzelteile.dat';
|
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: |
Re: Bezeichner redefiniert + Deklaration?
Jein, ist ja ein Parameter der Methode. Oder willst du ihn als Defaultwert nehmen wenn nichts übergeben wird
|
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? |
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: |
Re: Bezeichner redefiniert + Deklaration?
Zitat:
|
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. |
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 ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 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