Comate-RTF-Feld und die leidige Übertragbarkeit
Verfasst: 21.11.2008 12:59
Hallo Freunde der purebasicalen Sprache,
ja mich gibt's noch...
...mein Programm ist jetzt in der "Betaversion" fertig programmiert und mag es kaum glauben, die lange Zeit meiner Forumsabstinenz ist tatsächlich dem Umstand geschuldet, dass ich bislang kein einziges Problem mehr hatte. Bislang! Für Interessierte, hier einige Screenshots meines Progs:
http://www.bilder-space.de/show.php?fi ... l4FEF.jpg
So nun aber zu meinem Anliegen. Ich habe - wie eventuell einige unter euch noch wissen - seinerzeit das Problem gehabt, dass ich in mein Programm (ein für Juristen bzw. Jura-Studenten konzipiertes Prog, dass es einem ermöglicht, sich selbst mit vorher eingegebenen Lektionen abzufragen) ein Textfeld integrieren wollte, das es mir ermöglicht auch Word- oder andere Grafiken (innerhalb des Textes) anzuzeigen. Dies ist mit dem Pure-Basic-mitgelieferten Textfeld (im Moment jedenfalls noch) nicht möglich, sodass ich auf Anraten einiger Forumsprofis Comate verwendet habe, um das Richtextfeld von Windows bzw. Visual Basic für meine Zwecke zu geißeln. Nicht zuletzt dank Kiffis Hilfe (an Kiffi: Trotz unserer kleinen Meinungsverschiedenheiten habe ich dich übrigens wie versprochen in den Danksagungen meines Progs erwähnt, und das sag ich jetzt nicht, damit du mir wieder hilfst) habe ich es auch geschafft, das RTF-Feld über Comate einzubinden, sodass es auf MEINEM PC (Vista) problemlos läuft. Ich hab vor lauter Übermut sogar noch einen draufgesattelt und auch gleich noch ein PDF-Feld über Comate als Luxusfunktion integriert, sodass meine Nutzer jetzt ihre Antworten entweder in meinem RTF-Feld, als HTML-Datei oder als PDF abspeichern können. Was bin ich doch fürn toller Hecht !:)
Gestern habe ich dann das erste Mal versucht, mein Meisterwerk einem Kumpel zu überspielen. Alles funzte perfekt....bis er in meinem Prog das "Bearbeiten-Menu" öffnete (siehe Screenshot). Denn dort taucht zum ersten Mal das RTF-Feld auf. Er teilte mir dann deprimiert mit, dass er eine Fehlermeldung erhalte ("Konnte RICHTEXT.RichtextCtrl (Antwortfeld) nicht erstellen!" und das Programm fortan seine Dienste verweigere. Diese Meldung hatte ich einprogrammiert und sie kommt immer dann zum Einsatz, wenn die Initialisierung des Feldes fehlschlägt. Sofort erinnerte ich mich an die Warnung von TS-Soft, doch möglichst auf diese Active-X-Dinger zu verzichten, da sie nur Probleme bereiten würden. Recht hat er gehabt, nur ich habe keine andere Möglichkeit als dieses Feld zu verwenden oder ich reiße meinem Prog das Herz heraus.
Ich habe mich ebenfalls daran erinnert, dass es vielleicht daran liegen könnte, dass ich vergessen hatte, das ActiveX-Control zu registrieren. Auch das probierte ich danach aus und schickte die modifizierte Datei meinem Komillitonen, doch es erschien wieder dieselbe Fehlermeldung. Hier ist das Code-Fragment - bitte keine Anfragen, den ganzen Code zu schicken, das sind mittlerweile mehr als 5000 Zeilen Code -:
Die auskommentierte Variante habe ich auch getestet. Läuft ebenfalls nicht.
Vielen Dank im Voraus!
PS: Ich habe keine Ahnung davon, wie der Comate-Programmiergott sein Prog zusammengeschustert hat, wäre also froh, wenn ihr mir Tipps geben könntet, die auch jemand versteht wie ich. Also einer, der weder Ahnung von Windows-API-Programmierung hat noch weiss, wie man DLL erstellt.
Von Assembler gar nicht erst zu sprechen...
ja mich gibt's noch...

http://www.bilder-space.de/show.php?fi ... l4FEF.jpg
So nun aber zu meinem Anliegen. Ich habe - wie eventuell einige unter euch noch wissen - seinerzeit das Problem gehabt, dass ich in mein Programm (ein für Juristen bzw. Jura-Studenten konzipiertes Prog, dass es einem ermöglicht, sich selbst mit vorher eingegebenen Lektionen abzufragen) ein Textfeld integrieren wollte, das es mir ermöglicht auch Word- oder andere Grafiken (innerhalb des Textes) anzuzeigen. Dies ist mit dem Pure-Basic-mitgelieferten Textfeld (im Moment jedenfalls noch) nicht möglich, sodass ich auf Anraten einiger Forumsprofis Comate verwendet habe, um das Richtextfeld von Windows bzw. Visual Basic für meine Zwecke zu geißeln. Nicht zuletzt dank Kiffis Hilfe (an Kiffi: Trotz unserer kleinen Meinungsverschiedenheiten habe ich dich übrigens wie versprochen in den Danksagungen meines Progs erwähnt, und das sag ich jetzt nicht, damit du mir wieder hilfst) habe ich es auch geschafft, das RTF-Feld über Comate einzubinden, sodass es auf MEINEM PC (Vista) problemlos läuft. Ich hab vor lauter Übermut sogar noch einen draufgesattelt und auch gleich noch ein PDF-Feld über Comate als Luxusfunktion integriert, sodass meine Nutzer jetzt ihre Antworten entweder in meinem RTF-Feld, als HTML-Datei oder als PDF abspeichern können. Was bin ich doch fürn toller Hecht !:)
Gestern habe ich dann das erste Mal versucht, mein Meisterwerk einem Kumpel zu überspielen. Alles funzte perfekt....bis er in meinem Prog das "Bearbeiten-Menu" öffnete (siehe Screenshot). Denn dort taucht zum ersten Mal das RTF-Feld auf. Er teilte mir dann deprimiert mit, dass er eine Fehlermeldung erhalte ("Konnte RICHTEXT.RichtextCtrl (Antwortfeld) nicht erstellen!" und das Programm fortan seine Dienste verweigere. Diese Meldung hatte ich einprogrammiert und sie kommt immer dann zum Einsatz, wenn die Initialisierung des Feldes fehlschlägt. Sofort erinnerte ich mich an die Warnung von TS-Soft, doch möglichst auf diese Active-X-Dinger zu verzichten, da sie nur Probleme bereiten würden. Recht hat er gehabt, nur ich habe keine andere Möglichkeit als dieses Feld zu verwenden oder ich reiße meinem Prog das Herz heraus.
Ich habe mich ebenfalls daran erinnert, dass es vielleicht daran liegen könnte, dass ich vergessen hatte, das ActiveX-Control zu registrieren. Auch das probierte ich danach aus und schickte die modifizierte Datei meinem Komillitonen, doch es erschien wieder dieselbe Fehlermeldung. Hier ist das Code-Fragment - bitte keine Anfragen, den ganzen Code zu schicken, das sind mittlerweile mehr als 5000 Zeilen Code -:
Code: Alles auswählen
;- - RTF-Feld: ANTWORT -
; If COMate_RegisterCOMServer("c:\Windows\system32\RICHTX32.ocx") = #S_OK
; blnRegister = #True
; RTF_Feld = COMate_CreateActiveXControl(372, 280, 500, 370, "RICHTEXT.RichtextCtrl")
; Else
; MessageRequester("!", "Konnte RICHTEXT.RichtextCtrl (Antwortfeld) nicht erstellen!")
; End
; EndIf
;
RTF_Feld = COMate_CreateActiveXControl(372, 280, 500, 370 , "RICHTEXT.RichtextCtrl")
If RTF_Feld = 0
MessageRequester("!", "Es erfolgt eine Registration des Steuerelements.")
If COMate_RegisterCOMServer("c:\Windows\system32\RICHTX32.ocx") = #S_OK
blnRegister = #True
RTF_Feld = COMate_CreateActiveXControl(372, 280, 500, 370, "RICHTEXT.RichtextCtrl")
Else
MessageRequester("!", "Konnte RICHTEXT.RichtextCtrl (Antwortfeld) nicht erstellen!")
End
EndIf
EndIf
Vielen Dank im Voraus!
PS: Ich habe keine Ahnung davon, wie der Comate-Programmiergott sein Prog zusammengeschustert hat, wäre also froh, wenn ihr mir Tipps geben könntet, die auch jemand versteht wie ich. Also einer, der weder Ahnung von Windows-API-Programmierung hat noch weiss, wie man DLL erstellt.
Von Assembler gar nicht erst zu sprechen...