Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Class TPanel not found (https://www.delphipraxis.net/3962-class-tpanel-not-found.html)

Hellcat 9. Apr 2003 09:40


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:
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.
Die dazugehörige Unit sieht so aus:
Delphi-Quellcode:
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.
Und hier noch mal die beiden Funktionen die von der Unit aus aufgerufen werden:
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;

Hansa 9. Apr 2003 10:08

offensichtlich ist da etwas von TPanel abgeleitet, glaube, es ist TButton. Irgendwie scheinen Deine Pfadangaben nicht zu stimmen. Überprüfe mal Projekt|Optionen

Hellcat 9. Apr 2003 11:45

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...

Hansa 9. Apr 2003 11:58

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.

Hellcat 9. Apr 2003 12:21

Nein, auch mit Panel kommt die Fehlermeldung...und die DCUs sind auch alle vorhanden...waren kann es dann liegen?

Hansa 9. Apr 2003 12:28

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.

Haegar 9. Apr 2003 12:30

hi,
kann das sein, das er damit ein problem hat, das sich vielleicht kein Panel auf der MainForm befindet?
Delphi-Quellcode:
with Application.MainForm.FindComponent ('PanHalle' + InttoStr(i))as TPanel do
gruss haegar

Hellcat 9. Apr 2003 13:35

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 17:18 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