Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Undeclared Identifier (https://www.delphipraxis.net/3594-undeclared-identifier.html)

Hellcat 20. Mär 2003 11:32


Undeclared Identifier
 
Hi Leute!

Bin heute mal wieder nicht so fit, daher wieder eine etwas dumme Frage:
Beim Compiliren erhalte ich die Meldung "Undeclared identifier: 'speichern'". Die Funktion "speichern" ist in einer anderen Unit eingetragen, auf die aber in der Hupt-Unit verwiesen wird.
Delphi-Quellcode:
 unit UnitHaupt;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, unittype, unitfunc, Menus, ExtCtrls, StdCtrls, ActnList, StdActns;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Datei1: TMenuItem;
    Speichern1: TMenuItem;
    Laden1: TMenuItem;
    Drucken1: TMenuItem;
    Beenden1: TMenuItem;
    Extras1: TMenuItem;
    Editor1: TMenuItem;
    Legende1: TMenuItem;
    PanHalle01: TPanel;
    PanLab1: TLabel;
    PanLab1T: TLabel;
    THLPan1: TImage;
    SchlPan1: TImage;
    procedure SndPan2MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Speichern1Click(Sender: TObject);
    procedure PanHalle03MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);

{Menüleiste - Menü "Datei"}
procedure TForm1.Speichern1Click(Sender: TObject);//Menüpunkt "Speichern"
var i: Byte;
begin
  for i := 1 to MaxHallen do
    begin
      speichern('PanHalle' + IntToStr (i));
    end;
end;
Und hier die zweite Unit:
Delphi-Quellcode:
unit UnitFunc;

interface

uses SysUtils, ExtCtrls, Controls, Graphics; {Standard-Units auf die zurückgegriffen wird}

    procedure Farbewechseln (Sender: TPanel; Button: TMousebutton);
    function Zeitangabe:string;
    function THL (Sender: TImage; Button: TMousebutton; Bild: boolean): boolean;
    function Sound (Sender: TImage; Button: TMousebutton; Bild: boolean): boolean;
    function Schloss (Sender: TImage; Button: TMousebutton; Bild: boolean): boolean;
    procedure speichern (Hname, Zeit, HFarbe: string; Schl, THL, Sound:boolean);
   
implementation

procedure speichern (Hname, Zeit, HFarbe: string; Schl, THL, Sound:boolean);
var save: Textfile;
begin
  AssignFile (save, 'zustand.hbl');
  {$i-} Append (save){$i+}
  if IOResult <> 0 then
    begin
      showmessage ('Die Datei "Zustand.hbl" wurde nicht gefunden!');
      exit;
    end;
  writeln (Save, TimeToStr(now) +';'+ HName +;+ Zeit +;+ HFarbe +;+
            BoolToStr(Schl) +;+ BoolToStr (THL) +;+ BootToStr (Sound));
  closeFile(Save);
end;

Hansa 20. Mär 2003 11:38

Die Units befinden sich wahrscheinlich nicht im selben Verzeichnis. Die eine ist bestimmt bei Projects oder so. Ansonsten stimmt das da nämlich so.

Hellcat 20. Mär 2003 11:49

War auch mein erster Gedanke, daran kann es nicht liegen, sie befinden sich alle im gleichen Verzeichnis. Interessanter Weise hab ich noch weitere Funktionen die auf die Unit zurückgreifen, aber die funktionieren alle...

Darty 20. Mär 2003 12:38

Im UnitHaupt fehlt wohl Uses UnitFunc;

Hellcat 20. Mär 2003 13:31

Ist eingetragen, sonst würden die anderen Funktionen ja auch nicht funktionieren (im oberen Quellcode unter uses in der 3.Zeile der 3.Eintrag)

Also, wenn ich jetzt eine neue Funktion eintrage klappt die auch nicht mehr - auch "undeclared Identifier"...

jbg 20. Mär 2003 14:51

Dann lösche mal alle UnitFunc.dcu Dateien, die du auf deiner Platte findest.

Hellcat 20. Mär 2003 15:44

Ok, jetzt funzt es...Danke!

Darty 20. Mär 2003 20:06

Wieso lag es an den dcu files ?? :shock:

Luckie 20. Mär 2003 20:30

Delphi wird sie nicht neu erstellt haben. Kann passieren.


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