![]() |
Self welche Unit ?
ich will in einer Unit eine Form modal öffnen(ontopstyle)
mein Units Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, ExtCtrls, ComCtrls, StdCtrls, Vari_Unit, Ini_Unit; ich dachte self ist in Classes aber ne, ich bekomme "self ist nicht definiert" |
Re: Self welche Unit ?
Moin Homer,
self beschreibt immer das Objekt in dessen Methode Du Dich gerade befindest. Ausserhalb einer Methode gibt es das nicht.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin self.Caption := 'Hallo'; // Self ist hier gleich dem Inhalt von Form1 end; |
Re: Self welche Unit ?
nein ich habe es nicht in form
ich hab eine eigne unit //Wenn Fenster noch nicht onShow ist if (ProgressBar_Form.Showing = False) then begin ProgressBar_Form := TProgressBar_Form.Create(self); try ProgressBar_Form.ShowModal; finally ProgressBar_Form.Free; end; end; |
Re: Self welche Unit ?
Moin Homer,
Das Formular war nur ein Beispiel. Anderes Beispiel:
Delphi-Quellcode:
type
TMyClass = class(TObject) private FList : TStringList; public constructor Create(const AsValue : string); destructor Destroy; override; procedure Add(const AsValue : string); end; implementation constructor TMyClass.Create(const AsValue : string); begin inherited Create; FList := TStringList.Create; self.Add(AsValue); // Self ist gleich der Variablen, die die Instanz der Klasse TMyClass enthält end; destructor TMyClass.Destroy; begin FreeAndNil(FList); inherited; end; procedure TMyClass.Add(const AsValue : string); begin FList.Add(AsValue); end; |
Re: Self welche Unit ?
ich brauch das alles?
man man jetzt hast du es aber mit mir wenn ich es für eine form haben will mus ich nur das mit den string gegen tForm tauschen ? ich will eigentlich nur ein fenster modal öffnen und das aus einer anderen unit |
Re: Self welche Unit ?
Moin Homer,
ich wollte Dir nur mal ein anderes Beispiel dafür zeigen, wo es self gibt. Self gibt es ausschliesslich innerhalb einer Methode, also der Prozedur oder Funktion einer Klasse. Ansonsten musst Du ersatzweise den Namen der Variablen angeben, die das gewünschte Objekt enthält. [EDIT] Ausserdem: Wenn Du das Formular anschliessend gleich wieder freigibst, brauchst Du auch keinen Owner anzugeben, dann reicht nil. [/EDIT] |
Re: Self welche Unit ?
also hier dann tForm ?
|
Re: Self welche Unit ?
Moin Homer,
TForm wäre der Klassenname. Du bräuchtest aber ein Objekt. |
Re: Self welche Unit ?
Danke
Code:
if (ProgressBar_Form.Showing = False) then
begin ProgressBar_Form := TProgressBar_Form.Create([color=red]ProgressBar_Form[/color]); try ProgressBar_Form.ShowModal; finally ProgressBar_Form.Free; end; end; |
Re: Self welche Unit ?
Meinte ich doch :oops:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:00 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 by Thomas Breitkreuz