Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Procedure zuweissung (https://www.delphipraxis.net/95040-procedure-zuweissung.html)

poterp 29. Jun 2007 18:28


Procedure zuweissung
 
Hallo Experte,
ich habe ein Problem uzw. ich habe eine Anwendung mit 2 Units (Unit1 und Unit2).
ich habe eine Procedure auf Units2 geschrieben und jetzt möchte ich diese Procedure auf Unit1 zuweisen. wie kann ich es am besten lösen???
z.B.:
Delphi-Quellcode:
Unit unit1
.....
procedure machwas(X: Real = 1.0; I: Integer = 0; S: string = '');
begin
end;
und jetzt dachte bei Unit2 wurde ich sowas machen
Delphi-Quellcode:
unit unit2
.....

procedure wasdenn(X: Real = 1.0; I: Integer = 0; S: string = '');
begin
form1.machwas();
end;
es geht aber nicht. was jemand wie es geht?
danke
poter

Cyberstorm 29. Jun 2007 18:49

Re: Procedure zuweissung
 
So gehts:

Form1:
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    procedure machwas;
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.machwas;
begin
  showmessage('hello world');
end;

end.

Form2:
Delphi-Quellcode:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

uses Unit1;

{$R *.DFM}

procedure TForm2.Button1Click(Sender: TObject);
begin
  form1.machwas;
end;

end.

marabu 29. Jun 2007 18:50

Re: Procedure zuweissung
 
Hallo Poter,

als erstes musst du entscheiden, ob deine Prozedur auf Objektvariablen der Form Zugriff nimmt. Wenn ja, dann mach die Prozedur zu einer Methode der Form. Du erreichst die Prozedur dann über ihren qualifizierten Namen {Unit1}.Form1.MachWas().

Wenn die Prozedur von der Form1 vollständig entkoppelt werden kann, dann würde ich sie in einer eigenen Unit3 unterbringen. Dort gehört dann der Prozedurkopf in den Abschnitt "Interface" un die vollständige Prozedur in den Abschnitt "Implementation". Nachdem du die Unit3 in die Uses-Klausel von Unit2 aufgenommen hast, kannst du MachWas() überall in Unit2 aufrufen.

Grüße vom marabu

poterp 29. Jun 2007 21:12

Re: Procedure zuweissung
 
Danke Marabu, ich werde es probieren:)
bist ein echter Marabu??? -)
grüß
poter

marabu 29. Jun 2007 21:48

Re: Procedure zuweissung
 
Hallo,

Zitat:

Zitat von poterp
... bist ein echter Marabu? ...

aber klar doch, hier ein Bild von mir. Ist schon etwas älter. Ich hatte damals die Beine rasiert. Du würdest mich jetzt nicht wieder erkennen, glaube ich. klick

Gute Nacht


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz