AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Windows Progress Dialog Wrapper

Ein Thema von Zacherl · begonnen am 28. Nov 2012 · letzter Beitrag vom 29. Nov 2012
Antwort Antwort
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.749 Beiträge
 
Delphi 2007 Professional
 
#1

AW: Windows Progress Dialog Wrapper

  Alt 29. Nov 2012, 07:21
Und wenn du bei StartProgressDialog und Co. wieso nil übergibst, dann deklariere es besser als pvResevered: PPointer {ohne var} und übergib ein Richtiges nicht soein "gahacktes" NIL.
Ich denke, auch du hast eine Indirektion zuviel. Das ist weder Referenz auf Zeiger noch Zeiger auf Zeiger, sondern einfach Zeiger - siehe den letzten Absatz in meiner ersten Antwort.

Man kann sich das Leben auch schwerer machen, als nötig.
(und wenn wirklich mal jemand so krankhaft bescheuert sein sollte und global im ganzen Projekt die vollständige boolische Auswertung aktiviert ... selber Schuld)
Shit happens.

Ach ja, abgesehn von ParentWindow sollten der letzte Public-Block wohl eher ein Published sein.
Ansonsten kann man das TComponente als Vorfahr garnicht ausnutzen, denn es ließe sich zwar auf die Form pappen, aber einstellen könnte man dort nicht viel.
Ist ja keine Komponente, sondern nur ein TObject . Da kannste publishen, bis du schwarz wirst.

Und deine TdxProgressDialog ist nicht für Delphis bis D2009 geeignet, da das Interface mit Unicode deklariert ist, aber dort String und PChar kein Unicode sind, was dann nicht mehr zusammenpaßt.
Deklarier dir einfach eigene "String"- und "PChar"-Typen, welche ab D2009 string und PChar oder UnicodeString und PWideChar bleiben, aber bis D2007 als WideString und PWideChar deklariert sind.
Hab ich grad gemerkt, als ich es mal mit D2007 ausprobieren wollte. Ich hab jetzt mal alle PChar durch PWideChar und alle string durch ein typedef auf WideString ersetzt, dann läuft's.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: Windows Progress Dialog Wrapper

  Alt 29. Nov 2012, 17:08
Oh man, ich sollte wirklich nicht mehr programmieren, wenn ich länger als 24h wach war

Wenn der Dialog ausgeblendet wird, sollte FDialog auch freigegeben werden und das nicht erst im Destroy
Das wollte ich nicht, da dann ja nicht mehr auf HasUserCanceled zugegriffen werden kann. Aber dein korrigierter Code umgeht das Problem ja ganz geschickt.

Ach ja, abgesehn von ParentWindow sollten der letzte Public-Block wohl eher ein Published sein.
Ansonsten kann man das TComponente als Vorfahr garnicht ausnutzen, denn es ließe sich zwar auf die Form pappen, aber einstellen könnte man dort nicht viel.
Ist ja auch von TObject abgeleitet und war nicht als visuelle Komponente geplant.

PS: Monitore sind heutzutage meist nicht mehr 15" ... Tools > Optionen > Editor-Optionen > Anzeige > rechter Rand z.B. mindestens auf 120 stellen.
(120 = FullHD + links und rechts OI, Tool-Palette, Projektionen usw.)
Mein Notebook, auf dem ich teilweise arbeite, hat nur 17", deshalb lasse ich die Randeinstellung normalerweise auf default

Edit: Habe mal ein paar der Änderungsvorschläge umgesetzt. Cancel() war vielleicht etwas irreführend. Diese Methode habe ich in Close() umbenannt, da es prinzipiell gar keine Möglichkeit gibt den Dialog ohne den Cancel Button abzubrechen.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)

Geändert von Zacherl (29. Nov 2012 um 17:39 Uhr)
  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:48 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