OCX - Nutzung von "SysColorCtrl class"

8. Mai 2008 16:11

Hallo allerseits,

Wir benutzen (für Bekleidung) die Artikelvariante recht intensiv. Sie ist eigentlich noch einmal aufgeteilt in 2 (maximal 10) Untervarianten. Hier interessant nur die "normale" Unterscheudung" nach Größe und Farbe.

Und genau da bin ich schon an der interessanten Stelle. Es soll möglich sein eine Farbe komfortabel auszuwählen. Auch das ist noch kein Problem. Dafür kann das OCX "Microsoft Common Dialog Control, version 6.0" genutzt werden. Mit der Methode "ShowColor" wird das herkömliche Farbauswahlfenster von Windows angezeigt. Nach Auswahl und einem Klich auf OK kann der Wert in dem Property "Color" ausgelesen werden.

Soweit gibt es auch noch keine Schwierigkeiten. Jedoch ist der Rückgabewert von Typ Variant.
Na gut, dann wird halt noch das OCX "SysColorCtrl class" (%system32%\ cic.dll) bemüht. Hier kann man eigentlich diverse Umrechnungen gerade für Farben erledigen. Genutzt wird hier folgendes:

nwVariant := SysColorCtrl.ConvertRGBToHex(PfsColorVariant);
PfsColorInt := SysColorCtrl.ConvertHexToRGB(nwVariant);

Und nun endlich zu meiner Frage / meinem Problem:
Das ganze hat schon mal funktioniert, aber jetzt soll es genutzt werden und ich bekomme immer die Meldung von Navision, dass keine Instanz erstellt werden kann. Interessant !?!? Es ist KEIN Automation sondern ein OCX - da muss und kann ich keine Instanz erstellen!

Hat jemand ähnliche mal erlebt? Oder hat jemand evtl. einen Tip, was ich noch machen könnte?


Danke im Voraus und viele Grüße,
Ralph

9. Mai 2008 08:46

Hi,

hast du das auf einem neuen Rechner probiert? Vielleicht fehlen hier die dll files, oder sie sind nicht korrekt registriert?

Gruesse
feri

9. Mai 2008 21:51

Danke für den Tipp!
Klar habe ich es auf verschiedenen Rechnern Probiert. Bei mir ist XP drauf. Hab es dann auch einfach unter Vista probiert aber mit dem gleichen Ergebniss. Eine KOllegin hat allerdings einen Rechner und nur recht "beschrenkte" Rechte - dort hat es geplappt. Ich sehe nur noch keinen Unterschied - sie hat wie ich 3.70, 4.03 und 5.01 installiert. OK, ich habe auch noch Entrepreneur (sogar installiert), aber das kann es ja nicht sein...

10. Mai 2008 08:17

Hallo Ralph,

das hört sich an als ob eine Abhängigkeit des OCX fehlt. Prüf mal mit dem Dependency Walker (oder einem ähnlichen Programm), ob alle benötigten Module und DLLs für das OCX auf dem System verfügbar sind.