AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Eigenes Ereignis/Event in TForm mit Zugriff auf Steuerelemente des Forms
Thema durchsuchen
Ansicht
Themen-Optionen

Eigenes Ereignis/Event in TForm mit Zugriff auf Steuerelemente des Forms

Ein Thema von TUX_der_Pinguin · begonnen am 18. Mai 2017 · letzter Beitrag vom 19. Mai 2017
Antwort Antwort
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Eigenes Ereignis/Event in TForm mit Zugriff auf Steuerelemente des Forms

  Alt 18. Mai 2017, 11:26
ok, wenn ich das richtig verstehe....
1. Du erzeugst deinen Progressdialog und weist ihm einen Event zu.
2. Du rufst den Dialog "Modal" auf
3. Dein Timer feuert, ruft den Event auf.
4 Der Event ändert die properties
5. Der Event schließt den Dialog?

Ganz ehrlich den Flow verstehe ich nicht.
Das mit dem Timer habe ich nur gemacht damit der Dialog auch sichtbar ist, würde ich das Ereignis schon in OnCreate oder OnShow des Dialogs aufrufen wird dieser zwar ausgeführt aber der Anwender sieht davon nichts.
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Eigenes Ereignis/Event in TForm mit Zugriff auf Steuerelemente des Forms

  Alt 18. Mai 2017, 12:52
Delphi-Quellcode:
public TfrmProgressDialog.SetProperties(const AFormCaption: string; const ALabel01Caption: string; ...; AProgressMax: integer);
begin
  Self.Caption := AFormCaption;
  ...
end;


with TfrmProgressDialog(Sender) do
begin
  SetProperties('blah', 'ldkf', ..., 100);
end;
aber...

guck mal hier: TPBThreadedSplashscreen
Diese Form hat einen eigenen Thread, d.h. Deine Arbeit kann unabhängig vom Form ablaufen.
Halte ich für eleganter und richtiger
Nr.1 Delphi-Tool: [F7]

Geändert von ConnorMcLeod (18. Mai 2017 um 15:29 Uhr)
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
1.002 Beiträge
 
#3

AW: Eigenes Ereignis/Event in TForm mit Zugriff auf Steuerelemente des Forms

  Alt 18. Mai 2017, 13:57
Und ich würde dieses grauenvolle with weglassen.
Ich bin damit auch so oft auf die Fresse gefallen....gerade beim Debuggen, aber auch beim lesen vom Code weiß man schneller worauf sich z.B. das Close bezieht, wenn man vlt. den oberen Teil der Procedure nicht sehen kann.

Vielleicht so:
Delphi-Quellcode:
procedure TfrmMain.Progress(Sender: TObject);
var
   Idx: Integer;
   ProgressFrm: TForm;
begin
   if Sender is TfrmProgressDialog then
   begin
     ProgressFrm:=(Sender as TfrmProgressDialog);
     ProgressFrm.Caption := 'bla bla';

     ProgressFrm.Label1.Caption := 'ldkfdlkfdo';

     ProgressFrm.ProgressBar1.Min := 0;
     ProgressFrm.ProgressBar1.Max := 100;
     ProgressFrm.ProgressBar1.Step := 1;
  
     for Idx := 1 to 100 do
     begin
       ProgressFrm.ProgressBar1.StepIt;
       Application.ProcessMessages;
       Sleep(500);
     end;
     
     ProgressFrm.Close;
    
   end;

end;
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Eigenes Ereignis/Event in TForm mit Zugriff auf Steuerelemente des Forms

  Alt 18. Mai 2017, 15:28
Ja, klar. Ich wollte nur so nah am Original bleiben, wie möglich.
Soweit ich informiert bin, macht der Compiler nichts anderes, als im Falle von WITH eben so eine Hilfsvariable anzulegen. Kann man also genausogut gleich selber machen und die Lesbarkeit boosten
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
1.002 Beiträge
 
#5

AW: Eigenes Ereignis/Event in TForm mit Zugriff auf Steuerelemente des Forms

  Alt 18. Mai 2017, 16:17
Ja, klar. Ich wollte nur so nah am Original bleiben, wie möglich.
Soweit ich informiert bin, macht der Compiler nichts anderes, als im Falle von WITH eben so eine Hilfsvariable anzulegen. Kann man also genausogut gleich selber machen und die Lesbarkeit boosten
Du warst damit gar nicht gemeint Das ging eher an TUX.
Aber unabhängig von der Lesbarkeit wird's beim debuggen dann mal richtig interessant. Wenn du dann nämlich Stundenlang nach einem Fehler suchst, den du a) ohne with gar nicht erst gemacht hättest und b) trotz allem dann in wenigen Sekunden gefunden hättest. Ist mir selber schon passiert.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Eigenes Ereignis/Event in TForm mit Zugriff auf Steuerelemente des Forms

  Alt 19. Mai 2017, 07:48
Ja, klar. Ich wollte nur so nah am Original bleiben, wie möglich.
Soweit ich informiert bin, macht der Compiler nichts anderes, als im Falle von WITH eben so eine Hilfsvariable anzulegen. Kann man also genausogut gleich selber machen und die Lesbarkeit boosten
Du warst damit gar nicht gemeint Das ging eher an TUX.
Aber unabhängig von der Lesbarkeit wird's beim debuggen dann mal richtig interessant. Wenn du dann nämlich Stundenlang nach einem Fehler suchst, den du a) ohne with gar nicht erst gemacht hättest und b) trotz allem dann in wenigen Sekunden gefunden hättest. Ist mir selber schon passiert.
Ich weiß ich bin auch schon das ein oder andere mal über ein 'with' gestolpert aber den Rest der Zeit sehe ich es eher als Vorteil und nicht als einen Nachteil.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Eigenes Ereignis/Event in TForm mit Zugriff auf Steuerelemente des Forms

  Alt 19. Mai 2017, 10:17
Hast du mal über Frames nachgedacht? Vorteil ist, dass du dir das Frame nur einmal basteln musst und kannst es dann im ganzen Programm immer wieder verwenden. Die Logik kann komplett im Frame verschwinden. Dann gibst du dem Frame ein paar public Proceduren mit denen du die minimale, maximale und aktuelle Position der ProgressBar setzen kannst und schon bist du fertig.
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:10 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