![]() |
Class TPanel not found
Hi Leute!
Ich erhalte beim Starten meines Programms die Fehlermeldung "EClassNotFond with 'Class TPanel not found'". Allerdings habe ich auf besagter Form keine Panels verwendet....
Delphi-Quellcode:
Die dazugehörige Unit sieht so aus:
program Halbel;
uses Forms, UnitHaupt in 'UnitHaupt.pas' {Form1}, UnitFunc in 'UnitFunc.pas', UnitType in 'UnitType.pas', UnitLS in 'UnitLS.pas' {Form2}; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2);//Hier tritt der Fehler auf Application.Run; end.
Delphi-Quellcode:
Und hier noch mal die beiden Funktionen die von der Unit aus aufgerufen werden:
unit UnitLS;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,ExtCtrls, unittype, unitfunc; type TForm2 = class(TForm) ListBoxLaden: TListBox; LadenButton: TButton; AbrLaden: TButton; procedure AbrLadenClick(Sender: TObject); procedure LadenButtonClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation {$R *.dfm} procedure TForm2.AbrLadenClick(Sender: TObject); //Form2 schließen begin close; end; procedure TForm2.LadenButtonClick(Sender: TObject); var Zeile : string; begin Zeile := laden; Zerlegen(Zeile); Form2.Close; end; end.
Delphi-Quellcode:
procedure zerlegen (Zeile:string); {Zerlegt die ausgelesene Textzeile in die einzelnen Werte und weißt sie zu}
var i, zaehler:integer; HName, HZeit, HFarbe, Hthl, HSchl, HSnd : string; begin zaehler := 21; for i := 1 to 35 do {Durchlauf für alle Panels} begin {Initialisierung der einzelnen Variablen} HName := ''; HFarbe := ''; HZeit := ''; HSchl := ''; HThl := ''; HSnd := ''; repeat {Name} HName := HName + Zeile[Zaehler]; inc (Zaehler); until Zeile[Zaehler] = ';'; inc (Zaehler); repeat {Zeit} HZeit := HZeit + Zeile[Zaehler]; inc (Zaehler); until Zeile[Zaehler] = ';'; if HZeit = '0' then Hzeit := ''; inc (Zaehler); repeat {Farbe} HFarbe := HFarbe + Zeile[Zaehler]; inc (Zaehler); until Zeile[Zaehler] = ';'; HFarbe := IntToHex((StrToInt('$' + HFarbe)),6); inc (Zaehler); repeat {THL} Hthl := Hthl + Zeile[Zaehler]; inc (Zaehler); until Zeile[Zaehler] = ';'; inc (Zaehler); repeat {Halle offen/zu} HSchl := HSchl + Zeile[Zaehler]; inc (Zaehler); until Zeile[Zaehler] = ';'; inc (Zaehler); repeat {Beschallung} HSnd := HSnd + Zeile[Zaehler]; inc (Zaehler); until Zeile[Zaehler] = '#'; Zaehler := Zaehler + 2; with Application.MainForm.FindComponent('PanLab' + IntToStr(i)) as TLabel do {Zuweisung Hallenname} begin caption := HName; end; with Application.MainForm.FindComponent('PanLabT' + IntToStr(i)) as TLabel do {Zuweisung Hallenzeit} begin caption := HZeit; end; with Application.MainForm.FindComponent ('PanHalle' + InttoStr(i))as TPanel do {Zuweisung Panelfarbe} begin Color := StrToInt('$' + HFarbe); end; if HThl <> '-1' then BildTHL[i] := true; {Zuweisung THL-Bild} BildTHL[i] := THL (Application.MainForm.FindComponent('THLPan1'+IntToStr(i))as TImage,Mbleft,BildTHL[i]); end; end;
Delphi-Quellcode:
function laden : string; //Funktion zum Laden
var load : textfile; zeile: string; begin AssignFile (load, 'zustand.hbl'); {$i-} Reset (load); {$i+} if IOResult <> 0 then begin showmessage('Die Datei "Zustand.hbl" wurde nicht gefunden!'); Exit end; while not Eof (load) do begin readln (load, Zeile); end; closefile (load); result := Zeile; end; |
offensichtlich ist da etwas von TPanel abgeleitet, glaube, es ist TButton. Irgendwie scheinen Deine Pfadangaben nicht zu stimmen. Überprüfe mal Projekt|Optionen
|
Das musst Du mir jetzt mal näher erklären was Du damit jetzt meinst, ich stand noch nie vor so einem Problem, folgerichtig weiß ich nicht was ich da wo überprüfen soll...
|
Hi,
in der USES - Liste ist eine Unit aufgeführt, die der Compiler nicht findet. Also ist zumindest eine DCU nicht vorhanden oder sie wird nicht gefunden. Also gehe mal hin und setze ein Panel auf die Form, compiliere das ganze und schau nach, ob der Fehler immer noch kommt. |
Nein, auch mit Panel kommt die Fehlermeldung...und die DCUs sind auch alle vorhanden...waren kann es dann liegen?
|
hehe,
wie befürchtet. :mrgreen: Da ist ein Pfad bei den Projekt-Optionen falsch gesetzt, mehr nicht. Zieh mal einen Button auf eine neue Form und compiliere. Dann kommt der Fehler vermutlich auch. |
hi,
kann das sein, das er damit ein problem hat, das sich vielleicht kein Panel auf der MainForm befindet?
Delphi-Quellcode:
gruss haegar
with Application.MainForm.FindComponent ('PanHalle' + InttoStr(i))as TPanel do
|
Nein, interessanter Weise passiert das nicht wenn ich einen neuen Button auf der MainForm (auf der sich nicht nur ein Panel, sondern gleich 40 befinden...@haegar) aufziehe
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 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