Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Deklarationen II (https://www.delphipraxis.net/3858-deklarationen-ii.html)

Hellcat 2. Apr 2003 17:03


Deklarationen II
 
Hi Leute!

Ich hab wieder mal ein Problem bei meinen Deklarationen (scheinbar bin ich echt zu doof dazu). Bei der folgenden Zeile
Delphi-Quellcode:
     BildTHL[i] := THL (Application.Form1.THLPan[i],Button,BildTHL[i]);
erzählt er mir daß er Form1 nicht kennt (Undeclared Identifer) obwohl ich die Form bei dieser Unit deklariert habe (Form1 gehört zu einer anderen Unit...)
Delphi-Quellcode:
uses SysUtils, ExtCtrls, StdCtrls, Controls, Classes, Graphics, Dialogs,Forms,
     unittype;
  {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;
    function laden : string;
    procedure zerlegen (Zeile:string);
  type
    THLPan1 = TImage;
    TForm1 = {class(TForm)}TForm;

mirage228 2. Apr 2003 17:04

Mach mal das Application vor Form1 weg

und das muss heissen
Delphi-Quellcode:
TForm1 = class(TForm)
(bei dir war das in comments!)

Daniel B 2. Apr 2003 17:07

Re: Deklarationen II
 
Hallo,

das da
Zitat:

Zitat von Hellcat
Delphi-Quellcode:
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;
    function laden : string;
    procedure zerlegen (Zeile:string);
vor
Delphi-Quellcode:
  type
    THLPan1 = TImage;
    TForm1 = {class(TForm)}TForm;

das da?

Was hast Du denn vor?
Und was möchtest Du denn bitte damit machen?
"TForm1 = {class(TForm)}TForm;"

Grüsse, Daniel :hi:

APP 2. Apr 2003 17:32

Hallo,
also zusammenfassend sollte es so aussehen: :nerd:

Delphi-Quellcode:
uses SysUtils, ExtCtrls, StdCtrls, Controls, Classes, Graphics, Dialogs,Forms,
     unittype;
  {Standard-Units auf die zurückgegriffen wird} 

type
TForm1 = class(TForm)
  THLPan1 : TImage; // komischer Name für ein Image (Tnnn ... sollte für Typen reserviert sein)
  private
    { Private-Deklarationen }
    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;
    function laden : string;
    procedure zerlegen (Zeile:string);
  public
    { Public-Deklarationen }
end;

Hellcat 3. Apr 2003 15:27

Hmm, das hat irgendwie keine Wirkung gehabt...

ich kriege immer noch die gleiche Fehlermeldung...

Delphi-Quellcode:
uses SysUtils, ExtCtrls, StdCtrls, Controls, Classes, Graphics, Dialogs,Forms,
     unittype;
  {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;
    function laden : string;
    procedure zerlegen (Zeile:string);
  type
    TForm1 = class(TForm);
    THLPan1 = TImage;
Delphi-Quellcode:
       BildTHL[i] := THL (Form1.THLPan[i],Button,BildTHL[i]);

APP 3. Apr 2003 17:17

Hallo,

Zitat:

erzählt er mir daß er Form1 nicht kennt (Undeclared Identifer) obwohl ich die Form bei dieser Unit deklariert habe (Form1 gehört zu einer anderen Unit...)
kann es sein, das Du die Unit der Form1 nicht ein Deine andere (?) Form eingebunden hast?

Delphi-Quellcode:
UNIT Unit2; // Deine Form die Du gepostet hast
INTERFACE
USES
   Windows,
   Messages,
   SysUtils,
   Classes,
   ...
VAR
   Form2                           : TForm2;
IMPLEMENTATION
uses Unit1; // Die Unit deiner Form1 die Du hier aufrufen möchtest
...
ansonsten Poste deine Units etwas detailierter.

p.s. Vergleiche noch einmal Deinen Source mit dem den ich gestern gepostet habe, (bzw. mit dem was Daniel B und mirage228 gepostet haben), da gib es gravierende Unterschiede!

Hellcat 4. Apr 2003 08:31

Hmm, stimmt ja, das sollte man machen...aber dann hab ich wieder das Problem daß sich zwei Units gegenseitig referenzieren...

Unit Haupt:
Delphi-Quellcode:
unit UnitHaupt;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, unittype, unitfunc,unitls, Menus, ExtCtrls, StdCtrls,
  ActnList, StdActns;
Unit Func:
Delphi-Quellcode:
uses SysUtils, ExtCtrls, StdCtrls, Controls, Classes, Graphics, Dialogs,Forms,
     unittype, UnitHaupt;
So würde das dann aussehen...und das kann ja nicht klappen...aber wie dann?

Hellcat 4. Apr 2003 08:48

Ok, ich hab das Problem jetzt gelöst, die zirkuläre Refernz hab ich so umgangen:

Delphi-Quellcode:
unit UnitFunc;

interface

uses SysUtils, ExtCtrls, StdCtrls, Controls, Classes, Graphics, Dialogs,Forms,
     unittype;
  {Standard-Units auf die zurückgegriffen wird}
  type
    TForm1 = class(TForm);
    THLPan1 = TImage;

    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;
    function laden : string;
    procedure zerlegen (Zeile:string);



implementation

uses UnitHaupt;


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