![]() |
Auf den Wert einer Proc./Funkt. einer anderen Unit zugreifen
Hallöchen,
ich kenne mich mit dem Zugriff auf andere Units nur sehr mangelhaft aus, deshalb hab ich auch nur spartanisch in diesem Forum suchen können. Es geht mir ganz einfach darum, dass ich aus meiner Haupt-Unit auf eine andere zugreifen möchte, dort einen Wert ermittle und den an die Haupt-Unit zurückgeben will. Das gegenseitige Einbinden in die uses-Klausel geht ja leider nicht. Ich hab das immer irgendwie umgangen, aber das geht mir jetzt auf den Keks. Ich hab's mal so probiert: Haupt-Unit; will Wert aus zweiter Unit benutzen:
Delphi-Quellcode:
Zweite Unit, in der der Code ausgeführt werden soll:
public
function SetWert:boolean; virtual; abstract; procedure Form2.Button1OnClick(Sender: TObject); begin if SetWert then showmessage(''); end;
Delphi-Quellcode:
Leider kommt dann in der Haupt-Unit beim Button-Klick die Fehlermeldung "Abstakter Fehler". Daraus schließe ich, dass was mit der Deklaration nicht stimmt, aber ich komme nicht drauf, was ich da anders schreiben muss :-/ Vielleicht muss auch 'ne get-Methode her, aber ... :?:
public
function SetWert:boolean; virtual; //Ja, ich hab mit den drei Begriffen um mich geschmissen ;-) function Form1.SetWert:boolean; begin result:=True; //Nur so zum Testen end; Ich hoffe, ihr könnt mir da mal wieder weiterhelfen! :gruebel: Liebe Grüße Aike |
Re: Auf den Wert einer Proc./Funkt. einer anderen Unit zugre
in der zeweiten unit muß statt virtual override stehen.
|
Re: Auf den Wert einer Proc./Funkt. einer anderen Unit zugre
Dann gibt mir der Compiler die Fehlermeldung:
"setWert nicht in Basisklasse gefunden." |
Re: Auf den Wert einer Proc./Funkt. einer anderen Unit zugre
Das Schlüsselwort
![]()
Delphi-Quellcode:
und dann (am besten) über
uses ..., uForm1; {oder wie die Unit auch heißt}
Delphi-Quellcode:
aufrufen.
uForm1.form1.setwert
|
Re: Auf den Wert einer Proc./Funkt. einer anderen Unit zugre
Oh, das ist aber hübsch! Funktioniert, danke :hi:
|
Re: Auf den Wert einer Proc./Funkt. einer anderen Unit zugre
Wenn du von deiner Hauptunit eine Funktion in einer anderen Unit ausführen willst, bindest du die andere Unit einfach per uses-Klausel ein und damit hat sich's. Dazu brauchst du keine virtuellen Methoden.
|
Re: Auf den Wert einer Proc./Funkt. einer anderen Unit zugre
Und wenn ich von einer Neben-Unit auf die Haupt-Unit zugreifen will und das mit der Uses-Klausel nicht mehr geht? :-)
|
Re: Auf den Wert einer Proc./Funkt. einer anderen Unit zugre
Dann schreibst du die uses-Klausel in den implementation-Abschnitt.
|
Re: Auf den Wert einer Proc./Funkt. einer anderen Unit zugre
das vergiss mal lieber gleich, mach deinen code so, das du von keiner anderen Unit auf deine Main zugreifen musst, das ist eigendlich immer möglich, denn das schlimmste ist, wenn du kreuzenden Verkehr hast, also die Main wo anders einbindest und die andere in die main.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 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