AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Ganz banale Events - und trotzdem mach ich wohl demnächst die Schraube
Thema durchsuchen
Ansicht
Themen-Optionen

Ganz banale Events - und trotzdem mach ich wohl demnächst die Schraube

Ein Thema von Delbor · begonnen am 26. Mär 2016 · letzter Beitrag vom 26. Mär 2016
 
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.192 Beiträge
 
Delphi 11 Alexandria
 
#1

Ganz banale Events - und trotzdem mach ich wohl demnächst die Schraube

  Alt 26. Mär 2016, 20:09
Delphi-Version: XE8
Hi zusammen

Per eigenen ProgressDlg zeige ich den Fortgang an, wenn mehrere Datensätze in meine DB eingefügt weredn. Bislang hatte ich etwas "ganz raffiniertes" - der Dialog zeigt mir an wieviele
  • Bilder einzufügen sind
  • schon eingefügt sind
  • noch einzufügen sind.
Das will ich jetzt ändern. Den Verlauf zeigt mir die Progressbar an. Sonst ist/soll der Dialog nichts weiter mehr enthalten. Am Ende, wenn alle Datensätze eingefügt sind, soll ein Event gefeuert werden, das die benötigte Zeit als Cardinal an Interessenten weitergibt.
Delphi-Quellcode:
        if i = FPathList.Count - 1 then
        begin
          CInsertTime := GetTickCount - startTime; // + 'ms';
          if Assigned(FOnInsertedTime) then //<== Dieses Event soll von CM_First abgefangen werden und
            FOnInsertedTime(Self,CInsertTime); //<== in der Taskleiste dieser Form im Sekundenformat ausgegeben werden.
        end;
Die Deklaration des Eventyps hier im Datenmodul:
Delphi-Quellcode:
TInsertedTimeEvent = procedure(Sender:TObject; const CInsertTime: Cardinal) of Object;
...
FOnInsertedTime : TInsertedTimeEvent;
...
property OnInsertedRecord : TInsertRecordEvent read FOnInsertedRecord write FOnInsertedRecord;
Die Hauptform soll das Event abfangen und die benötigtee Zeit in die Statusbar schreiben:

Delphi-Quellcode:
procedure DoInsertTime(Sender : TObject; CInsertTime : Cardinal);
...
...
procedure TCM_First.DoInsertTime(Sender : TObject; CInsertTime : Cardinal);
begin
  Self.StatusBar1.Panels[0].Text := IntToStr(CInsertTime)
end;
Und die Zuweisung im OnCreate der Hauptform:
Delphi-Quellcode:
begin
  FProcedureReport := TStringList.Create;
  ApplicationManager := TWinManager.Create(CM_First);
  FDMySQLDml:= TFDMySQLDml.Create(Self);
...
...
...
FDMySQLDml.OnInsertTime := Self.DoInsertTime;
Bei der Zuweisung oben blockt delphi wegen ungleicher Parameter die Compilierung ab.
Was, zum Klabautermann, hab ich übersehen?

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
 


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:44 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