Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Windows-Taskdialog & Windows XP (https://www.delphipraxis.net/195759-windows-taskdialog-windows-xp.html)

freimatz 22. Mär 2018 18:31


Windows-Taskdialog & Windows XP
 
Hallo,
ich würde gerne den Windows-Taskdialog verwenden. Den gibts m.W. erst ab Vista. Von TMS gibts eine Komponente die das auch auf XP simuliert. Das ist mir aber zu teuer. Was?
- Auf Windows XP verzichten?
- Zur Laufzeit abfragen und dynamisch drauf reagieren?
Wie macht ihr das?

Der schöne Günther 22. Mär 2018 18:43

AW: Windows-Taskdialog & Windows XP
 
Genauso wie auf MS-DOS und Enigma: Gar nicht.

Bernhard Geyer 22. Mär 2018 18:50

AW: Windows-Taskdialog & Windows XP
 
Wenn interessiert noch XP?
Wir haben von 2 Jahren XP abgekündigt und seit ca. 1 1/2 Jahren läuft die Anwendung nicht mehr mit XP (Meldung: "Windows zu alt"). Rückmeldung von unseren Kunden welche Probleme damit haben: 0

günni0 22. Mär 2018 19:02

AW: Windows-Taskdialog & Windows XP
 
Zitat:

Wenn interessiert noch XP?
Bei teurer Software für ein paar wenige Firmen mag das absolut niemanden interessieren. Firmen haben eh genug Geld und bleiben nicht auf XP sitzen.

Anders sieht es bei Freeware aus. Da interessiert es die Leute sehr wohl, ob man noch XP unterstützt oder nicht.

jaenicke 22. Mär 2018 19:18

AW: Windows-Taskdialog & Windows XP
 
Ich würde es schlicht so machen wie sehr viele andere Freeware/Open Source Autoren:
Die letzte für XP taugliche Version auf der Downloadseite unterhalb der aktuellen Version anbieten.

Denn mal ehrlich: Wer sein Betriebssystem so lange nicht aktualisiert hat, wird wohl auch auf aktuelle Versionen einer Freeware verzichten können...

Bernhard Geyer 22. Mär 2018 19:32

AW: Windows-Taskdialog & Windows XP
 
Zitat:

Zitat von jaenicke (Beitrag 1397030)
Ich würde es schlicht so machen wie sehr viele andere Freeware/Open Source Autoren:
Die letzte für XP taugliche Version auf der Downloadseite unterhalb der aktuellen Version anbieten.

Denn mal ehrlich: Wer sein Betriebssystem so lange nicht aktualisiert hat, wird wohl auch auf aktuelle Versionen einer Freeware verzichten können...

:thumb:

günni0 22. Mär 2018 19:51

AW: Windows-Taskdialog & Windows XP
 
So kann man es natürlich auch machen.
Aber alleine wegen des Look&Feel würde ich niemals irgendwelche Komponenten auf XP simulieren, die es erst später gibt.
Bei mir persönlich fliegen durchgestylte Programme die sich nicht an grobe Standards halten sofort von der Platte.

KodeZwerg 22. Mär 2018 22:47

AW: Windows-Taskdialog & Windows XP
 
Wenn einem so viel am Herzen liegt würde ich:

A)
Ein vollständig XP kompatibles Projekt erstellen und finalisieren.

B)
das Projekt aus A) in einen neuen Ordner kopieren + umbennen
nun das Formular Stück für Stück ersetzen (gleiche Namen verwenden) ohne das neue Knöpfe/Funktionen dazu kommen

C)
einen dritten Projekt-Ordner anlegen und erstmal nur die .pas dateien rein kopieren,
die dpr Datei sollte:
in der Uses eine Abfrage für das Os einbauen (dementsprechend Uses aus A) oder B) laden),
beide DFM (aus A) und B)) als Resource speichern und auch per Os-Abfrage dynamisch reinladen.

D)
Oder
Projekt A) als 32bit XP anbieten
Projekt B) als 64bit Vista+ anbieten

jaenicke 23. Mär 2018 05:23

AW: Windows-Taskdialog & Windows XP
 
Zitat:

Zitat von KodeZwerg (Beitrag 1397041)
das Projekt aus A) in einen neuen Ordner kopieren + umbennen

Oder schlicht einen neuen Branch in der Versionsverwaltung anlegen...
Dann kann man jederzeit zwischen den beiden Entwicklungszweigen wechseln, Änderungen mergen usw.

Denn egal ob private Freeware oder kommerzielles Projekt... ohne Versionsverwaltung macht doch ohnehin keinerlei Sinn.

Bernhard Geyer 23. Mär 2018 06:49

AW: Windows-Taskdialog & Windows XP
 
Zitat:

Zitat von jaenicke (Beitrag 1397049)
Zitat:

Zitat von KodeZwerg (Beitrag 1397041)
das Projekt aus A) in einen neuen Ordner kopieren + umbennen

Oder schlicht einen neuen Branch in der Versionsverwaltung anlegen...
Dann kann man jederzeit zwischen den beiden Entwicklungszweigen wechseln, Änderungen mergen usw.

Denn egal ob private Freeware oder kommerzielles Projekt... ohne Versionsverwaltung macht doch ohnehin keinerlei Sinn.

Sehe ich auch so. Ich erinnere mich mit schrecken an die Zeit als wir noch was Handgestricktes hatten oder auch noch die Zeit mit CVS.
Jetzt mit Git: Fix in Version und schnell mal Cherry Picken schon ist der Head/Branch auch aktualisiert.

bcvs 23. Mär 2018 07:15

AW: Windows-Taskdialog & Windows XP
 
Zitat:

Zitat von freimatz (Beitrag 1397021)
Wie macht ihr das?

Ich hatte seinerzeit das hier eingesetzt:
http://www.theabsolute.net/sware/taskdialog/

Simuliert den Tasdialog unter XP

jaenicke 23. Mär 2018 07:39

AW: Windows-Taskdialog & Windows XP
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1397054)
Jetzt mit Git: Fix in Version und schnell mal Cherry Picken schon ist der Head/Branch auch aktualisiert.

Gehört jetzt nicht zum Thema, aber mit Cherry Pick haben wir das Problem gehabt, das man im Log hinterher nicht mehr sehen konnte was wo rübergeschoben wurde usw. (außer im Kommentar im Ziel-Commit)
Beim SVN konnte man die entsprechenden Einträge dann grau hinterlegt sehen, wenn man eine Revision zum Mergen auswählen wollte.

günni0 23. Mär 2018 07:45

AW: Windows-Taskdialog & Windows XP
 
Zitat:

Zitat von bcvs (Beitrag 1397058)
Zitat:

Zitat von freimatz (Beitrag 1397021)
Wie macht ihr das?

Ich hatte seinerzeit das hier eingesetzt:
http://www.theabsolute.net/sware/taskdialog/

Simuliert den Tasdialog unter XP

Sowas hat man sich auch in einem Tag wenn man durchzieht selber gebaut.

jaenicke 23. Mär 2018 07:56

AW: Windows-Taskdialog & Windows XP
 
Zitat:

Zitat von günni0 (Beitrag 1397063)
Sowas hat man sich auch in einem Tag wenn man durchzieht selber gebaut.

Mit allen Funktionalitäten des Original-Dialogs ist das eine Herausforderung.
Aber auch ich halte nichts davon System-Dialoge in einem System zu emulieren, das diese nicht kennt.

Bernhard Geyer 23. Mär 2018 09:37

AW: Windows-Taskdialog & Windows XP
 
Zitat:

Zitat von jaenicke (Beitrag 1397065)
Zitat:

Zitat von günni0 (Beitrag 1397063)
Sowas hat man sich auch in einem Tag wenn man durchzieht selber gebaut.

Mit allen Funktionalitäten des Original-Dialogs ist das eine Herausforderung.

YO. Wenn günni so gut dann vergeben wir unsere Programmieraufgaben immer ahn ihn.
Würden wir sicherlich 90% Entwicklungskosten sparen.

Bei LMD sind die Units rund um Taskdialog ca. 150 kByte an Quellcode. Gefühlt würde sagen das

Zitat:

Zitat von jaenicke (Beitrag 1397065)
Aber auch ich halte nichts davon System-Dialoge in einem System zu emulieren, das diese nicht kennt.

Wieso nicht? Diesen Dialog haben wir auch noch unter Win98/2000 (als TMS-Implementierung) genutzt.

günni0 23. Mär 2018 09:39

AW: Windows-Taskdialog & Windows XP
 
Zitat:

YO. Wenn günni so gut dann vergeben wir unsere Programmieraufgaben immer ahn ihn.
Würden wir sicherlich 90% Entwicklungskosten sparen.
Die Ironie kannst du dir sparen.

Bernhard Geyer 23. Mär 2018 09:42

AW: Windows-Taskdialog & Windows XP
 
Zitat:

Zitat von günni0 (Beitrag 1397090)
Zitat:

YO. Wenn günni so gut dann vergeben wir unsere Programmieraufgaben immer ahn ihn.
Würden wir sicherlich 90% Entwicklungskosten sparen.
Die Ironie kannst du dir sparen.

Du hast es mit deiner Aussage "Sowas hat man sich auch in einem Tag wenn man durchzieht selber gebaut." ja provoziert.
Die Funktionsumfang ist nicht gerade klein. 2 Wochen hätte ich hier schon geschätzt da man für alle Funktionen benötigt.

jaenicke 23. Mär 2018 10:01

AW: Windows-Taskdialog & Windows XP
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1397089)
Wieso nicht? Diesen Dialog haben wir auch noch unter Win98/2000 (als TMS-Implementierung) genutzt.

Weil es nicht in die User Experience des Betriebssystems passt. Gut, daran halten sich viele Programme nicht, aber deshalb muss man das ja nicht nachmachen. Aber das ist meine Meinung, andere sehen das ganz anders und basteln gleich eine Oberfläche in Photoshop, die dann animiert wird.

Ich für mich halte mich eher an das was das System kann. Und wenn es etwas in einer Version von Windows noch nicht gibt, dann baue ich es auch nicht nach, sondern lasse es weg. Schließlich steht es ja jedem frei eine neuere Version von Windows zu nutzen, wenn er eine solche Funktion dann vermisst. Ich möchte aber niemandem z.B. unter einer alten Version etwas aus einer neueren aufzwingen. Meistens gibt es ja Gründe, dass man eine solche neue Version eben nicht installiert, ob nun rational oder nicht.

Bernhard Geyer 23. Mär 2018 10:43

AW: Windows-Taskdialog & Windows XP
 
Zitat:

Zitat von jaenicke (Beitrag 1397096)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1397089)
Wieso nicht? Diesen Dialog haben wir auch noch unter Win98/2000 (als TMS-Implementierung) genutzt.

Weil es nicht in die User Experience des Betriebssystems passt. Gut, daran halten sich viele Programme nicht, aber deshalb muss man das ja nicht nachmachen.

Das sehe ich halt anders. Diese Windows-Vorgaben sind doch mittlerweile sowas von egal. MS interessiert es doch auch nicht mehr was sie für vorgaben machen. Da wird mit Office und Co. auch das neue Look&Feel auf alle unterstützten Windows-Versionen verwendet. Und wenn man an die Weblösung denkt. Hier ist es noch weniger "Wir berücksichtigen OS-Vorgaben" gegeben. Die Anwendung soll in sich schlüssig sein und man es ihr nicht anmerken das sie Elemente von Win95, XP und Win8/10 gemixt in einer Exe hat.
Aber wir werden OT.

Frickler 23. Mär 2018 13:18

AW: Windows-Taskdialog & Windows XP
 
Zitat:

Zitat von freimatz (Beitrag 1397021)
Hallo,
ich würde gerne den Windows-Taskdialog verwenden. Den gibts m.W. erst ab Vista. Von TMS gibts eine Komponente die das auch auf XP simuliert. Das ist mir aber zu teuer. Was?
- Auf Windows XP verzichten?
- Zur Laufzeit abfragen und dynamisch drauf reagieren?
Wie macht ihr das?

mORMot, SynTaskDialog. Verwendet unter Vista++ den eingebauten und simuliert ansonsten.

freimatz 23. Mär 2018 15:47

AW: Windows-Taskdialog & Windows XP
 
Hallo zusammen,
ich dachte ich warte mal bis Kathinka ausgeredet hat ;-)
Danke an alle Meldungen. Inzwischen habe ich auch mal mich bei (einem Teil) meinen Anwender rumgehört. Nahezu keiner verwendet mehr XP.

Trotzdem würde ich doch mal gerne mORMot - SynTaskDialog ausprobieren. Zum einen weil es nichts kostet und da schon Beispiele drin sind wie man einfach die alten VCL Dialoge ersetzen kann.

Noch einige Kommentare:
* Soweit ich weiß macht das ShowMessage intern das Fenster selber und verwendet keine Windows-Dialoge. Ergo simuliert die VCL auch.
* OT: Ich bin froh dass sich Office nicht an die Windowvorgaben hält. Ich habe es noch nicht geschafft mit meinem Win 7 hier es so zu machen, dass Fenstertitel nicht transparent sind. Wenigstens Office hat das.

himitsu 23. Mär 2018 16:14

AW: Windows-Taskdialog & Windows XP
 
Zitat:

Zitat von freimatz (Beitrag 1397124)
* Soweit ich weiß macht das ShowMessage intern das Fenster selber und verwendet keine Windows-Dialoge. Ergo simuliert die VCL auch.

Nein, bzw. nicht immer.
Entweder es wird selber aus einer TForm der Dialog zusammengebaut oder es wird die WinAPI genutzt.

ShowMessage landet irgendwann hier
Delphi-Quellcode:
function MessageDlgPosHelp(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer; const HelpFileName: string): Integer;
begin
  if TOSVersion.Check(6) and UseLatestCommonDialogs and IsNewCommonCtrl and StyleServices.IsSystemStyle then
    Result := DoTaskMessageDlgPosHelp('', Msg, DlgType, Buttons, HelpCtx, X, Y, HelpFileName)
  else
    Result := DoMessageDlgPosHelp(CreateMessageDialog(Msg, DlgType, Buttons), HelpCtx, X, Y, HelpFileName);
end;
Oben geht es zu den Task-Dialogs der WinAPI (ab Vista mit aktiven XP-Styles)
und CreateMessageDialog baut eine eigene TMessageForm der VCL auf.

Du kannst auch selber WinApi.Windows.MSDN-Library durchsuchenMessageBox oder Delphi-Referenz durchsuchenApplication.MessageBox aufrufen.
Bei Letzterem wird zusätzlich noch die Fensterposition bestimmt, die Aktivität der anderen VCL-Forms gestuert und UseRightToLeftReading als MB_RTLREADING an die API übergeben.

Aber simuliert wird nichts.
MSDN-Library durchsuchenMessageBox erstellt ein Windows-Fenster und legt ein Image, ein Label und paar Buttons auf dieses Fenster.
Genau das Gleiche macht auch Delphi-Referenz durchsuchenCreateMessageDialog, nur dass da noch die VCL-Wrapper um jede einzelne Windows-Komponente drumrum sind, aber nativ sind diese Komponenten dennoch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:57 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