![]() |
Alle Frames Visible False/Dyn. Methoden zuweisung --> Err
Hallo,
ich habe mir ein kleines Programm geschrieben, womit ich Frames ausblenden kann. Die Thematik, die dahinter steckt ist ein bisschen komplexer. Ich habe es mal ganz einfach dagestellt. Ich suche eine Methode aus einer Klasse. Und führe diese dann aus. Hier mein Code:
Delphi-Quellcode:
Hat jemand eine Idee warum???
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Unit3, Unit2; type TForm1 = class(TForm) Button1: TButton; Frame21: TFrame2; Frame31: TFrame3; procedure DisableFrames(Sender: Tobject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.DisableFrames(Sender: TObject); begin Frame21.Visible:=False; Frame31.Visible:=False; end; procedure TForm1.Button1Click(Sender: TObject); begin TProcedure(Form1.MethodAddress('DisableFrames')); // --> Hier kommt eine zugriffsverletzung end; end.
Delphi-Quellcode:
Ich muss das leider so machen, weil eine Externe Datei entscheidet, mit welchen Click welche Methode aus welcher Klasse ausgeführt wird.
TProcedure(Form1.MethodAddress('DisableFrames'));
MFG Christian18 |
Re: Alle Frames Visible False/Dyn. Methoden zuweisung -->
schau mal:
Delphi-Quellcode:
Was schließen wir daraus? MethodAddress findet deine Procedure nicht und gibt nil zurück. Kein Wunder, dass du ne exception bekommst.if Form1.MethodAddress('DisableFrames')=nil then showmessage('existiert nicht'); Wäre es nicht sinnvoller eine öffentliche procedure zu definieren und die dann zuzuweisen?
Delphi-Quellcode:
public
MyProcedure:TProcedure; //... MyProcedure:=DisableFrames; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz