Einzelnen Beitrag anzeigen

Delbor

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

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

  Alt 26. Mär 2016, 19: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