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

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
Antwort Antwort
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, 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
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

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

  Alt 26. Mär 2016, 20:14
In der Methode fehlt das const beim 2. Parameter
Markus Kinzler
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#3

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

  Alt 26. Mär 2016, 20:14
Ich kaufe ein "const" und möchte lösen. Sorge mal dafür, dass die Signaturen exakt übereinstimmen.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Delbor

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

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

  Alt 26. Mär 2016, 21:30
Hi zusammen
Zitat:
Sorge mal dafür, dass die Signaturen exakt übereinstimmen.
Was genau meinst du mit Signaturen? Etwa genau das, was mir erst jetzt auffällt?
Zitat:
property OnInsertedRecord : TInsertRecordEvent read FOnInsertedRecord write FOnInsertedRecord;
Der hier angegebene Eventtyp hat hier nichts zu suchen, TInsertRecordEvent feuert, wenn ein kompletter Datensatz eingefügt wurde und erhoht die Progressbar.
Hier zuständig wäre und steht so auch (eine Zeile tiefer) in der Deklaration:
Zitat:
property OnInsertTime: TInsertedTimeEvent read FOnInsertedTime write FOnInsertedTime;
Zitat:
In der Methode fehlt das const beim 2. Parameter
Genau das wars! Vielen Dank euch beiden!!

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
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:12 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