Laden...

Forenbeiträge von Telefisch Ingesamt 374 Beiträge

08.05.2009 - 08:33 Uhr

Hallo Patzi...
Ist ja lustig, gibt offensichtlich noch Andere, die sich mit Eplan rumquälen...
Ich habe ein ähnliches Problem was bei mir aus einem Excel-Addin entsteht.
Offensichtlich hat Excel es nicht nötig das Arbeitsverzeichnis zu verwenden bzw. macht trotz anders lautender Einstellungen noch eigene Kopien der Assemblys.

Jetzt hat Eplan den Lösungsvorschlag die machine.config aus .NET2.0 so zu ändern, dass die Assemblies richtig geladen werden.

Kann ich die machine.config auch programmatisch ändern? Ich finde das eigentlich etwas unelegant.

Die zweite Alternative war ein zweites exe zu erstellen, dass im Grunde losgelöst von Excel die Eplan API verwendet.
Aber ich hab ehrlich gesagt keine Ahnung wie ich das anstellen muss...
Kann mir dazu jemand einen Tipp geben?

Danke
Carsten

07.05.2009 - 12:01 Uhr

Man...
das Leben kann so einfach sein.

Dankeee

07.05.2009 - 11:18 Uhr

Hallo Forum,

ich habe trotz Suche immer noch ein Problem.
Ich muss mit einem AddIn feststellen, ob eine Zelle eine Formel beinhaltet.
Die Eigenschaft Formular auf null zu prüfen geht schon mal nicht.

Habt Ihr da einen Tipp?

Greets Tele

04.05.2009 - 10:29 Uhr

Hallo Rainbird,
erst mal danke für die Antwort.
Musste leider erst wieder ein anderes Projekt debuggen und komme daher jetzt erst wieder zu meinem AddIn.

...und werde das jetzt versuchen.

29.04.2009 - 15:23 Uhr

Hmm...
tja, nicht so einfach.

Manchmal ist die Messagebox schneller als der Dialog und außerdem wird das doch wieder Brösel geben, da der Dialog ja im GUI-Thread läuft.

Ich hab jetzt über die ProgressChanged-Methode den Dialog vor der MsgBox versteckt und danach wieder angezeigt.

Nicht so schön aber geht...

29.04.2009 - 12:48 Uhr

Sodele....

jetzt läuft das alles prima mit dem Backgroundworker.
Ich starte vorher ein Dialogfenster (mit Propgressbar) und bringe es mit TopMost nach vorne.
Während der Worker läuft, muss ich allerdings eine Messagebox aufpoppen lassen.
Kann ich die irgendwie vor den Dialog holen?

danke Tele

28.04.2009 - 15:59 Uhr

lool...

Ich wusste, dass ich sowas schon gelesen hatte.
War nur bei dem ganzen Durcheinander von Threads und Workern und Helpern etc. nicht mehr sicher wo und wozu es gehörte.

Danke, passt ! 👍

28.04.2009 - 15:46 Uhr

Ok, das wirft mich jetzt zurück...

Nun, im Augenblick brauche ich das sicher nicht, da ich keinen Fortschritt habe und nur eine marquee-Progress-bar verwende.

Ich fürchte aber, dass das noch auf mich zu kommt.
Also danke für den Tipp.

28.04.2009 - 14:59 Uhr

Hmm...

erstmal danke für die schnelle Antwort.

...damit wäre der Dialog aber nicht mit ShowDialog() anzuzeigen oder?
Sonst komme ich ja nicht weiter um den Worker zu starten.

Wie kann ich denn dann verhindern, dass der User den Dialog einfach schließt bzw. wieder mit der ursprünglichen Form weiter arbeitet?

tnx Tele

28.04.2009 - 14:40 Uhr

Hallo Forum,
ich habe ein Aufgabe, bei der ich etwas Verständnisprobleme, die Lösung betreffend habe.

Zunächst meine Aufgabe...

Ich lade eine Datei in einen Viewer (dwg-Zeichnung).
Dieses Laden dauert ziemlich lange und ich habe keinerlei progress-Informationen oder Progress-Events.

Da ich keinerlei tatsächlichen Progress habe und das Laden bzw. die Zeit von der Anzahl der Elemente in der Zeichnung abhängen sehe ich kaum Möglichkeiten einen Reellen Progress zu berechnen.

Deswegen möchte ich wenigstens einen Dialog mit etwas "Bewegung" starten, der nach dem Laden wieder schließt.

Jetzt habe ich schon einige Threats zu diesem Thema gelesen, werde aber nicht schlau draus.

Im Grunde hätte ich ganz gerne etwas in dieser Form:

öffne Dialog
Lade dwg
schließe Dialog

Nun bleibt ja eigentlich das Programm nach dem Öffnen des Dialogs stehen, bis er wieder geschlossen wird.

Wie kann man dieses Problem lösen?
Wenn möglich, gebt mir ein paar kleine Snippets.

Nach dem, was ich bisher gelesen habe, müsste das Laden der Datei in einem eigenen Threat laufen aber wo muss der starten?
Und wie weiß ich, wann der Dialog wieder geschlossen werden kann?

Vermutlich sind hier einige Basic-Fragen bei aber vielleicht kann mich trotzdem jemand auf die Spur setzen...

Danke schon mal
Gruss Tele.

23.04.2009 - 15:33 Uhr

Hallo Forum,
ich hab schon diverse Threats gelesen aber komme irgendwie nicht auf einen grünen Zweig...

Wie kann ich alle selektierten Zeilen bzw. die Zeilen von selektierten Zellen ermitteln um mittels einer foreach-Schleife durch zu laufen?

Dass ich mit "foreach ( Range row in sheet.Rows )" durch alle Zeilen laufen kann weiß ich bereits nur ist es doch sehr ungünstig generell alle Zeilen durchzublättern wenn ich eigentlich nur einige Wenige brauche...

Hat vielleicht jemand einen Link zu vernünftigen Hilfen?
Ich finde entweder nur die Basics wie man ein Addin erstellt oder wie man in VBA innerhalb von Excel arbeitet aber das bringt mich nicht weiter.

Dank Euch im Voraus
Gruss Tele

31.03.2009 - 16:18 Uhr

Hmm.. naja, da will jetzt mal net streiten aber es ist M.E. am code schon ersichtlich dass frm... das Formular ist.

Schließlich erbt die Klasse ja Form.

Und BTW...
Ein Form ist so weit ich weiß auch nur ne Klasse wie alle Anderen, egal ob groß oder klein geschrieben. Oder?

Aber mach Dir nichts draus, ich habs ja auch nicht gesehen 🤔

...und danke nochmal für die Hilfe !

31.03.2009 - 15:27 Uhr

Oh man wie blöd...
Ja sicher.
Danke

Für die, die es nicht gesehen haben:

statt
"Form insertForm = new Common.frmBlockInsert();"

muss es

"Common.frmBlockInsert insertForm = new Common.frmBlockInsert();"

lauten.

31.03.2009 - 14:42 Uhr

Hmm..
naja, ich nenne meine Forms immer frm am Anfang...
Aber egal.

Also ich bekomme schonmal kein Intellisense-Vorschlag und dann folgenden Fehler:

Fehler 5 "DevExpress.XtraEditors.XtraForm" enthält keine Definition für "Sourcemodel", und es konnte keine Erweiterungsmethode "Sourcemodel" gefunden werden, die ein erstes Argument vom Typ "DevExpress.XtraEditors.XtraForm" akzeptiert. (Fehlt eine Using-Direktive oder ein Assemblyverweis?) C:\Dokumente und Einstellungen\Fischer\Eigene Dateien\Visual Studio 2008\Projects\DDT.PDMS\DDT.LMS\Forms\frmMain.cs 686 28 DDT.LMS

XtraForm ist im Grunde eine ander Form von Form, aber sonst vollständig kompatibel (nur etwas hübscher).

Ansonsten funktioniert der Aufruf der Form einwandfrei. Ich kann halt keine setter verwenden.
Im Augenblick übergebe ich diverse Informationen als Argument an den Konstruktor, wobei ich schon die nächste Frage habe.
Sollte es nicht möglich sein den Konstruktor zu überladen?

Auch da bekomme ich nur Brösel...

31.03.2009 - 13:31 Uhr

Hallo Forum,
ich habe ein Problem mit der Datenübergabe an eine Form.

Ich weiß, das Thema ist schon hundertfach besprochen worden aber mit dem besprochenen komme ich nicht zum Ziel.

Meine Situation ist Folgende:

Ich habe ein Form, dass ein Dialog-Form öffnet (über einen Button).

Jetzt war mein Gedanke den Dialog so zu öffnen:

Form insertForm = new Common.frmBlockInsert();
            insertForm.Sourcemodel = Viewer.Model;
            insertForm.ShowDialog();
       

Wie hier schon angedeutet befindet sich diese Dialog-Form in einer DLL namens Common.

In der Dialog-Form habe ich folgenden Code vorgesehen:

public partial class frmBlockInsert : Form
    {
        private DxfModel sourceModel = null;
        
        
        public DxfModel Sourcemodel
        {
            set
            {
                sourceModel = value;
            }
        }
            
        public frmBlockInsert()
        {
            InitializeComponent();
        }
    }

Dummerweise bekomme ich keinen Zugriff auf den Setter.
Warum nicht?
Geht das bei Forms etwa nur über Methoden?

tnx
Tele

26.03.2009 - 16:05 Uhr

Ich fürchte es wird wohl darauf hinaus laufen.

Danke

26.03.2009 - 14:24 Uhr

...Sicher kann ich das anhängen, geschieht aber nur automatisch, wenn keine Endung angegeben wird.

Dazu ist aber die Vorgehensweise bei vielen Usern so, dass sie eine vorhandene Datei anklicken und dann den Filter einfach auf das gewünschte Format anpassen.
Jetzt bekomme ich das aber nur mit, wenn der Dialog bestätigt wurde und ich den Filterindex gelesen habe.
Bis dahin hat der User aber schon die Rückfrage bekommen ob er die existierende Datei überschreiben will (die mit der originalen Erweiterung).
Und das ist doof.

greets Tele

25.03.2009 - 16:12 Uhr

Naja, helfen tut es nicht wirklich...
Also wenn ich z.B. Excel öffne und dort eine Datei speichern möchte steht z.B. Mappe1.xls als Dateiname unten drin.
Ändere ich den Filter auf csv, steht dort Mappe1.csv.

Wie kann ich dieses Verhalten erzeugen?
Gibt es da eine anderen Dialog?
Bei mir bleibt immer die Dateiendung so stehen, wie sie ist.

25.03.2009 - 14:50 Uhr

Hmm...
ich muss dieses Thema doch noch einmal öffnen.

Ich kann ja die Dateiversion anhand des ausgewählten Index anpassen aaaber...

Wenn ich eine Datei Test.dwg voreingestellt hatte (Im Dialog) und der Filter auf *.dxf gewechselt wird, ändert sich die Dateiendung nicht mit. D.h. wenn eine Test.dwg existiert, wird dennoch gefragt ob sie überschrieben werden soll, obwohl die neue Datei ja eine dxf werden soll.

Wie kann ich die sofortige Änderung der Dateiendung schon im Eingabefeld veranlassen?


SaveFileDialog fdlg = new SaveFileDialog();
                fdlg.AddExtension = true;
                fdlg.AutoUpgradeEnabled = true;
                fdlg.DefaultExt = ".dwg";
                fdlg.FileName = Viewer.Model.Filename;
                fdlg.Filter = Languages.Properties.Resources.FilterAcadSaveAs;
                fdlg.FilterIndex = 1;
                fdlg.OverwritePrompt = true;
                fdlg.SupportMultiDottedExtensions = true;
                fdlg.Title = Languages.Properties.Resources.MessageSelectDWG;
                if ( fdlg.ShowDialog() == DialogResult.OK )

...das ist die Initialisierung meines Dialogs.

Danke
Tele

23.03.2009 - 09:44 Uhr

Hmm...
nicht schön aber dann muss ich das durch ein Menü lösen.

Ich möchte Dateien in verschiedenen Versionen speichern. Da kann ich keine Kompatibilität prüfen, weil ich die Datei ja selbst erstelle.

Naja, wird's halt anders gelöst.
Danke für die Info

Tele

20.03.2009 - 09:49 Uhr

Hallo Forum...
Ich hab mal wieder ne Frage, die hoffentlich nicht unter Grundlagen fällt...

Also ich möchte eine Grafik (.dwg / .dxf) über einen SaveFileDialog speichern.
Jetzt soll der Benutzer die Möglichkeit haben verschiedene Dateiversionen auszuwählen (ACAD 2007, ACAD 2004,...etc)
Die Dateiendung ist ja bekanntermaßen bei allen gleich.

Wie bekomme ich am elegantesten mit, welchen Filter der Anwender ausgewählt hat?
Da ich den Filter aus einer Resource beschrifte (Alle Filter in einem String) und das natürlich der lokalisierung dient ist das sicher keine geschickte Lösung den Filtertext zu interpretieren.
Gibt es da was besseres? Gibt es vielleicht zusätzliche Eigenschaften, die ich dem Filter mitgeben kann?

Also mir fallen im Moment nur Index, Dateiendung und Filterstring ein.

Index find ich auch nicht so schön, da sich im Laufe der Zeit die kompatibilität an neuere Versionen anpassen wird und dann hab ich nen ziemlich großes Risiko, den Index zu vergessen.
Anders gesagt; neue Datei-Versionen würden ja oben in der Liste stehen und somit würde sich der Index aller anderen Versionen verschieben 🙁

Also, wie gesagt...
Wer was besseres weiß, immer her damit.
Danke

...pfff...
Hab grade gesehen, dass ich den Filter ja nicht mal verwenden kann X(

18.03.2009 - 09:47 Uhr

ok, meine Liste ist nicht so lang, da wird die reverse Schleife passen...

Danke für die schnelle Antwort.
Gruß, Tele

17.03.2009 - 17:50 Uhr

Hallo Forum...
irgendwie hab ich ein Brett vorm Kopf.

Ich habe hier eine Auflistung, die die Methoden Remove und RemoveAt zur Verfügung stellt.
Jetzt möchte ich durch alle Elemente laufen und bei passender Eigenschaft dieses Element löschen.
Das ganze hätte ich eigentlich mit einer Foreach-Schleife gemacht aber dann bekomme ich natürlich einen Fehler, weil ja die Auflistung geändert wurde.

Wie löst man das am elegantesten?
Muss ich hier eine for-Schleife rückwärts vom letzten Element aus machen oder gibts da was besseres?

tnx
Tele

06.03.2009 - 14:43 Uhr

Ah ok, so gesehen hast Du natürlich Recht...

06.03.2009 - 13:39 Uhr

Kann ich Excel überhaupt legal nachbilden und mit meinem Produkt verteilen?
Wenn du mit nachbilden optisch nachbilden meinst und wenn du Ribbons verwendest, definitiv nein!

...da muss ich Dir widersprechen.

Du kannst Deine Anwendung bei Microsoft lizensieren lassen:

http://msdn.microsoft.com/officeui.

@JuyJuka:

Naja Copy & Paste ist nun wirklich kein Workflow....
Wir reden hier über hunderte von Zeilen und mehrere Tabellenblätter pro Workbook

06.03.2009 - 13:29 Uhr

Ok, ich versuche es nochmal zu erklären...

Also welche Eingaben er wo macht, das bekomme ich schon hin.

Er könnte sicher Grdiviews verwenden aber hast Du schon mal versucht z.B. mit SVERWEIS in einem Gridview Daten zu finden?

Oder mit der Eingabe =LINKS(A1;3)&"B" einen wert zu bekommen?
Es geht schlichtweg um die Funktionalitäten, die Excel mitbringt.
Die kann man nicht mit akzeptablem Aufwand nachbauen. Alleine die MDI-Fähigkeit innerhalb eines Workbooks ist so gut wie unmöglich nachzubilden.

...man verbessere mich, falls ich mich irre.
Bin, wie gesagt für jede Idee dankbar.

Mit online meine ich, dass ich Änderungen in einer Excel-Tabelle live in meinem Programm sehen könnte.
Klar kann ich einfach nur die Aktionsbuttons zum lesen verwenden aber dann hab ich nen riesen Application-Fenster mit ein paar Knöpfen. Das sieht ja doof aus.
Also wenn ich Excel von aussen anbinde, muss auch was online passieren.

06.03.2009 - 12:49 Uhr

Hallo JuyJuka...

Also der Grund für Excel ist die Dateneingabe.
Der Benutzer kann hier die eingebauten Funktionlitäten (Formeln) verwenden.
Aus diesen Eingaben lese ich letztendlich dann die Werte und verarbeite Diese.
Da aber das Arbeiten mit meiner App und die Dateneingabe permanent wechseln ist ein Import unbrauchbar. Da wäre höchstens eine "online"-Anbindung eine Alternative aber geht das wirklich online? Möglichst auch noch multiuserfähig?

Der Grund, warum das in meine App. rein soll ist eigentlich "nur", dass diese Funktionalitäten zu einem Gesamtprodukt gehören, dass noch einiges Andere ohne Excel bietet, was auch nichts mit diesem Modul zu tun hat. Aber es ist halt ein Softwarepaket.
Sicher könnte ich die Formelmöglichkeiten von Excel nachbauen aber das wäre ja unendlicher Aufwand. Außerdem kennen die meißten sich schon mit Excel aus und MS soll ja auch noch was verdienen 😉

06.03.2009 - 08:55 Uhr

Na, das sieht ja gut aus...
Damit könnte ich dann im Grunde das installierte Excel laden und hätte es entsprechend in meiner Applikation.
Das schau ich mir mal genauer an. Danke.

Weitere Tipps?

06.03.2009 - 08:43 Uhr

Hmm...
im Grunde brauche ich Excel als Datenquelle und da hat Excel ja bekanntlich einiges auf'm Kasten, was Formeln angeht.
Was das Design angeht...
Meine Applikation besteht aus einem MDI-Interface. Da ist natürlich Excel nicht mit drin, wenn ich ein PlugIn schreibe.
Oder könnte man Excel in meine Applikation laden? Das setzt dann natürlich eine installierte Office-Version voraus, was aber kein Problem sein sollte.
Ich will MS ja nichts klauen, hatte halt nur überlegt, ob das VS da irgendwas mitbringt um die Office-Installation zu vermeiden.
Sonst geht das Theater wieder los mit den verschiedenen Versionen.

06.03.2009 - 08:29 Uhr

Hallo Forum...
ich habe eine kleine Applikation mit mehreren Modulen.
Jetzt brauche ich ein weiteres Modul, das Funktionalitäten von Excel bereitstellen soll.
Also grundsätzlich ist Excel dazu das beste Tool.
Nun meine Frage:
Ich möchte dieses Module gerne dem Look&Feel meiner Applikation anpassen bzw. es integrieren.
Macht das überhaupt Sinn?
Kann ich Excel überhaupt legal nachbilden und mit meinem Produkt verteilen?
Sollte ich das überhaupt integrieren oder wäre es ERHEBLICH klüger einfach ein Plugin für Excel zu schreiben?
Das hätte dann natürlich nichts mehr mit meiner Applikation zu tun. 😦

Bin für jeden Vorschlag offen.

03.03.2009 - 09:49 Uhr

Hi juetho,
ja, das hatte ich auch schon in Verdacht, dass ich mit dem Schema die entsprechenden Datentypendefinieren kann.

Hmm..
das Schema könnte ich dann in die Applikation integrieren.
Guter Ansatz, danke.

03.03.2009 - 09:10 Uhr

Ok, hat sich erledigt...

Ich hab die Tabellen mit den gleichen Namen wie im XML-File im DataSet angelegt und dann erst das DataSet gefüllt.

Gibts denn auch eine Lösung, die funktioniert, wenn die Spaltenbezeichner noch nicht bekannt sind und entsprechend in anderen Spalten stehen könnten?
Soll heißen...
Habe ich eine Möglichkeit unbekannte Daten zu laden und den Datentyp innerhalb des Dataset zu ändern?

Ich hab versucht die XML-Datei zu laden, dann alle Zeilen zu löschen und dann den Typ zu ändern aber da gibts die gleiche Fehlermeldung: Ändern des Typs nicht möglich, wenn Daten enthalten sind.

03.03.2009 - 08:55 Uhr

verwendetes Datenbanksystem: <XML>

Hallo Forum,
ich hab mal wieder eine Frage zum DataSet.

Ich lade eine XML-Datei in ein Dataset und bekomme so ganz prima meine Tabellen ins Dataset.
Jetzt stehe ich vor dem Problem, dass die Datenspalten alle vom typ string sind, ich aber auch int benötige.

Die Tabellen sind ja nun erst vorhanden, wenn auch die Daten drin sind.
Dann darf ich den Typ nicht mehr ändern.
Muss ich denn vorher die Tabellen im Dataset anlegen?
Wenn ja, wie bekomme ich dann die Daten in genau diese Tabellen?

Bis jetzt mache ich einfach ein ReadXML(file) und gut ist...

tnx Tele

26.02.2009 - 08:20 Uhr

Hmm...
Also Windows Update ist aktuell und ich hab das aktuelle redist-Package vom 3.5er drauf gespielt.

Die meisten Beiträge im INET gehen über .NET 2.0.
Kann es sein, dass das auch drauf muss?

25.02.2009 - 10:41 Uhr

verwendetes Datenbanksystem: <Access>

Hallo Forum.
Ich habe vor einiger Zeit mal ein kleines Progrämmchen für einen Datenabgleich zwischen einer MySQL und einer Access Datenbank geschrieben.
Das hat bei der ersten Workstation auch wunderbar geklappt.
Jetzt habe ich das auf einer zweiten Station installiert und bekomme die Meldung, dass die System.EnterpriseServices.Wrapper.dll nicht geladen werden kann.

Der Zugriff funktioniert trotzdem aber die Meldung ist natürlich nervig für den User.

Im Netz habe ich bereits Informationen gefunden, dass das mit dem .Net FW zusammen hängt.
Ich habe also das FW deinstalliert und das redistributable neu installiert (alles 3.5).
Die Meldung kommt aber immer noch.

Hat jemand eine Idee, was ich noch tun kann?

tnx Tele

23.02.2009 - 09:17 Uhr

...dem entnehme ich, dass der Hauptgrund für ein Plugin da liegt, dass es in einer eigenen Domain ausgeführt wird?

Hmm...
gut, es wird sicher noch jede Menge andere Gründe dafür geben.
Ich bin grade dabei das Codeproject Tutorial durch zu arbeiten.
Mal sehn, was da raus kommt.

Danke erst mal...

23.02.2009 - 09:05 Uhr

Hmm...

das sieht aber alles ziemlich aufwändig aus.
Muss das sein? Reicht es nicht die MDI-Child-Applikation mit einer using-direktrive einzubinden und dann das entsprechende Form zu laden?
Danach läuft doch eh alles in der Child-Applikation ab.

Warum sollte das so nicht gemacht werden?

20.02.2009 - 16:11 Uhr

Hallo Ihr Wissenden...

Ich möchte eine MDI-Anwendung erstellen, in der als Child-Fenster jeweils eine eigene Applikation geladen wird.

Jetzt habe ich bei meinem ersten Versuch gleich einen Fehler bekommen, dass die Settings nicht geladen werden können.
Irgendwo habe ich das auch beiläufig mal aufgeschnappt, dass das nicht geht, einer eingebundenen Applikation Settings mitzugeben.

Wie löst man sowas am besten?

Muss ich jetzt doch wieder auf die gute alte Registry zurück greifen?

tnx Tele

18.02.2009 - 19:56 Uhr

Boah ich werd bescheuert...
jetzt gehts.

Hab meinen ersten Versuch nochmal ran genommen und auf ner XP-Maschine ausprobiert.

Danke für die diversen Tipps aber das hätten die von der ODA mir ja auch früher mal sagen können. Da schreibt man extra dass man's auf Vista testet...
Naja egal, wieder ein Tag umsonst debugt.

Na denn,
wird man ja nicht dümmer durch 😄

danke nochmal!

18.02.2009 - 19:40 Uhr

Achso...

uuups...

18.02.2009 - 19:31 Uhr

pff...
der Typ ist ja Lustig.
Sagt mir ausdrücklich ich solle nicht die dlls einfügen aber wrapper.

Nagut, dann probier ich das nochmal.
Danke für die Antwort zu so später Stunde.

18.02.2009 - 16:10 Uhr

Ich brauch nochmal Hilfe...
ich hab jetzt Antwort von deren Forum:

AFAIK InnoSetup supports merge modules.
Anyway with VS built-in setup everything should work, just as it works for many other members.
You should not add any additional dlls, neither register anything - just add merge necessary modules to the setup project. "DDXCoreMSM.msm" "DDXGDIRenderer.msm" and "DDXViewX.msm" are necessary for the viever.
Our DDX setup is composed of the same modules.

Addition: I didn't notice that you used .NET language (that is essential). In that case naturally you should redistribute .NET wrappers along with your application executable.

...VS gibt mir einen Hinweis, dass es in den msm-Modulen Abhängikeiten geben könnte.
Muss ich da noch etwas machen oder reicht das hinzufügen?

Was meint der mit .NET wrappers, die ich mit verteilen soll?

...sorry, wenn das ne Frage nach Basics ist

18.02.2009 - 11:03 Uhr

Ok...
Ich habe mich von innosetup mal vorläufig getrennt und das ganze über ein Setup-Projekt versucht.

Alle verfügbaren msm-Dateien des Herstellers habe ich eingebunden und in meinem Projekt einige Messageboxen platziert um zu sehen, wo genau das Programm aussteigt.

Beim Starten der ersten Form wird eines von deren Objekten erzeugt. Das geht mittlerweile auch klaglos.
Dann wird ja irgendwann das Form initialisiert und beim setzen deren Viewer ist dann Schicht im Schacht.

Gibt es irgendwelche Optionen, die man bei den msm-modulen beachten muss?
Einstellbar ist da ja so gut wie nichts 😦

Zum Thema Fehler abfangen...
Fängt man tatsächlich Fehler ab, die beim Initialisieren es Formulars auftreten?

17.02.2009 - 10:16 Uhr

So...
weiter bin ich noch nicht wriklich, glaube aber die notwendigen dlls im Gemeinsame Dateien -Verzeichnis gefunden zu haben.
Wie Du schon angekündigt hattest lassen sie sich nicht so einfach registrieren.
Jetzt bin ich in deren Forum auf ein Posting gestoßen be dem es um merge modules (*.msm) geht.
Das sagt mir natürlich garnix.
Ich habe auch solche Dateien gefunden aber was kann ich damit tun?

Kann mir jemand dazu was erzählen?
Die MSDN ist da M.E. ziemlich rudimentär.

tnx
Tele

16.02.2009 - 20:19 Uhr

Ok, ich habe natürlich in deren Forum gesucht und entsprechend ein Posting hinterlassen.
Leider sind meine 250$ nicht ausreichend, dass die sich selber bemühen und deswegen ist da die Chance auf Antwort sehr gering.
Ich werde mal schauen, ob ich da mehr drüber rausfinde.

Welche ActiveX-DLLs zu den Schnittstellen gehören lässt sich ja sicher raus finden.
Mal sehen, ob ich damit weiter komme.
Der Hinweis hat mir zumindest erstmal wieder einen Denkanstoß gegeben.
tnx

Tele

16.02.2009 - 17:52 Uhr

Nein, die Verweise zeigen nicht auf Autocad sondern auf ActiveX-DLLs von OpenDesign Alliance.
Leider ist deren Dokumentation ziemlich bescheiden und ich bin noch nicht wirklich der Fachmann X( ausserdem ist der Support bei denen erst ab 2000$ zu bekommen.

Wie auch immer....
Ich hatte bereits geschrieben, dass ich über die Setup-Routine versucht habe die verwiesenen dll's zu registrieren, was größtenteils fehl schlug. Muss ich bei ActiveX-dlls anders vorgehen?
Kann es denn möglich sein, dass ich deren komplettes Setup erst ausführen muss, bevor ich meins ausführe?
Damit würde ich ja alles installieren, was ich von denen habe (die gesamte Developer-Version), obwohl ich nur 3 dlls brauche.

16.02.2009 - 16:34 Uhr

Ok, das ist klar.
Das .Net Framework 3.5 ist auf der Zielmaschine installiert.

Ich habe jetzt mal probiert in der Programm.cs eine Messagebox einzubauen.
Die wird auch angezeigt.
Sobald aber die erste Form geladen wird, knallt es.


    public partial class frmBrowser : Form
    {
        private clsCAD oApp;
        private AcadDocument oDoc;
        private VIEWXLib.IOdaDevice2 oDevice;
        private VIEWXLib.OdaView oView;

        clsProjectDB objPrjDB = new clsProjectDB(); //Klasse zum öffnen der Datenbanken
        clsCAD CAD = new clsCAD();
        Dictionary<string, long> dictProperties = new Dictionary<string, long>();
        bool flgBtnOkDetails = false;
        bool flgBtnExitDetails = false;
        bool flgMnuPrjClose = false;
        bool flgDetailControls = false;
        public ISessionFactory _sessionFactory;
        

        public frmBrowser()
        {
            System.Windows.Forms.MessageBox.Show( "Hallo" );
            InitializeComponent();
            InitializeForm();

Die MessageBox vor dem Initialisieren der Form ging schon net mehr.
Da vorher ja "nur" die Variablen erzeugt und teilweise initialisiert werden kann es doch nur daran liegen oder?
...das wiederum bringt mich wieder zu den dll's zurück.

16.02.2009 - 16:08 Uhr

...falls es eine Rolle spielt...

auf dem Entwicklungscomputer läuft natürlich alles einwandfrei.

16.02.2009 - 15:02 Uhr

Ok, da sich der svhost auf das Debuggen bezieht hab ich es ohne ihn versucht.
Ausserdem habe ich alle dlls registriert.
Danach habe ich das Setup auf einer Vista Maschine ausprobiert, wo ich bei fast allen dlls nicht registrieren konnte.
Diese hab ich also wieder auf nicht registrieren gesetzt.

Setup läuft zwar durch aber funktionieren tut hier immer noch nichts.
Der Vista-Rechner sucht natürlich nach einer Problemlösung aber das kennen wir ja.

So, jetzt nochmal meine Frage...
Müssen die System.xxx-dlls auch mit installiert werden?
Ansonsten hab ich eigentlich alles installiert, was im Release-Verzeichnis liegt.

Kann mir da jemand nen Tipp geben?

tnx
Tele

16.02.2009 - 13:46 Uhr

Ah und noch eine Frage...

Was sind die vshost-Dateien eigentlich bzw. brauch ich die auch?