2016-04-12 10 views
0

Ich stoße auf ein Problem, wo einige Benutzer nach dem Erstellen einer Anwendung mit Powerbuilder kein Problem mit dem Anzeigen von Symbolen innerhalb der Anwendung haben, während andere die Symbole nicht sehen können. Außerdem wird das Hauptsymbol für die Anwendung nicht in der Windows-Taskleiste angezeigt. Ich werde mit der Symbolgröße spielen, aber wenn jemand andere Empfehlungen hat, wäre das großartig!Powerbuilder Icon Problem

+0

Ist das Symbol in den kompilierten Ressourcen enthalten oder wird es direkt vom Dateisystem verwendet? Wenn letzteres und die Anwendung auf einem Fileserver bereitgestellt wird, kann dieses Problem auftreten. – Seki

Antwort

0

In der IDE, in der Sie den Namen der Symboldatei einfügen, stellen Sie sicher, dass Sie keinen Pfad haben (wie "C: \ graphics \ myicon.ico") - nur der Name der Symboldatei. Stellen Sie dann sicher, dass sich die Symboldateien irgendwo in einem Ordner in der PATH-Variablen Ihres Systems befinden. Wenn Sie Ihre Anwendung erstellen, können Sie eine PBR-Datei (eine Ressourcendatei) im Projekt für die Anwendung verwenden. Wenn Sie alle in der Anwendung verwendeten Grafikdateien in dieser Ressourcendatei auflisten, werden sie in die EXE aufgenommen (und Sie müssen sie nicht separat verteilen).

0

Matt ist genau richtig, wenn Sie keine Pfadnamen in Ihren Bildreferenzen in der App verwenden. Korrigiere auch, dass es am besten ist, sie in die App zu kompilieren. Während der Entwicklung möchte ich jedoch meine Ressourcen und DLLs in separaten Verzeichnissen trennen. Um dies zu tun, ohne globale env-Variablen zu ändern, können Sie Ihre Verzeichnisse in den PB "App Paths" -Registrierungsbereich aufnehmen.

Je nach PB Version ... "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ Currentversion \ App Paths \ pb125.exe"

Dort finden Sie einen "PATH" Wert finden. Hängen Sie einfach die Verzeichnisse dev, resource, dll, an diesen Pfad an, getrennt durch ";" und PB wird sie finden (Neustart erforderlich).

Ich erstelle Reg-Dateien im Stamm jeder App, an der ich arbeite, um meine Pfade schnell zu registrieren.

0

HINWEIS: Das Gleiche funktioniert mit Ihrer endgültigen kompilierten Anwendung; Aber anstatt den PB-Abschnitt zu verwenden, wird ein Abschnitt mit dem Namen Ihrer ausführbaren Datei erstellt. Machen Sie dasselbe - fügen Sie Pfade hinzu, in denen Ressourcen vom EXE-Verzeichnis getrennt sind.

1

Ich möchte nicht die ausführbare Datei jedes Mal neu kompilieren, wenn es eine kleine Grafikänderung oder eine Anpassung gibt, die nur für eine Bibliothek gilt, und ich mag keine Grafiken in die ausführbare Datei kompilieren ... es macht die exe-Datei sehr groß. Kein Grund, die Exe neu zu erstellen, es sei denn, die Bibliotheksliste ändert sich. Also benutze ich .pbr-Dateien, und baue einfach den pbl mit einer pbr-Datei neu.

Meine graphics.pbr-Datei befindet sich im selben Verzeichnis wie meine Grafiken, so dass ich mich nicht mit Umgebungsvariablen herumschlagen oder mich um Dateipfade kümmern muss. Ich habe eine leere graphics.pbl im AppCore-Verzeichnis und eine graphics.pbr im Grafikverzeichnis erstellt. Die Datei "graphics.pbl" befindet sich in der Bibliotheksliste der Anwendung. Wenn ich Grafiken hinzufügen oder bearbeiten muss, stelle ich einfach die graphics.pbl mit der graphics.pbr wieder her.

Ich habe mehrere Kunden mit der gleichen Anwendung, mit ihren eigenen Grafiken (Logos), also mache ich das gleiche dort. Hier ist, was meine Verzeichnisstruktur wie folgt aussieht:

MeineAnw

MeineAnw.pbw

AppCore

graphics.pbl 

bunch more libraries 

AppGraphics

single resource file, graphics.pbr 

bunch of icons and graphics 

Customer1

Customer1.pbl 

Customer1.pbr 

a few libraries for customization and container for application object 

a few custom graphics 

Kunde2

etc. 

Der Schlüssel besteht darin, sicherzustellen, dass beim Hinzufügen von Grafiken oder Bildern zu Ihrer Anwendung aus dem AppGraphics-Verzeichnis (oder dem Kundenverzeichnis) sichergestellt wird, dass kein Verzeichnispfad vorhanden ist.

Diese Lösung hat es mir erleichtert, die nächsten Upgrades und Versionen weiter zu entwickeln, indem ich den Code verschiebe und einige Verzeichnisse umbenenne, ohne meinen Code bearbeiten zu müssen, weil sich mein Verzeichnispfad geändert hat.

Das ist langwierig, aber ich hoffe es hilft!

~~~ Tracy