MacOS Zugriffsrechte Daten und Sicherheit / I have problems with the MacOS file system.

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Paul Koop
Beiträge: 4
Registriert: Mo 15. Nov 2021, 10:48

MacOS Zugriffsrechte Daten und Sicherheit / I have problems with the MacOS file system.

Beitrag von Paul Koop »

Ich benötige Hilfe: Ich habe Probleme mit dem Dateisystem von MacOS (Systemeinstellungen: Sicherheit & Datenschutz). Mein Schachprogramm verwendet für die Darstellung der Figuren auf dem Brett Bilddateien (PNG). Die Version für Windows (Object Pascal Lazarus) kann auf die Dateien zugreifen. Die Version für MacOS (Object Pascal Lazarus) nicht: Ich bin für Hilfe dankbar

I need help: I have problems with the MacOS file system. My chess program uses image files (PNG) to display the pieces on the board. The version for Windows (Object Pascal Lazarus) can access the files. The version for MacOS (Object Pascal Lazarus) does not: I am grateful for help
https://github.com/pkoopongithub/chessteg
Zuletzt geändert von Paul Koop am Di 17. Mai 2022, 08:01, insgesamt 1-mal geändert.

Benutzeravatar
six1
Beiträge: 788
Registriert: Do 1. Jul 2010, 19:01

Re: MacOS Zugriffsrechte Daten und Sicherheit / I have problems with the MacOS file system.

Beitrag von six1 »

Hi,
zeig doch mal die Programmzeile, welche auf die Bilder zugreift, bzw wie du den Pfad dorthin ermittelst/zusammenstellst ...

Hast du PATHDELIM eingesetzt?
Gruß, Michael

Paul Koop
Beiträge: 4
Registriert: Mo 15. Nov 2021, 10:48

Re: MacOS Zugriffsrechte Daten und Sicherheit / I have problems with the MacOS file system.

Beitrag von Paul Koop »

Beispiel PNG Turm Weiss:

rltTurmWeiss:=TPortableNetworkGraphic.Create;
rltTurmWeiss.LoadFromFile('./Chess_rlt60.png');

https://github.com/pkoopongithub/chessteg

PS.: Danke für die Mühe, ich such weiter, die PNG Dateien haben den selben Pfad wie die Anwendung, die Dateinamen sind korrekt. Ich denke, das Problem ist ein Problem mit den Sicherheitseinstellungen des Mac.
Zuletzt geändert von Paul Koop am Di 17. Mai 2022, 08:20, insgesamt 1-mal geändert.

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1435
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: MacOS Zugriffsrechte Daten und Sicherheit / I have problems with the MacOS file system.

Beitrag von fliegermichl »

Vielleicht stimmt das Verzeichnis nicht?

Code: Alles auswählen

if FileExists('./Chess_rlt60.png') then
  rltTurmWeiss.LoadFromFile('./Chess_rlt60.png')
else
 ShowMessage('File not found');

Paul Koop
Beiträge: 4
Registriert: Mo 15. Nov 2021, 10:48

Re: MacOS Zugriffsrechte Daten und Sicherheit / I have problems with the MacOS file system.

Beitrag von Paul Koop »

Danke für die Mühe, ich such weiter, die PNG Dateien haben den selben Pfad wie die Anwendung, die Dateinamen sind korrekt. Ich denke, das Problem ist ein Problem mit den Sicherheitseinstellungen des Mac.

https://github.com/pkoopongithub/chessteg

Benutzeravatar
six1
Beiträge: 788
Registriert: Do 1. Jul 2010, 19:01

Re: MacOS Zugriffsrechte Daten und Sicherheit / I have problems with the MacOS file system.

Beitrag von six1 »

lass doch mal ./ weg, wenn es das Programmverzeichnis ist:
rltTurmWeiss.LoadFromFile('Chess_rlt60.png');

ich würde es so machen:
rltTurmWeiss.LoadFromFile(extractfilepath(application.exename)+'Chess_rlt60.png');
Gruß, Michael

hum4n0id3
Beiträge: 301
Registriert: So 5. Mai 2019, 15:23

Re: MacOS Zugriffsrechte Daten und Sicherheit / I have problems with the MacOS file system.

Beitrag von hum4n0id3 »

Ich würde zuerst schauen zu welchem Benutzer die Dateien gehören und welche Rechte auf die Dateien vergeben sind. Ob die Bilder sich mit einem Bildbetrachter ansehen lassen. Wo liegt die Anwendung?

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1435
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: MacOS Zugriffsrechte Daten und Sicherheit / I have problems with the MacOS file system.

Beitrag von fliegermichl »

six1 hat geschrieben:
Di 17. Mai 2022, 09:48
ich würde es so machen:
rltTurmWeiss.LoadFromFile(extractfilepath(application.exename)+'Chess_rlt60.png');
Übrigens gibt es dafür Application.Location.

Benutzeravatar
six1
Beiträge: 788
Registriert: Do 1. Jul 2010, 19:01

Re: MacOS Zugriffsrechte Daten und Sicherheit / I have problems with the MacOS file system.

Beitrag von six1 »

fliegermichl hat geschrieben:
Di 17. Mai 2022, 11:28
Übrigens gibt es dafür Application.Location.
...meinst du, ich lerne das noch? :lol:
Gruß, Michael

charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: MacOS Zugriffsrechte Daten und Sicherheit / I have problems with the MacOS file system.

Beitrag von charlytango »

fliegermichl hat geschrieben:
Di 17. Mai 2022, 11:28
Übrigens gibt es dafür Application.Location.
Vorteil sehe ich da aber keinen.

Code: Alles auswählen

Property Location : String Read GetLocation; 

function TCustomApplication.GetLocation: String;
begin
  Result:=ExtractFilePath(GetExeName);
end;
Würde der Wert im Application Objekt als Variable gespeichert, könnte ich dem zustimmen. Passiert aber nicht und wird daher jedesmal neu ausgelesen.
Keine Ahnung ob Speichern einen Performance-Unterschied zum neu erstellen macht. :roll:

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: MacOS Zugriffsrechte Daten und Sicherheit / I have problems with the MacOS file system.

Beitrag von Soner »

Ich bin kein Macos-Experte und verwende es nicht, aber als ich für mein Programm Macos-Version erstellt habe, hatte ich einiges gelernt. Du musst für dein Programm notwendige Dateien in Unterordner (Ressources) von deinem Programm packen, die nennen es Package. Ich hatte es so gelöst:

Code: Alles auswählen

 //AppDataDir ist String-Variable
 {$IfDef DARWIN}
AppDataDir:=ExtractFileDir(ExtractFileDir(Application.ExeName))+'/Resources'+PathDelim+'Bilder'+PathDelim;
 {$Else}
 AppDataDir:=ExtractFileDir(Application.ExeName)+PathDelim+'Bilder'+PathDelim; 
 {$EndIf}  
 
 MyPicture.LoadFromFile(AppDataDir+'katzenbild.jpg');
Schaue in dein Programm-Ordner nach, dort muss ein Ordner sein, der etwa so heißt:
DEIN_PROGRAMMNAME.app\Contents\Resources.

Da rein musst du die Sachen kopieren, oder link setzen (ln -s ...).

PascalDragon
Beiträge: 830
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: MacOS Zugriffsrechte Daten und Sicherheit / I have problems with the MacOS file system.

Beitrag von PascalDragon »

charlytango hat geschrieben:
Di 17. Mai 2022, 21:17
fliegermichl hat geschrieben:
Di 17. Mai 2022, 11:28
Übrigens gibt es dafür Application.Location.
Vorteil sehe ich da aber keinen.
Es liest sich einfacher.
FPC Compiler Entwickler

Antworten