![]() |
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:
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...)
BildTHL[i] := THL (Application.Form1.THLPan[i],Button,BildTHL[i]);
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; |
Mach mal das Application vor Form1 weg
und das muss heissen
Delphi-Quellcode:
(bei dir war das in comments!)
TForm1 = class(TForm)
|
Re: Deklarationen II
Hallo,
das da Zitat:
Was hast Du denn vor? Und was möchtest Du denn bitte damit machen? "TForm1 = {class(TForm)}TForm;" Grüsse, Daniel :hi: |
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; |
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]);
|
Hallo,
Zitat:
Delphi-Quellcode:
ansonsten Poste deine Units etwas detailierter.
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 ... 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! |
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 Func:
unit UnitHaupt;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, unittype, unitfunc,unitls, Menus, ExtCtrls, StdCtrls, ActnList, StdActns;
Delphi-Quellcode:
So würde das dann aussehen...und das kann ja nicht klappen...aber wie dann?
uses SysUtils, ExtCtrls, StdCtrls, Controls, Classes, Graphics, Dialogs,Forms,
unittype, UnitHaupt; |
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 00:08 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