HI,
da ich inzwischen auch ein MacBook hab liegt's natürlich nahe, mein aktuelles PB-Projekt nicht nur für Windows sondern auch für MacOSX zu bauen. Also hab ich PB5.6 Mac installiert und eine Kopie des win-Projekts unter PB-Mac aufgerufen und kompiliert. Beim Kompilieren wurde etwas nachinstalliert (hab ich leider nicht mitgeschrieben). Ich mußte einige Dinge erst einmal im code inaktiv setzten, da PB-Mac dies nicht verarbeiten konnte (z.B. Hintergrundfarbe ermitteln über WIN-API-Zugriff). Solche Dinge sind mir verständlich und ich muß jetzt eine MAC-taugliche Lösung finden.
Nicht verständlich ist mir, dass (einige) unter Win problemlos behandelte Canvas-Aktionen unter Mac nicht mehr laufen (entweder stoppt der Compiler mit Fehler oder das Resultat ist anders, wie auf win (z.B. Habe ein Fenster, dass versteckt bei Programmstart geöffnet wird und nur ein Canvas enthält. Unter Win ist das Fenster nicht zu sehen - unter Mac ist das Canvas zu sehen, aber der Fensterrahmen nicht.)
Meine Frage ist (wird vermutlich nicht das erste Mal gekommen sein, Suchfunktion hat mir leider immer nur Einzelproblemlösungen gezeigt):
Gibt es eine umfangreichere Darstellung der Unterschiede von PB WIN und PB Mac, außer den Hinweisen in der Doku zu den einzelnen Befehlen?
Mit WIN hatte ich zumindest schon mal einige Programmier-Berührung - mit Mac bisher wirklich nur als Anwender)
WIN/MacOSX - Unterschiede
Re: WIN/MacOSX - Unterschiede
Eines vorweg, ich habe keinen Mac und entsprechend keinerlei Erfahrungen mit macOS. Werde als auf mac-spezifische Fragen idR. nicht antworten können. Aber, wenn ich das hier lese:
Den Überblick über Betriebssystemabhängige Befehle (ist offline Bestandteil der Hilfe) hast du schon gesehen, oder?
gehe ich davon aus, dass du damit die Anmerkungen zu jedem einzelnen Befehl meinst, für welche Systeme er verfügbar ist. Entsprechend meine Frage:kartmanne hat geschrieben:Gibt es eine umfangreichere Darstellung der Unterschiede von PB WIN und PB Mac, außer den Hinweisen in der Doku zu den einzelnen Befehlen?
Den Überblick über Betriebssystemabhängige Befehle (ist offline Bestandteil der Hilfe) hast du schon gesehen, oder?
Re: WIN/MacOSX - Unterschiede
Die Liste ist ein Anhaltspunkt, die Hilfe genauso. Bei jeder Funktion steht eigentlich "Unterstützte OS" darunter.
Dass OS spezifische Sachen nicht funktionieren sollte klar sein. Viele dieser API Funktionen haben einige aus der
Community für andere OS "übersetzt" bzw. Alternativen gefunden (Meist wirst du im engl. Forum fündig.)
Shardik ist so ein Kandidat
Es gibt auch eine LinuxAPI Hilfeseite vom User Oma, die ähnlich aufgebaut ist wie die von RSBasic.
Desweiteren gibt es vielleicht den einen oder anderen Kniff, den man evt. erfragen müsste. Wie z.B. dein Problem
mit dem Canvas und dem versteckten Fenster. Evt. ist an deinem Code dafür etwas "verrissen", wobei dir die
Mac Jünger hier und im engl. Forum bestimmt weiterhelfen können
Das franz. Forum gibts auch noch, aber das liess ich aus, weil ich der Sprache absolut nicht mächtig bin
Dass OS spezifische Sachen nicht funktionieren sollte klar sein. Viele dieser API Funktionen haben einige aus der
Community für andere OS "übersetzt" bzw. Alternativen gefunden (Meist wirst du im engl. Forum fündig.)
Shardik ist so ein Kandidat
Es gibt auch eine LinuxAPI Hilfeseite vom User Oma, die ähnlich aufgebaut ist wie die von RSBasic.
Desweiteren gibt es vielleicht den einen oder anderen Kniff, den man evt. erfragen müsste. Wie z.B. dein Problem
mit dem Canvas und dem versteckten Fenster. Evt. ist an deinem Code dafür etwas "verrissen", wobei dir die
Mac Jünger hier und im engl. Forum bestimmt weiterhelfen können
Das franz. Forum gibts auch noch, aber das liess ich aus, weil ich der Sprache absolut nicht mächtig bin
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom
Re: WIN/MacOSX - Unterschiede
HI,
ja, die Liste hatte ich gefunden und ich weiß auch, dass bei jedem Befehl ggf. dabei steht, wenn's OS-spezifische Abweichungen gibt, und wie die zu handhaben wären. Das kann ich sicher benutzen... erschien mir jedoch erst einmal als 2. Schritt, denn mit fehlen MAC-System- und Programmiergrundkenntnisse. Hätte ich hier eine vielleicht sogar PB-bezogene Anschubhilfe, dann kann ich mit der PB-Hilfe schon leichter umgehen.
Ich möchte versuchen, den code so aufzubauen, dass OS-Spezifisch schlicht fehler- und verhaltensfrei compiliert werden kann.
Jep, ich vermute auch, dass der win-code beim canvas nicht sauber ist und ggf. zur Laufzeit dies einfach toleriert wird. Das hab ich auch bei Rechenoperationen beobachtet, die Teilen durch 0 tolerieren und das Programm einfach weiter läuft... Könnte also sein, dass MAC_spezifisch ggf. die Canvas-Situation eben nicht toleriert wird. Ich such da erstmal selbst und frag dann schon im Forum dazu nach.
Danke für die Tips.
ja, die Liste hatte ich gefunden und ich weiß auch, dass bei jedem Befehl ggf. dabei steht, wenn's OS-spezifische Abweichungen gibt, und wie die zu handhaben wären. Das kann ich sicher benutzen... erschien mir jedoch erst einmal als 2. Schritt, denn mit fehlen MAC-System- und Programmiergrundkenntnisse. Hätte ich hier eine vielleicht sogar PB-bezogene Anschubhilfe, dann kann ich mit der PB-Hilfe schon leichter umgehen.
Ich möchte versuchen, den code so aufzubauen, dass OS-Spezifisch schlicht fehler- und verhaltensfrei compiliert werden kann.
Jep, ich vermute auch, dass der win-code beim canvas nicht sauber ist und ggf. zur Laufzeit dies einfach toleriert wird. Das hab ich auch bei Rechenoperationen beobachtet, die Teilen durch 0 tolerieren und das Programm einfach weiter läuft... Könnte also sein, dass MAC_spezifisch ggf. die Canvas-Situation eben nicht toleriert wird. Ich such da erstmal selbst und frag dann schon im Forum dazu nach.
Danke für die Tips.
Re: WIN/MacOSX - Unterschiede
Wenn du mit Threads arbeiten solltest...
Was auf jeden fall nicht geht sind Gadget aus einen Thread zu ändern. SetGadgetText, AddGadgetItem, etc. Dieses gilt auch für Linux.
Lösung findest du hier - http://www.purebasic.fr/english/viewtop ... 12&t=66180
Was auf jeden fall nicht geht sind Gadget aus einen Thread zu ändern. SetGadgetText, AddGadgetItem, etc. Dieses gilt auch für Linux.
Lösung findest du hier - http://www.purebasic.fr/english/viewtop ... 12&t=66180
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Re: WIN/MacOSX - Unterschiede
Hast du dir schon mal "CompilerSelect" angesehen? Ich programmiere zwar nur für Windows, da meine Programme eh nur für den Eigengebrauch sind, aber würde ich mal plattformübergreifend arbeiten wollen, wäre das wohl mein erster Ansatzpunkt.kartmanne hat geschrieben: Ich möchte versuchen, den code so aufzubauen, dass OS-Spezifisch schlicht fehler- und verhaltensfrei compiliert werden kann.
Code: Alles auswählen
Syntax
CompilerSelect <numerischer Wert>
CompilerCase <numerischer Wert>
...
[CompilerDefault]
...
CompilerEndSelect
Beschreibung
Arbeitet wie das reguläre Select : EndSelect, außer dass nur ein numerischer Wert pro Bedingung erlaubt ist. Es teilt dem Compiler mit, welcher Programmcode kompiliert werden soll. Dies ist nützlich beim Erstellen von Multi-OS (auf mehreren Betriebssystemen lauffähigen) Programmen, um einige Programmabschnitte mit OS-spezifischen Funktionen individuell zu gestalten.
Beispiel
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_MacOS
; etwas Mac OS X spezifischer Programmcode
CompilerCase #PB_OS_Linux
; etwas Linux spezifischer Programmcode
CompilerEndSelect
Re: WIN/MacOSX - Unterschiede
HI,
ich vermeide threads. Bisher habe ich keine Vorteile darin für meine Projektchen erkannt.
Ja genau, Betriebssystem-abhängige code-Gestaltung mit compilerselect hatte ich vor. Solche einfachen Möglichkeiten mag ich an pb
ich vermeide threads. Bisher habe ich keine Vorteile darin für meine Projektchen erkannt.
Ja genau, Betriebssystem-abhängige code-Gestaltung mit compilerselect hatte ich vor. Solche einfachen Möglichkeiten mag ich an pb