Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Prozedur aus Form1 in Form2 aufrufen? (https://www.delphipraxis.net/153115-prozedur-aus-form1-form2-aufrufen.html)

cosypanther 21. Jul 2010 17:18

Prozedur aus Form1 in Form2 aufrufen?
 
Hallo,

mich beschäftigt derzeit die im Titel gestellte Frage.
In Unit1.pas bzw. Form1 habe ich eine Prozedur 'stop'.

Bisher hatte ich dort einen Button, der 'stop' aufgerufen hat. Wollte ich dann 'stop' in Form2 durchlaufen lassen, habe ich dies mit Form1.Button1.Click getan.

Wenn ich allerdings in Form2 einfach stop; bzw. form1.stop; schreibe, dann erhalte ich beim Kompilieren die Meldung
Zitat:

[Pascal Fehler] Unit2.pas(52): E2003 Undefinierter Bezeichner: 'stop'
Gibt es dort eine elegantere Lösung ohne diesen Umweg über einen Button?

Bin gespannt!

Viele Grüße,
cosypanther

himitsu 21. Jul 2010 17:22

AW: Prozedur aus Form1 in Form2 aufrufen?
 
wie/wo hast du dein Stop denn deklariert?
unter private oder protected bringts natürlich nichts.

cosypanther 21. Jul 2010 17:30

AW: Prozedur aus Form1 in Form2 aufrufen?
 
Ganz normal unter implementation, vor
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
//(...)
end;

DeddyH 21. Jul 2010 18:16

AW: Prozedur aus Form1 in Form2 aufrufen?
 
Ist das denn eine Methode von Form1 oder eine reguläre Prozedur?

cosypanther 21. Jul 2010 18:34

AW: Prozedur aus Form1 in Form2 aufrufen?
 
Von Form1. :?

DeddyH 21. Jul 2010 18:39

AW: Prozedur aus Form1 in Form2 aufrufen?
 
Hast Du sie in den private- oder protected-Abschnitt gesetzt? In dem Fall verschieb die Deklaration mal nach public, dann sollte sie auch sichtbar sein.

cosypanther 21. Jul 2010 18:50

AW: Prozedur aus Form1 in Form2 aufrufen?
 
Mhh.. in keinem von beiden:
Delphi-Quellcode:
private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

//Variablen (...)

implementation

uses Unit2;

{$R *.dfm}

procedure stop;
:?:

himitsu 21. Jul 2010 18:55

AW: Prozedur aus Form1 in Form2 aufrufen?
 
Also doch nicht in Form1 ... schau mal wo dein Button1Click noch deklariert ist.

Unit-Extern kannst du nur auf was Zugreifen, welches im Interface-Abschnitt deklariert ist.

Zitat:

//Variablen (...)
globale Variablen sind böse

cosypanther 21. Jul 2010 19:11

AW: Prozedur aus Form1 in Form2 aufrufen?
 
Dann klappts wohl nicht leichter, wenns in einer anderen Unit ist. =P
Danke dennoch!

Kenne mich nicht so mit dem Aufbau aus.

Zitat:

Zitat von himitsu (Beitrag 1036678)
Zitat:

//Variablen (...)
globale Variablen sind böse

Ich weiß, aber für mein kleines Projekt ist das unrelevant.
Da lohnt sich der Aufwand für mich nicht, die Variablen andauernd zu übergeben.

DeddyH 22. Jul 2010 08:10

AW: Prozedur aus Form1 in Form2 aufrufen?
 
Du hast die Antwort nicht richtig gelesen.
Delphi-Quellcode:
unit Bla;

interface

...

procedure stop; //Im interface-Abschnitt bekannt machen

implementation

procedure stop;
begin
  //Code
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:14 Uhr.
Seite 1 von 2  1 2      

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