Juergens-Workshops.de Forum
CorelDrawX6 Symbolmanager - Druckversion

+- Juergens-Workshops.de Forum (https://forum.juergens-workshops.de)
+-- Forum: Corel Grafik Forum (https://forum.juergens-workshops.de/forumdisplay.php?fid=65)
+--- Forum: Corel Draw (https://forum.juergens-workshops.de/forumdisplay.php?fid=93)
+--- Thema: CorelDrawX6 Symbolmanager (/showthread.php?tid=36443)

Seiten: 1 2 3


CorelDrawX6 Symbolmanager - koter - 23.08.2015

norre schrieb:kanns vielleicht an 32bit / 64 bit liegen

kann sein. Es könnte aber auch sein, dass die Bibliothek, die hinzugefügt werden soll schon vorhanden ist.

in dem Fall kann man dem Modul eine Funktion hinzufügen die das prüft:

Code:
Function BibVorhanden(pfad) As SymbolLibrary
    Dim Bib As SymbolLibrary
    For Each Bib In SymbolLibraries
        If pfad = Bib.FilePath Then
            Set BibVorhanden = Bib
        End If
    Next
End Function

und man muss das hinzufügen natürlich bedingt machen:

Code:
Set BiliothekNeu = BibVorhanden(NeuerPfad)
    If BiliothekNeu Is Nothing Then
        Set BiliothekNeu = SymbolLibraries.Add(NeuerPfad)
    End If

Das kannst Du ja mal versuchen, Helmut. Vielleicht ist es das schon.

Gruß

Koter


CorelDrawX6 Symbolmanager - HelRo - 23.08.2015

[SIZE="4]Das wars![/SIZE]

Geniale Lösung.

Vielen Dank an alle die geantwortet haben. Wirklich ein sehr hilfreiches Forum.

Viele Grüße
Helmut


CorelDrawX6 Symbolmanager - koter - 23.08.2015

Hallo Helmut,

kleiner Nachtrag:

Das Makro war so angelegt, dass es am Symbolmanager nichts ändert, also keine Bibliotheken nach der Ausführung geladen sind, die es vorher nicht waren.
In der letzten Zeile der Sub „SymbolTausch“ wird deshalb die temporär geladene Bibliothek gelöscht. Nach der Änderung, nach der nun auch schon geladene Bibliotheken verwendet werden, löscht dieser Befehl auch diese. Das soll ja eigentlich nicht sein, deshalb würde ich den Befehl bedingt machen. z.B. eine Boolsche Variable setzen und diese als Bedingung verwenden:

Code:
If BiliothekNeu Is Nothing Then
        Set BiliothekNeu = SymbolLibraries.Add(NeuerPfad)
        löschen = True
    End If

letzte Zeile:

Code:
If löschen Then BiliothekNeu.Delete

Gruß

Koter