Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Self welche Unit ? (https://www.delphipraxis.net/11574-self-welche-unit.html)

HomerGER 9. Nov 2003 23:35


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"

Christian Seehase 9. Nov 2003 23:45

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;

HomerGER 9. Nov 2003 23:47

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;

Christian Seehase 9. Nov 2003 23:52

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;

HomerGER 9. Nov 2003 23:57

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

Christian Seehase 10. Nov 2003 00:00

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]

HomerGER 10. Nov 2003 00:01

Re: Self welche Unit ?
 
also hier dann tForm ?

Christian Seehase 10. Nov 2003 00:02

Re: Self welche Unit ?
 
Moin Homer,

TForm wäre der Klassenname.
Du bräuchtest aber ein Objekt.

HomerGER 10. Nov 2003 00:03

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;

HomerGER 10. Nov 2003 00:04

Re: Self welche Unit ?
 
Meinte ich doch :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:30 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz