Einzelnen Beitrag anzeigen

Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#13

Re: Prüfen, ob eine Klasse eine bestimmte Methode enthält

  Alt 17. Mär 2008, 18:25
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.
  Mit Zitat antworten Zitat