Die Resource die der Compiler braucht, ist nicht die
Resourcen-datei. Die Programmstruktur sieht folgendermassen
aus:
type
TProgressPanel = class(tform)
Mit TForm als vorfahre kommt dieser Fehler. Wenn ich aber z.B.
TPanel nehme, geht allen ohne Probleme. Kann es sein, dass
TForm nicht als Vorfahre verwendet werden kann ?
Hallo Volker,
bist Du des Wahnsinns, ein TProgressPanel von TForm ableiten zu wollen? (Ist nicht böse gemeint - durch Fehler wird man klug
)
Ich denke mal, Du willst einen Fortschrittsbalken programmieren. Da es sich um ein visuelles Steuerelement handelt, muß es (indirekt) von der Klasse TControl abgeleitet sein. TControl spaltet sich nun in genau zwei Unterklassen auf: TGraphicControl und TWinControl. Der Unterschied zwischen beiden ist, daß ein Objekt vom Typ TWinControl den *Eingabefokus* erhalten kann, eins vom Typ TGraphicControl dagegen nicht. Deshalb sind z. B. TListBox-, TEdit-, TButton-, TCheckBox-Controls, aber auch Formulare (Klasse TForm) alle von TWinControl, die „etwas dümmeren“ Klassen TBevel, TShape, TImage, TPaintBox u. a. dagegen von TGraphicControl abgeleitet.
Für Deinen Zweck ist also höchstwahrscheinlich TGraphicControl die richtige Elternklasse. Dir steht innerhalb einer davon abgeleiteten Klasse intern die virtuelle Methode Paint (wird immer automatisch aufgerufen, wenn Windows ne WM_PAINT-Botschaft schickt, kann aber selbstverständlich auch von Dir zu Aktualisierungszwecken aufgerufen werden) sowie ein Canvas zur Verfügung.
Unterklassen von TForm zu bilden kann in anderem Zusammenhang sehr sinnvoll sein, aber für ne ProgressBar ist es bestimmt nicht der richtige Vorfahr.
Mit freundlichem Gruß
Martin
PS: Dein Resourcenproblem ist dann übrigens auch automatisch vom Tisch.