![]() |
Eine Procedure in Form1 aus Form2 heraus ausführen
Ich will die Procedure TForm1.TabSheet2Exit (die aufgerufen wird wenn ich ESC drücke, aber nur in Form1) von der Form2 aus aufrufen. Doch irgendwie klappt es nicht ich bin ratlos. :?: :?:
|
Re: Eine Procedure in Form1 aus Form2 heraus ausführen
Hi!
Du musst die entsprechende Unit bei den Uses einbinden und dann mit Form1.entprechendeprocedure aufrufen. Ciao fkerber |
Re: Eine Procedure in Form1 aus Form2 heraus ausführen
Nimm die Unit von Form1 in den Uses der Form2 auf und ruf die Prozedur mit vorangestelleten Form-Name auf.
|
Re: Eine Procedure in Form1 aus Form2 heraus ausführen
Tschuldigung, bin neu in Delphi, was ist eine Uses?
|
Re: Eine Procedure in Form1 aus Form2 heraus ausführen
Eine Liste:
Delphi-Quellcode:
Schreib die Unit einfach hinter das 2. Uses, wenn es keins gibt, schreibs selber hin.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, DB, DBTables, Grids, DBGrids, ExtCtrls, DBCtrls, StdCtrls; type TForm1 = class(TForm) private { Private-Deklarationen } public Funktion: Integer; { Public-Deklarationen } end; var Form1: TForm1; implementation uses Unit2; {$R *.dfm} Gruß DelphiFreund |
Re: Eine Procedure in Form1 aus Form2 heraus ausführen
Ja mit den Uses ist es klar, allerdings steh ich immer noch auf dem Schlauch (muss wohl dran liegen dass ich mir in meinem Zimmer die Birne abschwitze) da er den schönen Fehler bringt "unzureichende Parameter". Hab ich vielleicht etwas beim Code vergessen (wahrscheinlich ist es eine dumme Frage)
Delphi-Quellcode:
?
Form1.TabSheet2Exit ;
|
Re: Eine Procedure in Form1 aus Form2 heraus ausführen
Schau Dir doch mal an, was für Argumente (Parameter) bei TabSheet2Exit auf Form 1 erwartet werden. Die musst Du logischerweise mit übergeben.
|
Re: Eine Procedure in Form1 aus Form2 heraus ausführen
Parameter ist wie bei allen Ereignisorientierten Funktionen von Objekten mindestens (Sender: TObject), möglicherweise auch noch mehr.
Gruß DelphiFreund |
Re: Eine Procedure in Form1 aus Form2 heraus ausführen
Könntest du mir vielleicht ein Beispiel geben??? (hab das noch nie gemacht)
Delphi-Quellcode:
So heißt die Procedure die ich aufrufen will.
procedure TForm1.TabSheet2Exit(Sender: TObject);
|
Re: Eine Procedure in Form1 aus Form2 heraus ausführen
Als Parameter wird ein TObject erwartet, also könntest du irgend ein TObject angeben oder einfach "nil" da ein TObject nichts anderes als ein zeiger ist. du könntest auch einen Button etc. angeben..
Delphi-Quellcode:
Form1.TabSheet2Exit(nil);
|
Re: Eine Procedure in Form1 aus Form2 heraus ausführen
Delphi-Quellcode:
procedure TForm1.FormActivate(Sender: TObject);
var i: integer; begin end; procedure TForm1.Button1Click(Sender: TObject); var Starten: TObject; begin Form1.FormActivate(Starten); end; Gruß DelphiFreund |
Re: Eine Procedure in Form1 aus Form2 heraus ausführen
Heissa.. ein nicht instanziertes Objekt übergeben? Ist nicht gut... führt in diesem Fall jetzt zwar nicht zu einer AccVio, da nur die adresse des reservierten aber ungenutzten Speichers übergeben wird, aber sobald Du versuchst drauf zuzugreifen knallt das ganz gewaltig.
|
Re: Eine Procedure in Form1 aus Form2 heraus ausführen
@Phoenix: Wie würdest du das denn machen? Íst doch praktisch, du kannst dann auch:
Delphi-Quellcode:
machen.
if Sender = Starten then begin
...; end; Gruß DelphiFreund |
Re: Eine Procedure in Form1 aus Form2 heraus ausführen
Weglassen, geht ja leider nicht.
Edit1: Tut mir leid, Beitrag von SirThornberry nicht gelesen. |
Re: Eine Procedure in Form1 aus Form2 heraus ausführen
Zitat:
Delphi-Quellcode:
...ich weiß nur nicht was du damit erreichen willst?!?!?
Form1.TabSheet2.OnExit(nil);
Greetz |
Re: Eine Procedure in Form1 aus Form2 heraus ausführen
@onlinehome: Hat schon SirThornberry gesagt. Aber du hast recht, so wärs besser:
Delphi-Quellcode:
procedure TForm1.TabSheet1.Exit(Sender: TObject);
var k: Integer; begin MacheDiesUndDas(2, k); end; procedure TForm2.MacheDiesUndDas2; var k: Integer; begin MacheDiesUndDas(1, k); end; procedure MacheDiesUndDas(i: Integer; var K: Integer); begin K:= i + 5; end; |
Re: Eine Procedure in Form1 aus Form2 heraus ausführen
Ja hilft mir ganz toll. Klappt auch alles. Aber was eigentlich ist nil???
|
Re: Eine Procedure in Form1 aus Form2 heraus ausführen
nil ist nichts anderes als 0 wird aber bei pointern verwendet. Zeigt also nirgends hinn bzw eben an Position 0
|
Re: Eine Procedure in Form1 aus Form2 heraus ausführen
Danke für eure hilfreichen und zahlreichen Beiträge.
Danke!!!! :party: :party: :party: |
Re: Eine Procedure in Form1 aus Form2 heraus ausführen
ich würde sogar sagen weniger als 0, 0 ist immerhin noch eine Zahl. nil ist nichts.
Gruß DelphiFreund |
Re: Eine Procedure in Form1 aus Form2 heraus ausführen
Hi,
seid ihr noch da? Ich habe eine fast ganz identische Frage die allerdigns durch die Antworten bisher leider nicht beantwortet wurden. Wieso funktioniert es nicht, dass ich die Procedure schreibetextfile (Die sich in Form4 befindet) aufrufen kann? Hier ist der Code von Form5 in der ich die Procedure aufrufen will. Der Compiler meldet: Undefinierter Bezeichner schreibetextfile.
Code:
Danke im Vorraus.
unit Unit5;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm5 = class(TForm) Label1: TLabel; Button1: TButton; Button3: TButton; procedure Button3Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form5: TForm5; implementation uses Mathematik, Unit2, Unit3, Unit4, Unit6; {$R *.dfm} procedure TForm5.Button3Click(Sender: TObject); begin Close; end; procedure TForm5.Button1Click(Sender: TObject); begin deletefile(pfad); Form4.schreibetextfile; end; end. |
Re: Eine Procedure in Form1 aus Form2 heraus ausführen
Diesen Letzten Beitrag zu machen war anscheinend ein Fehler. Ich eröffne einen neues Thema.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:58 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