Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Inkompatible Typen: 'TPanel' und 'TComponent' (https://www.delphipraxis.net/66627-inkompatible-typen-tpanel-und-tcomponent.html)

Andreas L. 1. Apr 2006 16:40


Inkompatible Typen: 'TPanel' und 'TComponent'
 
Ich hab mal wieder ein Problem...

Bei folgenden Code
Delphi-Quellcode:
ExPanel:=(Parent as TPanel).FindComponent(ExPanels.Strings[i]);
kommt beim kompilieren die Meldung

Zitat:

Inkompatible Typen: 'TPanel' und 'TComponent'
Hier die komplette Funktion:
Delphi-Quellcode:
function RemoveAllExPanels(Parent: TPanel):Boolean;
var
 ExPanel: TPanel;
 i: integer;
begin
 //Überprüfen ob ExPanels vorhanden sind
 if ExPanels.Count>-1 then
  begin
   //ggf. vorhandene Markierungen aufheben
   if (MarkedExPanel is TPanel) then
    begin
     MarkExPanel(MarkedExPanel);
     FreeAndNil(MarkedExPanel);
    end;
    //jedes ExPanel nacheinander löschen
    for i:=0 to ExPanels.Count-1 do
     begin
     ExPanel:=(Parent as TPanel).FindComponent(ExPanels.Strings[i]);
     FreeAndNil(ExPanel);
     end;
   ExPanels.Clear;
   Result:=true;
  end
 else
  begin
   Result:=false;
  end;
end;
Ich verstehe einfach nicht was an dieser Zeile falsch sein soll... Könnt ihr mir helfen?

MStoll 1. Apr 2006 17:03

Re: Inkompatible Typen: 'TPanel' und 'TComponent'
 
Also, wie ich das sehe, ist bei dir Parent im Prozedurkopf bereits als TPanel deklariert, also ist das "as" total überflüssig.

Ich würde schreiben:
Delphi-Quellcode:
ExPanel := Parent.FindComponent(ExPanels.Strings[i]);
Gruß
Michael

ste_ett 1. Apr 2006 17:05

Re: Inkompatible Typen: 'TPanel' und 'TComponent'
 
FindComponent liefert TComponent.
Das musst du umcasten, oder Expanel als TComponent deklarieren. :)

Andreas L. 1. Apr 2006 17:08

Re: Inkompatible Typen: 'TPanel' und 'TComponent'
 
Zitat:

Zitat von ste_ett
FindComponent liefert TComponent.
Das musst du umcasten, oder Expanel als TComponent deklarieren. :)

Funktioniert! Vielen Dank :thumb:

MStoll 1. Apr 2006 17:11

Re: Inkompatible Typen: 'TPanel' und 'TComponent'
 
Ok, sorry @onlinehome, ich hab das Problem falsch interpretiert und daher nicht genauer geguckt. ;)


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