Autor Beitrag
KeinePanik
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 131



BeitragVerfasst: Fr 03.01.03 19:08 
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
[...]
var {meine Variablen}

procedure sowieso;

implementation
[...]

procedure sowieso;
begin
showmessage('irgendwas');
end;


solang ich die Prozedur dort lasse wo sie ist, ist alles OK ... Nun will ich diese Prozedur aber auch von einer anderen Form aufrufen z.B. von Form3 ... wenn ich die Prozedur jetzt von Form3 so aufrufe
ausblenden Quelltext
1:
form1.sowieso;					

wird sie nicht gefunden ...

Setze ich die Deklaration der Prozedur jetzt in den "Public-Bereich" funktioniert das ganze auch nicht ...

Wie deklariere ich die Prozedur nun so, dass ich sie auch von anderen "Forms" aufrufen kann ?? ...

_________________
Es gibt keine dummen Fragen ... Nur blöde Antworten !!!
DaFox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 189



BeitragVerfasst: Fr 03.01.03 19:32 
Hi!

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
[...] 
public
  procedure sowieso; 
[...]

implementation 
[...] 

procedure Form1.sowieso; 
begin 
showmessage('irgendwas'); 
end;


Gruß,
Markus
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Fr 03.01.03 20:05 
Ich glaube nicht, dass KeinePanik eine Klasse einsetzen will.
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
unit MyUnit;
interface
uses Dialogs;
{ Hier die Deklarationen der global verfügbaren Variablen, Konstaten, Typen, Klassen und Funktionen. Bei Funktionen aber nur der Funktionskopf. In diesem Bereich wird die Schnittstelle (=Interface) bereitgestellt. }

procedure MyFunc(const s: String);

implementation

{ Hier werden die für diese Unit "privaten" Variablen, Konstanten, Typen, Klassen deklariert. Die Funktionen und Prozeduren werden hier "ausprogrammiert" (=implementiert => implementation) }

procedure MyFunc(const s: String);
begin
  ShowMessage(s);
end;

end.

_________________
Ist Zeit wirklich Geld?
DaFox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 189



BeitragVerfasst: Fr 03.01.03 20:19 
AndyB hat folgendes geschrieben:
Ich glaube nicht, dass KeinePanik eine Klasse einsetzen will.

Prima, dann ist die Antwort noch kürzer! :D

"Unit1" siehe Dein Code, KeinePanik.
"Unit2":
ausblenden Quelltext
1:
2:
uses
  Unit1;


Gruß,
Markus
KeinePanik Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 131



BeitragVerfasst: Sa 04.01.03 00:41 
@dafox:

Genauso hab ich es ausprobiert ... rufe ich jetzt aber die Prozedur von z.B. Form3 auf, ist sie unbekannt bzw. "nicht genügend Forward - bzw. external-Deklaration ... ...

@andy:

Ich will keine Klasse einsetzen, sondern einfach meine Prozedur, die in Form1 deklariert ist und auch der "quelltext" der Prozedur steht, von einem anderen Formular (Form3) aufrufen ... das "showmessage" ist nur ein einfaches Beispiel, um zur Laufzeit zu erkennen, dass die Prozedur tatsächlich aufgerufen wird ... in der eigentlichen Prozedur steht was anderes ... ausserdem verlangt die prozedur keine Parameter ...

nochmal @dafox :

Mit den USes hab ich schon beachtet ... also bei form3 steht in den Uses auch die Form1 ... also daran liegt es auch nicht ...

_________________
Es gibt keine dummen Fragen ... Nur blöde Antworten !!!
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Sa 04.01.03 01:51 
KeinePanik hat folgendes geschrieben:
@andy:
Ich will keine Klasse einsetzen

Und was habe ich geschrieben?
AndyB hat folgendes geschrieben:
Ich glaube nicht, dass KeinePanik eine Klasse einsetzen will.

_________________
Ist Zeit wirklich Geld?
KeinePanik Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 131



BeitragVerfasst: Sa 04.01.03 02:56 
@andy:

Sorry .... überlesen ... entschuldigung ,....

Aber dein Code bringt auch mnicht wirklich weiter, da ich ihn (in abgewandelter Form) so schon gepostet habe und er eben so nicht funktioniert ....

_________________
Es gibt keine dummen Fragen ... Nur blöde Antworten !!!
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: So 05.01.03 00:49 
KeinePanik hat folgendes geschrieben:
Ich will keine Klasse einsetzen, sondern einfach meine Prozedur, die in Form1 deklariert ist

Ist die Procedure nun in einer Klasse deklariert oder nicht? Wenn Du diese in tForm1 deklariert ist ist die Procedure Bestandteil der Klasse tForm1 und muss dann so implementiert werden:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
Type 
  tForm1 = {...}
    public
      procedure test;
    end;

{...}

procedure tForm1.test;
begin
end;

Aufgerufen wird die Procedure dann zum Beispiel so:
ausblenden Quelltext
1:
Form1.test;					


Gruß
TINO