Hallo,
ich bins nochmal. Ich glaube meine Beschreibung was ein bisschen dürftig, da keine antworten kommen. Ich probiere es einfach nochmal.
Ich habe eine Super Klasse TFMainForm. Diese Enthält alle Grafischen elemente. Dann habe ich eine Klasse TFMain abgeleitet.
Delphi-Quellcode:
type
TFMainForm = class(TForm)
PMain: TPanel;
ITop: TImage;
IBottom: TImage;
private
Prg: TProgram;
FMenuBtn: Array of TImage;
FMenuText: Array of TLabel;
FMenuActive: TImage;
{ Private-Deklarationen }
public
procedure CreateMenu(AForm: TForm; AClass : TClass);
procedure MoveMenu(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure ClickMenu(Sender: TObject);
procedure LeaveMenu(Sender: TObject);
property MenuActive: TImage Read FMenuActive Write FMenuActive;
{ Public-Deklarationen }
end;
Diese Klasse erzeugt auch das Menu, welches ich aus der
Xml Datei lade. Diese Klasse wird auch nicht created. Also wird auch nie angezeigt. Angezeigt wird immer nur die TFMain.
Delphi-Quellcode:
type
TFMain = class(TFMainForm)
procedure FormCreate(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormShow(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Neu(Sender: TObject);
private
Prg: TProgram;
Bg: TBackground;
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
Die Methode der Klasse TFMain ruft die Methode CreateMenu der Klasse TFMainForm auf. CreateMenu enthält auch die zuweisung des OnClick ereignisses auf die Images. Die Methoden für die OnClick Ereignisse befinden sich jedoch wieder in der Klasse TFMain.
Und wenn ich nun auf ein Image klicke, soll diese Funktionalität aufgeführt werden:
Delphi-Quellcode:
procedure TFMain.Neu(Sender: TObject);
begin
MenuActive.Picture.LoadFromFile(Prg.GetAppPath + 'Img\BtnLeave.bmp');
MenuActive:=TImage(Sender);
end;
Das passiert aber nicht, da eine
Exception kommt. Und ich weiss nicht wieso.