![]() |
auf procedure einer ander Unit zugreifen
hallo erstmal,
wie greife ich von Unit2 auf eine procedure von Unit 1 zu? ich habe in den public teil schon procedure Auswahl; geschrieben aber da kommt ein fehler beim compilieren kann mir bitte jemand helfen |
Re: auf procedure einer ander Unit zugreifen
Moin Alex,
hast Du auch die unit1 unter uses mit eingetragen? Ist das jetzt eine Prozedur, oder eine Methode? In ersterem Falle würde eintragen unter Public nichts nutzen, ausser Du schreibst im implementation Abschnitt vor den Prozedurnamen noch den Klassenbezeichner, wodurch es dann zu einer Methode wird. Dann musst Du allerdings in der anderen Unit auch noch den Namen der Objektvariablen mit vor den Methodenbezeichner schreiben, um die Methode aufzurufen. |
Re: auf procedure einer ander Unit zugreifen
in diesem Gebiet habe ich eine Wissenslücke in meinem Delphi-Hirnchen.
Gibts irgendwo eine Beschreibung/Übersicht/Erkärung zu der "Methoden-Geschichte"? |
Re: auf procedure einer ander Unit zugreifen
mittlerweile kenne ich mich auf diesem Gebiet recht gut aus und am besten du suchst mal nach OOP im Forum.
oder wie schon oben geschrieben, in den uses die Unit eintragen und dann kannst du mit dem UnitName.MyProcedure auch zugreifen. Luckie hat dazu bestimmt irgendwo ein sehr gutes Tutorial MFg Alex |
Re: auf procedure einer ander Unit zugreifen
Ich habe hier einfach meine Probleme.
In der Unit1 (MainForm) habe ich eine Prozedur worin eine Variable "typ" vorkommt. In der Unit2 (Formular2) wird dieser Variable ein neuer Wert zugewiesen. Dann sollte die Prozedur aus der Unit1 erneut aufgerufen werden, einfach mit dem neuen Wert der Variable "typ". Eine Frage vorweg: Ist das möglich? Habe mich durch diverse Threads gekämpft und bin dabei zum Schluss gekommen, dass es ohne Probleme möglich sein sollte. Bei Implementation der Unit2 habe ich "uses unit1" eingefügt. Jetzt habe ich einfach keine Ahnung, wie ich auf die Prozedur zugreife damit das hinhaut. Ich habe schon von TMainForm.Prozedurname über Prozedurname und MainForm.Prozedurname etc. alles mögliche ausprobiert und bin einfach nie zum Ziel gekommen :( So wie von Alex beschrieben klappt es bei mir irgendwie nicht. Die Prozedur heisst "TMainForm.btn_statsClick". Bei
Delphi-Quellcode:
kommt die Fehlermeldung "Nicht genügend wirkliche Parameter."
unit1.TMainForm.btn_statsClick;
*verzweifel* |
Re: auf procedure einer ander Unit zugreifen
Ich gehe davon aus, dass diese Methode einer Komponente gehört, in diesem Fall einfach ein (nil) dranhängen, dann müsste es gehen.
|
Re: auf procedure einer ander Unit zugreifen
so ein kleines beispiel:
MainForm:
Delphi-Quellcode:
Form2:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TFormName = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } procedure MyOwnProcedure(Wert:Integer); end; var FormName: TFormName; implementation {$R *.dfm} { TForm1 } procedure TFormName.MyOwnProcedure(Wert: Integer); begin Wert := Wert + 5; end; procedure TFormName.Button1Click(Sender: TObject); begin MyOwnProcedure(5); end; end.
Delphi-Quellcode:
Das geht!
unit Unit3;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Unit1, StdCtrls; type TForm3 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form3: TForm3; implementation {$R *.dfm} procedure TForm3.Button1Click(Sender: TObject); begin FormName.MyOwnProcedure(10); end; end. Viel Glück MFG Alex |
Re: auf procedure einer ander Unit zugreifen
*freu**freu**freu**freu**freu*
Jetzt hab ich ja echt so langsam an mir gezweifelt! Vielen Dank euch zweien für die schnellen Antworten und @Alex für das Beispiel! Mit (nil) bin ich leider nicht zum Erfolg gekommen, denn der Hund lag beim
Delphi-Quellcode:
begraben.
unit1.TMainForm.btn_statsClick;
Einfach das TMainForm zu MainForm ändern und gut ist/war/bleibts. :D
Delphi-Quellcode:
Herzlichen Dank nochmal, wie schön, dass sogar ich das noch hingekriegt habe :firejump:
unit1.MainForm.btn_statsClick;
*freu**freu**freu**freu**freu* |
Re: auf procedure einer ander Unit zugreifen
Hi!
Die Angabe der Unit davor kannst du glaube ich weglassen. Ciao Frederic |
Re: auf procedure einer ander Unit zugreifen
Danke :)
Jepp, im Code steht die nimmer drin. Im Forum ists wegen Copy&Paste aus dem alten Post wieder reingerutscht. :oops: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:48 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