AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Callbacks: Interface und/oder Methode? (DEC 6.0)

Ein Thema von himitsu · begonnen am 23. Dez 2020 · letzter Beitrag vom 29. Dez 2020
Antwort Antwort
Seite 2 von 2     12
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#11

AW: Callbacks: Interface und/oder Methode? (DEC 6.0)

  Alt 29. Dez 2020, 12:53
Ich finde das Thema gerade schwierig.

Wenn ein Stream verarbeitet wird, steht die Länge nicht fest.
Ich meine man kann auch nicht berechnen, wieviel arbeit zu tun ist.

von, bis und pos zu haben wäre nett, ist das dann aber nicht eher das Problem von dem Streamersteller?
Ist dort nicht der Callback festgelegt und müsste dann nicht im Callback ggf. das ausgerechnet werden, wo der Prozentbalken steht oder ggf. ein Animation gespielt wird?

Kann also die DEC nur ein "STEP" signalisieren und kein genaue Position der Verarbeitung?

Wenn die DEC die Gesamtmenge, welche die DEC verarbeitet ausrechnen kann, dann müsste an den Callback [min,] max und pos übergeben werden, dass hat aber dann nichts mit der Streamsize und POS zu tun.

Versteht mich jemand, was ich meine?


PS:

Code:
alt
procedure TFormMain.OnProgress(const Min, Max, Pos: Int64);

neu
procedure TFormMain.OnProgress(const Progress: TDECProgressParams);


alt
  ProgressBar1.Min := Min;
  ProgressBar1.Max := Max;
  ProgressBar1.Position := Pos;

neu
  ProgressBar1.Min := 0;
  ProgressBar1.Max := Progress.Max;
  ProgressBar1.Position := Progress.Pos;

alt habe ich besser gefunden, weil die Implementierung vom Progress nicht vom Typ TDECProgressParams abhängt und somit bei anderen Programmteilen wiederverwendet werden könnte.

Ich persönlich bevorzuge auch immer weniger Punkte zu nutzen als mehr.
Also
Code:
  ProgressBar1.Min := Min;
vor
Code:
  ProgressBar1.Max := Progress.Max;
Spätenstens bei dem zweiten Punkt würde es hässlich werden, weil man dann abhängig von der internen Umsetzung wird.
Also
Code:
Progress.Max.irgendwas
- nicht relevant hier . nur Beispiel.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott

Geändert von generic (29. Dez 2020 um 12:58 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.772 Beiträge
 
Delphi 12 Athens
 
#12

AW: Callbacks: Interface und/oder Methode? (DEC 6.0)

  Alt 29. Dez 2020, 14:22
Hallo,

danke für deinen Input.
Auch ich würde das Progress Event eher ohne Struktur gestalten wollen.
Aber eben als annonyme Methode.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.017 Beiträge
 
Delphi 12 Athens
 
#13

AW: Callbacks: Interface und/oder Methode? (DEC 6.0)

  Alt 29. Dez 2020, 23:08
Du konntest und kannst hier
* entweder sagen, wieviel gemacht werden kann
* oder es wird über Stream.Size das Ende bestimmt (und über Stream.Size-Stream.Position die Anzahl)

* ein Stream mit unbestimmter Länge (lese so lange bis Stream.Read=0 sagt) wird selten von "allgemeinen" Funktionen unterstützt.
* * entweder wir bauen dafür eine neue Funktion ein, oder sagen z.B. DataSize = -2 wird dieser Modus (und = -1 der mir Stream.Size)

Die meisten Parameter änder sich niemals.
Min, Max und Pos sind Int64 und das kann keine ProgressBar anzeigen.
Original kann/konnte sie sogar nur 16 15 Bit varabeiten (PBM_SETRANGE) und inzwischen geht auch 32 32 Bit (PBM_SETRANGE32).
Ein Bit weniger, wegen dem Signed (Vorzeichen).
https://docs.microsoft.com/en-us/win...trol-reference

Ja, es gibt genügend Leute, die sind zu doof ähh vergessen den Wertebereich notfals umzurechnen, daher hatte ich gleich auch direkt noch den Prozenz-Wert mit reingepackt.

Gut, man kann sich streiten wann "zuviel" ist, aber wenn es zuviele Parameter werden (wovon hier ursprünglich 33% immer wieder sinnlos übergeben werden), dann wird von Vielen empfohlen das in ein Datenobjekt zu packen, also nur noch einen Parameter.
Vorteil ist auch, dass wenn man später noch etwas hinzufügt, dass man nirgendwo was umbauen muß. (die Signatur ändert sich nicht)




Andere dürfen gern diesen Typen verwenden, oder sie definieren ihren eigenen Record oder Objekt, der gleich heißt. (man könnte sich hier vielleich überlegen dem Record einen "neutralen" Namen zu geben)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 01:06 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