Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Mac OS X -> Ohne Delphi keine Funktion ? (https://www.delphipraxis.net/181377-mac-os-x-ohne-delphi-keine-funktion.html)

arnof 10. Aug 2014 18:17

Mac OS X -> Ohne Delphi keine Funktion ?
 
Probleme über Probleme, wie ein echter Anfänger:

starte ich das PRG via Delphi geht das Ding!

Ohne Delphi macht das Ding sofort zu: man sieht es kurz aufblitzen das wars!

Dieses Verhalten ist im scratchdir des PAServers so und aber auch auch in einer ordentlich erzeugt Appstore Prg.

Wo und wie kann man da male schauen was da los ist ?!

Daniel 10. Aug 2014 19:12

AW: Mac OS X -> Ohne Delphi keine Funktion ?
 
Was sagt denn die Console Deines Mac?

arnof 10. Aug 2014 19:31

AW: Mac OS X -> Ohne Delphi keine Funktion ?
 
Exited with code:1

arnof 10. Aug 2014 20:06

AW: Mac OS X -> Ohne Delphi keine Funktion ?
 
Ursache des Problems gefunden:

aus Delphi heraus gestartet funktioniert GetCurrentDir. Selbst gestartet gibt das Ding nur / zurück!

Es sollte sich aber dann nicht einfach verabschieden, sondern mal irgendeine Fehlermeldung ausgeben …

Hier für alle geplagten mal eine universelle Funktion, die sicher das Programmverzeichnis bzw Zugriffsverzeichnis findet:

Delphi-Quellcode:
{
 Sucht das Programmverzeichnis (Datenverzeichnis)
}
function GET_HomePath(PathToData,Datei:string):string;
begin
   {$IFDEF MSWINDOWS}
   if PathToData='' then PathToData:=ExtractFilePath(ParamStr(0));                        // Windows
   {$ENDIF}
   {$IFDEF MACOS}
   {$IFDEF IOS}
   if PathToData='' then PathToData:=TPath.GetDocumentsPath+TPath.DirectorySeparatorChar; // iOS
   {$ELSE}
   if PathToData='' then PathToData:=ExtractFilePath(ParamStr(0));                        // MacOSX
   {$ENDIF}
   {$ENDIF}
   // Fallse wir hier irgendein System vergessen haben nochmals zur Sicherheit
   {$IFDEF NEXTGEN}
   if PathToData='' then PathToData:=TPath.GetDocumentsPath;                              // Android und sonstige zukünftigen Plattformen
   {$ELSE}
   if PathToData='' then TPath.GetHomePath;
   {$ENDIF}
   result:=TPath.Combine(PathToData, Datei);
end;

Harry Stahl 10. Aug 2014 20:56

AW: Mac OS X -> Ohne Delphi keine Funktion ?
 
Ist das beabsichtigt, oder nur ein Versehen:

Wenn PathToData leer ist, lieferst Du

- unter Windows und MAC das Programmverzeichnis zurück (nicht für User- oder Anwendungsdaten geeignet)
- unter IOS und Android das Dokumentenverzeichnis (gut für Userdaten, nichts für Anwendungsdaten)

Obwohl der Name GET-Homepath lautet, wird im Ergebnis ein Dateiname und nicht ein Verzeichnis zurückgeliefert (wenn die Variable Datei einen Inhalt hat).

arnof 11. Aug 2014 08:41

AW: Mac OS X -> Ohne Delphi keine Funktion ?
 
Zitat:

Zitat von Harry Stahl (Beitrag 1268258)
Ist das beabsichtigt, oder nur ein Versehen:

Wenn PathToData leer ist, lieferst Du

- unter Windows und MAC das Programmverzeichnis zurück (nicht für User- oder Anwendungsdaten geeignet)
- unter IOS und Android das Dokumentenverzeichnis (gut für Userdaten, nichts für Anwendungsdaten)

Obwohl der Name GET-Homepath lautet, wird im Ergebnis ein Dateiname und nicht ein Verzeichnis zurückgeliefert (wenn die Variable Datei einen Inhalt hat).

Ja absicht: GetHomepath ist nur dafür da, wenn alles andere nicht ging (sollte nicht vorkommen).

iOS und Android sollte/darf man keine Dateien in Programmverzeichnis legen, sondern ins Dokumentverzeichnis!

arnof 11. Aug 2014 08:56

AW: Mac OS X -> Ohne Delphi keine Funktion ?
 
Zitat:

Zitat von arnof (Beitrag 1268238)
Probleme über Probleme, wie ein echter Anfänger:

starte ich das PRG via Delphi geht das Ding!

Ohne Delphi macht das Ding sofort zu: man sieht es kurz aufblitzen das wars!

Dieses Verhalten ist im scratchdir des PAServers so und aber auch auch in einer ordentlich erzeugt Appstore Prg.

Wo und wie kann man da male schauen was da los ist ?!

Jetzt wird es noch komischer:

Gestern dachte ich es währe nun alles ok: nun doch nicht :twisted::roll:

im Debugmodus läuft das Programm nun auch direkt gestartet! Im Releasemodus macht es zu ohne eine Meldung auszugeben :pale::glaskugel:

arnof 11. Aug 2014 09:01

AW: Mac OS X -> Ohne Delphi keine Funktion ?
 
Nun noch besser, da kann man sich nun über Bugs in XE6 Streiten oder nicht:

ich gebe ShowMessages aus, um zu sehen wo es Probleme gibt, dann läuft die "scheiße" nun auch im Releasemodus!

Bei OnShow mach ich nur eine db connection auf, nichts schlimmes :cry:

arnof 11. Aug 2014 09:11

AW: Mac OS X -> Ohne Delphi keine Funktion ?
 
Zitat:

Zitat von arnof (Beitrag 1268287)
Nun noch besser, da kann man sich nun über Bugs in XE6 Streiten oder nicht:

ich gebe ShowMessages aus, um zu sehen wo es Probleme gibt, dann läuft die "scheiße" nun auch im Releasemodus!

Bei OnShow mach ich nur eine db connection auf, nichts schlimmes :cry:

ich habe nun meine paar Zeilen von onShow in einen Timer gelegt, dann klappt es; falls auch mal jemand nicht zu verstehende Probleme hat, vielleicht hilft mein Tipp!

Harry Stahl 11. Aug 2014 16:20

AW: Mac OS X -> Ohne Delphi keine Funktion ?
 
Zitat:

Zitat von arnof (Beitrag 1268283)
Ja absicht: GetHomepath ist nur dafür da, wenn alles andere nicht ging (sollte nicht vorkommen).

iOS und Android sollte/darf man keine Dateien in Programmverzeichnis legen, sondern ins Dokumentverzeichnis!

Das ist schon klar, ich meinte ja auch die Rückgabe unter Windows: Da soll man auch keine Anwender- oder Programmdaten in das Programmverzeichnis schreiben (sondern in das Programmdatenverzeichnis).


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 Uhr.
Seite 1 von 2  1 2      

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