AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Funktion an Funktion übergeben.

Ein Thema von samson · begonnen am 12. Sep 2003 · letzter Beitrag vom 12. Sep 2003
Antwort Antwort
Rumpi

Registriert seit: 26. Aug 2003
Ort: Berlin
72 Beiträge
 
#1

Re: Funktion an Funktion übergeben.

  Alt 12. Sep 2003, 10:58
Ich hoffe ich habe das richtig verstanden !

Hier ein kleines Programm dazu.

Du kannst eine Function in einem anderen Formular ( Form2)
rufen und bei der Übergabe bestimmen was am ende
"in dem Übergebenden Formular (Form1)"
ausgeführt werden soll.

Form2 muss die Methoden von Form1 und
Form1 nicht die von Form2 kennen bis
auf die gemeinsame Function die gerufen werden kann.

Teste einfach mal durch ob es das ist was du brauchst.

mfg Rumpi

Code:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
    FMyFunction : TNotifyEvent;
    procedure MyFunction( Sender: TObject );
  public
    { Public declarations }
    procedure CallFunction( Func: TNotifyEvent );
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
begin
  FMyFunction := MyFunction;
end;


procedure TForm1.CallFunction( Func: TNotifyEvent );
begin
  MyFunction( Self );
  if Assigned( Func ) and (@Func <> MethodAddress( 'MyFunction' )) then
    Func( nil );
end;

procedure TForm1.MyFunction( Sender: TObject );
begin
  Caption := 'MyFunction ' + Name;
  Sleep( 500 );
  Caption := '';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  CallFunction( nil );
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Form2.CallFunction( FMyFunction );
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  if Not Form2.Visible then
    Form2.Show;
end;

end.

//**********************************************************

unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm2 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    FMyFunction : TNotifyEvent;
    { Private declarations }
    procedure MyFunction( Sender: TObject );
  public
    { Public declarations }
    procedure CallFunction( Func: TNotifyEvent );
  end;

var
  Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);
begin
  FMyFunction := MyFunction;
end;


procedure TForm2.CallFunction( Func: TNotifyEvent );
begin
  MyFunction( Self );
  if Assigned( Func ) and (@Func <> MethodAddress( 'MyFunction' )) then
    Func( nil );
end;

procedure TForm2.MyFunction( Sender: TObject );
begin
  Caption := 'Function ' + Name;
  Sleep( 500 );
  Caption := '';
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
   Form1.CallFunction( FMyFunction );
end;

end.
Angehängte Dateien
Dateityp: zip function.zip (202,4 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:06 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