![]() |
Procedure nicht sichtbar...
Hallo, ich habe das Problem, das die proceduren der eingebundene Unit in meinen anderen Units nicht sichtbar sind. Wahrscheinlich ein Anfängerproblem. Wer kann helfen ?
PS: in den anderen Units ist diese in Uses eingebunden.
Delphi-Quellcode:
unit ShutDown;
interface uses Windows, Messages, SysUtils, Classes; type TShutDown = class(TObject) public procedure Shutdown(PowerOff,Force :boolean); procedure Ruhezustand(Force :boolean); procedure Standby(Force :boolean); procedure Logoff(Force : boolean); procedure Restart(Force :boolean); procedure GetPrivileges; end; implementation procedure TShutDown.GetPrivileges; //Rechte um runterzufahren holen. ... ... ... |
Re: Procedure nicht sichtbar...
In deinem Fall sind die Prozeduren Methoden deiner Form. Du kannst Sie daher nur über
Delphi-Quellcode:
aufrufen - oder du machst es schön und gibst die Methoden aus der Form raus - in eine extra Unit ;)
NameDerInstanzDeinerForm.Funktionsname();
Dust Signs |
Re: Procedure nicht sichtbar...
Warum hast du dir deinen Avatar ausgesucht? Der würde fast passen :mrgreen:
Zitat:
Um diese Methoden zu verwenden muss man mit Objekten (und Klassen) arbeiten, man kann die Prozeduren nicht einfach aufrufen ;) Beispiel:
Delphi-Quellcode:
var
ShutdownObj: TShutdown; begin ShutdownObj := TShutdown.Create; // Das zuerst try ShutdownObj.GetPrivileges; // Das geht jetzt ... finally FreeAndNil (ShutdownObj); // Und wieder freigeben ... end; end; |
Re: Procedure nicht sichtbar...
Ups :oops: Hab den Code wohl zu schnell angeschaut; eine Instanz braucht er trotzdem...
Dust Signs |
Re: Procedure nicht sichtbar...
Öhm, diese unit hat keine Form und soll eigendlich auch nicht. Deshalb kann ich die instanz auch nicht aufrufen, bzw nur TShutDown.create, aber nicht die Proceduren. :oops:
|
Re: Procedure nicht sichtbar...
|
Re: Procedure nicht sichtbar...
Zitat:
|
Re: Procedure nicht sichtbar...
Ist das eine geeignete Art und Weise ? Funktioniert aber ist es üblich ?
Delphi-Quellcode:
Hier ein Beispielaufruf aus einer anderen Unit/Form:
unit ShutDown;
interface uses Windows, Messages, SysUtils, Classes; type TShutDown = class(TObject) private constructor create; destructor destroy; public procedure Shutdown(PowerOff,Force :boolean); procedure Ruhezustand(Force :boolean); procedure Standby(Force :boolean); procedure Logoff(Force : boolean); procedure Restart(Force :boolean); procedure GetPrivileges; end; var ShutDownObj : TShutDown; PowerOff: boolean; implementation constructor TShutDown.create; begin ShutdownObj := TShutdown.Create; end; destructor TShutDown.destroy; begin ShutDownObj.Free; inherited Destroy; end; procedure TShutDown.GetPrivileges; //Rechte um runterzufahren holen. ... ... ...
Delphi-Quellcode:
procedure Tmediaplayer_frm.Image14Click(Sender: TObject);
begin case config_frm.ShutdownSelect.ItemIndex of 0: begin Main_frm.Close; end; 1: begin Main_frm.Close; ShutDownObj.Shutdown(PowerOff,config_frm.ShutDown_force_select.Checked); end; end; end; |
Re: Procedure nicht sichtbar...
Warum instanzierst du im Konstruktor die eigene Klasse? Du brauchst eigentlich auch keinen eigenen Konstruktor:
Delphi-Quellcode:
Und wozu die globale Variable PowerOff?
unit ShutDown;
interface uses Windows, Messages; type TShutDown = class(TObject) private procedure GetPrivileges; public procedure Shutdown(PowerOff,Force :boolean); procedure Ruhezustand(Force :boolean); procedure Standby(Force :boolean); procedure Logoff(Force : boolean); procedure Restart(Force :boolean); end; var PowerOff: boolean; implementation procedure TShutDown.GetPrivileges; //Rechte um runterzufahren holen. //... |
Re: Procedure nicht sichtbar...
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:21 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