AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Self welche Unit ?

Ein Thema von HomerGER · begonnen am 9. Nov 2003 · letzter Beitrag vom 12. Nov 2003
Antwort Antwort
Seite 2 von 3     12 3      
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Self welche Unit ?

  Alt 10. Nov 2003, 00:05
Moin Homer,

ein Objekt kann nicht sein eigener Owner sein.
Das geht so also nicht.
Wie gesagt, wenn Du sicherstellst, dass das Fenster wieder freigegeben wird, trag einfach nil ein.
Den Owner brauchst Du nur, wenn Du Delphi dazu veranlassen willst ein Objekt automatisch zerstören zu lassen, wenn dessen Owner zerstört wird.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von HomerGER
HomerGER

Registriert seit: 8. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#12

Re: Self welche Unit ?

  Alt 10. Nov 2003, 00:07
doch so geht es aber
nur mit den Showing leider nicht da bekomme ich ein Fehler
ohne prüfung auf show geht es

aber du hast recht das freigeben hab ich vergessen
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Self welche Unit ?

  Alt 10. Nov 2003, 00:11
Moin Homer,

das Freigeben hast Du nicht vergessen.
Du hast ja

ProgressBar_Form.Free geschrieben.
Das Showing muss schiefgehen, weil das Objekt zu dem Zeitpunkt noch gar nicht existiert.
Und da Du das sichergestellt hast, mit dem try/finally Block, brauchst Du das auch nicht abzufragen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von HomerGER
HomerGER

Registriert seit: 8. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#14

Re: Self welche Unit ?

  Alt 10. Nov 2003, 00:14
leider bekomme ich eine fehler
weil die showing for der try ist
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#15

Re: Self welche Unit ?

  Alt 10. Nov 2003, 02:53
Du könntest in der Unit eine Status-Variable anlegen, deren Wert du selber änderst, etwa so:

Delphi-Quellcode:
var
  PBFShowing : bool = false;
Delphi-Quellcode:
if (PBFShowing = False) then
begin
PBFShowing := true;
ProgressBar_Form := TProgressBar_Form.Create(nil);
try
ProgressBar_Form.ShowModal;
finally
ProgressBar_Form.Free;
PBFShowing := false;
end;
end;
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: Self welche Unit ?

  Alt 10. Nov 2003, 20:06
Moin Homer,

warum nicht so?

Delphi-Quellcode:
if ProgressBar_Form = nil then begin
  // Wird gleich wieder freigegeben, dann kann der Owner nil sein.
  ProgressBar_Form := TProgressBar_Form.Create(nil);
  try
    ProgressBar_Form.ShowModal;
  finally
    FreeAndNil(ProgressBar_Form);
  end;
end;
Wobei Du Dir eigentlich auch die Abfrage auf nil sparen kannst, da Du das Formular Modal anzeigen lässt, und es danach garantiert wieder freigibst, womit sichergestellt ist, dass es beim nächsten Aufruf der Routine nicht existiert.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von HomerGER
HomerGER

Registriert seit: 8. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#17

Re: Self welche Unit ?

  Alt 11. Nov 2003, 20:19
hi christian
ich erklär mal was ich eigentlich machen will
ich mit der form meine ProgressBar(dieDicke) starten und das Modal. dadurch wird ja nur das fenster aktiv und man kann nix anderes anklicken, denn solange ich ich was mache oder mein programm soll man nix klicken, sonst gib es ungewollte effekte.
nur wenn ich das fenster öffne bleib leider mein code stehen
ich hab ne unit in der ich die ganzen parameter wie start, end und postion der gauge übergebe, auch das modal öffnen des fensters, die function rufe ich dann auf wenn ich sie brauche unf zum schluss der routine soll das fenster wieder geschlossen werden.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: Self welche Unit ?

  Alt 11. Nov 2003, 20:34
Moin Homer,

dazu könntest Du ein ShowModal faken.

Delphi-Quellcode:
uses unit2;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

var
  frmPB : TForm2;

begin
  frmPB := TForm2.Create(nil);
  try
    self.Enabled := false;
    frmPB.Show;
    while frmPB.Visible do begin
      sleep(100);
      frmPB.ProgressBar1.StepIt;
      if frmPB.ProgressBar1.Position >= frmPB.ProgressBar1.Max then frmPB.Close;
      Application.ProcessMessages;
    end;
  finally
    FreeAndNil(frmPB);
    self.Enabled := true;
  end;
end;
Der Code in Unit1 läuft, die Progressbar in Form2 läuft, und Form1 ist nicht anwählbar.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von HomerGER
HomerGER

Registriert seit: 8. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#19

Re: Self welche Unit ?

  Alt 11. Nov 2003, 21:32
danke
werde es gleich mal testen
  Mit Zitat antworten Zitat
Benutzerbild von HomerGER
HomerGER

Registriert seit: 8. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#20

Re: Self welche Unit ?

  Alt 11. Nov 2003, 22:09
mist
das gleich was wir schon mal hatten er kenn self nicht
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:24 Uhr.
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