Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Neuen Beitrag zur Code-Library hinzufügen (https://www.delphipraxis.net/33-neuen-beitrag-zur-code-library-hinzufuegen/)
-   -   Delphi ShellExecution Brauche Hilfe (https://www.delphipraxis.net/200444-shellexecution-brauche-hilfe.html)

EWeiss 20. Apr 2019 22:17

AW: ShellExecution Brauche Hilfe
 
Zitat:

Zitat von DieDolly (Beitrag 1430716)
Ich denke es wäre sehr hilfreich, wenn der Fragende uns erst einmal mitteilt, welche Delphiversion er hat.
Ich kann mir kaum vorstellen, dass er Berlin Pro hat bei so einem einfachen Problem. Außerdem hätte er dann schon lange in die Delphiquellcodes reingeguckt.

Für ihn ist das Problem doch schon erledigt ;) Seit dem letzten Beitrag auf Seite 2!
Seine Delphi Version ist "Delphi 10.1 Berlin Professional"

gruss

DieDolly 20. Apr 2019 22:26

AW: ShellExecution Brauche Hilfe
 
Dann bleibt nur noch zu sagen, dass gehofft werden darf, dass er den Nutzer auf dieses Verhalten hinweist. Nicht, dass nachher einem Nutzer durch einen Programmfehler die Zwischenablage fehlt und er sich wundert warum.

Dalai 20. Apr 2019 23:08

AW: ShellExecution Brauche Hilfe
 
Zitat:

Zitat von EWeiss (Beitrag 1430713)
Das ist schlichtweg falsch.

Nö, ist es nicht.

Zitat:

Es ging nicht um die frage ob es bei allen Delphi Versionen so funktioniert.
Warum nicht? Denk doch mal über den konkreten Fragesteller hinaus. Wenn in der Zukunft jemand (anderes) den Quelltext kopiert, um diesen in einem alten Delphi zu benutzen, wird er - unnötigerweise (aber natürlich völlig korrekterweise) - eine Warnung vom Compiler bekommen, weil dort ShellExecute eben auf ShellExecuteA verweist, was PAnsiChar als Parameter benutzt.

Nur weil der Quelltext im Compiler des Fragestellers korrekt funktioniert, heißt das nicht, dass er das auch im Compiler eines anderen tut.

Zitat:

Fakt ist wenn ich in D2010 PChar verwende wird PChar automatisch zu PWideChar konvertiert oder willst du das bezweifeln?
Daran habe ich keinen Zweifel, und das habe ich auch an keiner Stelle angedeutet.

Zitat:

Wenn ich ShellExecute ohne A oder W aufrufe wird Automatisch von ShellExecuteW ausgegangen versuch es doch einfach.
Aber eben erst in Delphi ab 2009. Davor war es eben ShellExecuteA, und das will PAnsiChar und kein PWideChar.

Zitat:

Ganz einfach weil deine Aussage einfach falsch und nicht zutreffend ist.
Ist sie eben nicht. Und ich bin übrigens nicht der einzige, der immer wieder in diese Richtung darauf hinweist - himitsu schägt in die gleiche Kerbe.

Grüße
Dalai

EWeiss 20. Apr 2019 23:11

AW: ShellExecution Brauche Hilfe
 
Zitat:

Warum nicht? Denk doch mal über den konkreten Fragesteller hinaus. Wenn in der Zukunft jemand (anderes) den Quelltext kopiert, um diesen in einem alten Delphi zu benutzen, wird er - unnötigerweise (aber natürlich völlig korrekterweise) - eine Warnung vom Compiler bekommen
Siehe mein Shot alle deine versuche deine Aussage zu rechtfertigen sind damit widerlegt und dann fragst du noch warum diese Diskussion immer wieder angefacht wird?
Zitat:

weil dort ShellExecute eben auf ShellExecuteA verweist, was PAnsiChar als Parameter benutzt.
Eben nicht was steht auf meinem ScreenShot?
Aber gut hier nochmal genauer!
Delphi-Quellcode:
function ShellExecute; external shell32 name 'ShellExecuteW';
function ShellExecuteA; external shell32 name 'ShellExecuteA';
function ShellExecuteW; external shell32 name 'ShellExecuteW';
Zitat:

Aber eben erst in Delphi ab 2009.
Kein Argument.
Es ist nicht die frage ab welcher Delphi Version sondern die frage steht im Raum warum so eine bescheidene Krankhafte Abwärtskompatibilität.
Warum soll ich also wenn wie im Shot gezeigt bei ShellExecute hier PChar anstelle von PWideChar verwenden? Sorry das wäre schwachsinnig unabhängig davon ob
PChar automatisch nach PWideChar konvertiert wird.. Hier liegt schon das Problem.

Zitat:

himitsu schägt in die gleiche Kerbe.
Uninteressant wer wo was sagt für mich zählen die Fakten und die sind belegt.

gruss

Dalai 20. Apr 2019 23:34

AW: ShellExecution Brauche Hilfe
 
Zitat:

Zitat von EWeiss (Beitrag 1430720)
Eben nicht was steht auf meinem ScreenShot?

Selbstverständlich verwenden Delphi-Versionen vor 2009 ShellExecute als "Alias" für ShellExecuteA. OK, vielleicht war "ältere Delphi-Version" zu unkonkret; gemeint war Delphi < 2009, eben Nicht-Unicode-Delphis.

Zitat:

Kein Argument.
Das ist kein Argument für diejenigen, die alte Delphis verwenden? Sehr rücksichtsvoll von dir...

Zitat:

Es ist nicht die frage ab welcher Delphi Version sondern die frage steht im Raum warum so eine bescheidene Krankhafte Abwärtskompatibilität.
Wo ist da eine krankhafte Abwärtskompatibilität? Im Gegenteil: Ich find's gut, wenn Code von vor 10 Jahren auch noch in einem aktuellen Delphi läuft. Das funktioniert aber nicht, wenn die Datentypen sich geändert haben, weil man unsauber gearbeitet hat - eine Vermischung von Datentypen ist unsauber.

Zitat:

Warum soll ich also wenn wie im Shot gezeigt bei ShellExecute hier PChar anstelle von PWideChar verwenden?
Solange du den Code nur für dich schreibst oder nur für einen ganz bestimmten Compiler, spielt es keine Rolle. Aber wir sind hier in der Öffentlichkeit, und da ist es immer eine gute Idee, auf andere Rücksicht zu nehmen, und dazu gehören auch Nutzer von Delphi älter 2009. Andererseits müsstest du dir überhaupt keinen Kopf darüber machen, ob nun PChar ein PWideChar ist oder nicht, wenn du einfach den generischen Typ PChar benutzt (außer eben an den Stellen, wo ein expliziter Ansi-/Wide-Typ verlangt wird, was ziemlich selten ist).

Grüße
Dalai

EWeiss 20. Apr 2019 23:40

AW: ShellExecution Brauche Hilfe
 
Zitat:

Wo ist da eine krankhafte Abwärtskompatibilität?
Krankhaft weil nur von Delphi Praktiziert.
Mach das mal mit Visual Studio oder einer anderen Programmiersprache.

Mich interessiert nur was meine aktuelle Delphi Version mir vorschreibt.. nicht mehr nicht weniger und das ist nun mal..
Delphi-Quellcode:
function ShellExecute; external shell32 name 'ShellExecuteW';
function ShellExecuteA; external shell32 name 'ShellExecuteA';
function ShellExecuteW; external shell32 name 'ShellExecuteW';
Zitat:

Aber wir sind hier in der Öffentlichkeit, und da ist es immer eine gute Idee, auf andere Rücksicht zu nehmen, und dazu gehören auch Nutzer von Delphi älter 2009.
Selbst wenn ich das würde wird bei ShellExecute in meiner Delphi Version und der des Thread Erstellers trotzdem PWideChar erwartet du kannst da rumreden wie du willst es wird nicht auf ShellExecuteA verzweigt unabhängig davon ob ich jetzt PChar oder PWideChar verwende.
Das sollte jetzt langsam auch dir klar sein.

Aber.. ich könnte PChar verwenden so das auch ältere Versionen mit meinem Source arbeiten könnten aber warum soll ich das tun..
Wenn ich PChar verwende ja dann verzweigt ShellExecute unter älteren Delphi Versionen auf 'ShellExecuteA' aber ich bin nicht dafür zuständig dafür sorge zu tragen
das die Abwärtskompatibilität zu unterschiedlichen Delphi Versionen eingehalten wird. Interessiert mich einfach nicht.

Mehr ist da nicht zu sagen.
Du magst deine Meinung haben dann lebe damit.
Aber wundere dich nicht das diese Diskussion immer wieder aufflammt.

gruss

Dalai 21. Apr 2019 00:16

AW: ShellExecution Brauche Hilfe
 
[OT]

Zitat:

Zitat von EWeiss (Beitrag 1430722)
Mach das mal mit Visual Studio oder einer anderen Programmiersprache.

In C++ verwendet man halt z.B. TCHAR, was auch nur ein Alias auf einen konkten Ansi-/Wide-Typ ist. Inwiefern ist das jetzt anders als PChar? Genau, gar nicht.

Zitat:

Aber.. ich könnte PChar verwenden so das auch ältere Versionen mit meinem Source arbeiten könnten aber warum soll ich das tun..
Wenn ich PChar verwende ja dann verzweigt ShellExecute unter älteren Delphi Versionen auf 'ShellExecuteA' aber ich bin nicht dafür zuständig dafür sorge zu tragen
das die Abwärtskompatibilität zu unterschiedlichen Delphi Versionen eingehalten wird. Interessiert mich einfach nicht.
Ich kann mich nur wiederholen: Sehr rücksichtsvoll von dir... Mit der Einstellung wirst du kaum lange in einem Team arbeiten, vermute ich mal...

Zitat:

Du magst deine Meinung haben dann lebe damit.
Das hat nicht nur mit Meinung zu tun sondern auch mit den von dir so geliebten Fakten. Zu diesen Fakten gehört es nämlich auch, dass es Nicht-Unicode-Delphis gibt, und wenn man Code für andere oder zusammen mit anderen oder für die Öffentlichkeit schreibt, hat man das unter Umständen zu berücksichtigen.

Gerade Programmieranfänger sollte man auf solche Fallstricke aufmerksam machen, damit sie im Idealfall Anfängerfehler vermeiden. So schwer ist das nun wirklich nicht zu verstehen.

[/OT]

Grüße
Dalai

EWeiss 21. Apr 2019 00:37

AW: ShellExecution Brauche Hilfe
 
Um das abzuschließen du kennst meine Meinung.. deine Ausflüche können mich nicht überzeugen.
Ich arbeite mit D2010 alles andere ist Nebensache.

Nutzt jemand meinen Source dann muss er die Kompatibilität zu seiner Delphi Version selbst herstellen.
Was ist da so schwierig?

gruss

Luckie 21. Apr 2019 05:25

AW: ShellExecution Brauche Hilfe
 
Jetzt ist es aber gut, ihr beiden. :roll: Bitte beendet eure Diskusion hier. Eure Standpunkte habt ihr klar gemacht und so langsam scheint es persönlich zu werden.

EWeiss 21. Apr 2019 09:34

AW: ShellExecution Brauche Hilfe
 
Zitat:

Zitat von Luckie (Beitrag 1430725)
Jetzt ist es aber gut, ihr beiden. :roll: Bitte beendet eure Diskusion hier. Eure Standpunkte habt ihr klar gemacht und so langsam scheint es persönlich zu werden.

War ja dabei!
Zitat:

Um das abzuschließen
Es ist nur seltsam das Leute die Heute noch mit Delphi5 arbeiten von anderen die mit der Zeit gehen erwarten das man doch bitte schön Abwärtskompatibilität einhalten soll.
Warum? Ich unterstütze auch kein Windows31, Windows for Worksgroup, XP mehr wenn ich neuere Software entwickle.

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:10 Uhr.
Seite 4 von 4   « Erste     234   

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