Comate-RTF-Feld und die leidige Übertragbarkeit

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Palandt
Beiträge: 155
Registriert: 18.09.2008 09:33

Beitrag von Palandt »

Ich hab mich gestern so blamiert. 18:30 Ankunft Party. Studentenverbindung. Ich wieder mal die größte Fresse und mit nem Russen Vodka gesoffen. Um 21: 00 musste mich meine Mieze nach Hause karren. Mit wehenden Fahnen gegen den slawischen Berserker verloren, die können auch was ab, die alten Russen, das geht gar nicht! Zumindest bin ich um 8 Uhr aufgewacht und das ohne Schädel, immerhin.

Zurück zu meinem Problem: Kannst du eventuell den Comate-Gott mal fragen, welche Bedeutung die Fehlermeldung hat, die mein Laptop immer ausspuckt, ich glaube da könnte des Pudels Kern verborgen liegen! Du kennst den Typen doch. Vielleicht kann er aufgrund der Fehlermeldung einen Rückschluss daraus ziehen, was eventuell schief gelaufen ist.

Fernab davon nochmals vielen Dank, dass du dich um eine Lösung meines Problems bemühst!
Wenn die dicke Frau klatscht, ist die Oper zu Ende
Little John

Beitrag von Little John »

Palandt hat geschrieben:Kannst du eventuell den Comate-Gott mal fragen, welche Bedeutung die Fehlermeldung hat, die mein Laptop immer ausspuckt, ich glaube da könnte des Pudels Kern verborgen liegen! Du kennst den Typen doch.
Wenn Du mit "Comate-Gott" den Autor von COMate meinst: Der hat im englischen PB-Forum den Nicknamen srod, und man kann ihm Fragen stellen auch wenn man ihn nicht kennt. Am besten schreibt man am Anfang des Betreffs [COMate], dann ist gleich klar worum es geht und er wird den Thread sicherlich lesen.

Gruß, Little John
Benutzeravatar
Palandt
Beiträge: 155
Registriert: 18.09.2008 09:33

Beitrag von Palandt »

Danke für den Tipp Little John, aber im Abi war Englisch mein schlechtestes Fach (Mathe-LK, Fremdsprachtalent = - 100), ich trau mir einfach nicht zu, diesen komplexen Sachverhalt auf Englisch darzustellen.... *schäm*

...klar, wenn mir nichts anderes übrig bleibt, werd ich wohl in den sauren Apfel beißen müssen, aber vielleicht kann ja Kiffi, den ich da sprachlich für versierter halte, mir - wenn er Bock dazu hat - eventuell auch ohne einen solch großen Aufwand betreiben zu müssen, helfen.

Zumal er schonmal mit Comate-Gott srod hinsichtlich eines bei mir früher bestehenden Problems mit dem Textfeld kommuniziert hatte. Bevor ich da mit meinem Klapperenglisch Lachkrämpfe auf englischer Seite hervorrufe, erst recht angesichts der Niederlage unserer Kickertruppe, warte ich da mal ab....:)
Wenn die dicke Frau klatscht, ist die Oper zu Ende
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

so, nachdem ich nun den halben Tag recherchiert habe, bin ich zu
folgender Erkenntnis gelangt: Es ist anscheinend nicht möglich, so ohne
weiteres die richtx32.ocx auf einen anderen Rechner zu kopieren und
dann mit einer Programmiersprache zu benutzen, die nicht von Microsoft
stammt. Und zwar liegt das an den fehlenden Lizenzschlüsseln.

@Palandt: wenn Du über eine Datei namens VB6Controls.reg verfügst,
bist Du aus dem Schneider. Denn diese Datei enthält diese
Lizenzschlüssel und befindet sich u.a. auf der CD2 des Visual Studio 2005.

Ich habe glücklicherweise einen Rechner gefunden, der die gleichen
Symptome wie Dein Laptop zeigt und verschiedene Lösungswege
ausprobiert. Allesamt vergeblich. Erst nachdem ich die Schlüssel der
VB6Controls.reg in die Registry eingetragen hatte, funktionierte auch
mein PB-Code.

Die VB6Controls.reg darf ich aufgrund rechtlicher Aspekte nicht
weitergeben.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Palandt
Beiträge: 155
Registriert: 18.09.2008 09:33

Beitrag von Palandt »

Erstmal tausend Mal Dank an dich!!!! Saunett von dir, dass du dir solche Mühe gemacht hast.

Das war der positive Part meines Postings......


Kiffi, bitte sag, dass das nicht wahr ist, was du da schreibst....was soll ich denn jetzt machen? Wie kann ich denn jetzt mein Programm an andere weitergeben? Auf legalem Weg.......*wenn mich nicht gestern der alte Russe platt gemacht hätte, würd ich spätestens jetzt zur Pulle greifen*....nee mal im Ernst gibt es da keine Möglichkeit? Mensch, ich bin doch angetreten, um das Prog zu verticken! FUCK!!! Gerade wegen der Übertragbarkeit hab ich doch zu PB gegriffen...

//EDIT: Zur Not zahle ich auch Lizenzgebühren an den Milliardärsarsch Bill, aber nur wenn es wirklich nicht anders geht....

//EDIT: Nehmen wir mal an, ich möchte das Prog zu Testzwecken auf meinem eigenen Laptop testen, was müsste ich dann mit der von dir besagten Datei machen, außer sie einfach zu kopieren? Inwiefern müsste ich das Teil denn registrieren, denn dieser Vorgang kann ja wohl kaum irgendwelche urheberrechtliche Normen verletzzen, soviel weiss ich selbst als Arbeitsrechtler. Wobei ich Idiot nicht mal weiss, wie man sowas registriert...., weiss nur dass registrieren was mit Registry zu tun hat....
Wenn die dicke Frau klatscht, ist die Oper zu Ende
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Palandt hat geschrieben:Gerade wegen der Übertragbarkeit hab ich doch zu PB gegriffen...
Du kannst das EditorGadget nehmen. Das kann eigentlich alles, was Du in
Deinem Programm anbieten möchtest (wenn ich mich recht erinnere).

Deinen Code, mit dem Du momentan das OCX ansteuerst, müsstest Du
dann anpassen. Aber diese Arbeit dürfte im überschaubaren Rahmen
liegen.

Der Vorteil ist dann in der Tat, dass Du das OCX nicht mehr separat
mitliefern (und bei Gegebenheit auf dem Zielsystem registrieren müsstest)

hier ist schon mal ein sehr nützlicher Code von srod (von wem sonst ;-)),
den Du problemlos in Dein Programm via XIncludeFile() einbinden
kannst:

http://www.purebasic.fr/english/viewtop ... 903#134903

Mit diesem Code kannst Du RTF laden und speichern, Bilder anzeigen und
Textformatierungen (Unterstrichen, Fett, Kursiv, etc.) vornehmen.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Palandt
Beiträge: 155
Registriert: 18.09.2008 09:33

Beitrag von Palandt »

Vielen Dank, Kiffi, mein Bruder hat mich allerdings gerade zum Alkoholkonsum gezwungen (kein Russe), sodass ich das Teil spätestens Montag testen werde (Sonntag Ausruhtag).

Danach kannst du wieder mit ein paar Nachfragen rechnen.

Abschließend kann ich nicht oft genug wiederholen, dass du mir echt bislang jedes Mal aus der Scheiße geholfen hast und ich dir dafür echt zu Dank verpflichtet bin. Wenn das Teil danach funzen sollte, dann bist du der Erste außerhalb meines Kumpelkreises, der ne Testversion erhält! Dann wirst du auch sehen, dass ich dich unter Hilfe/Impressum verewigt habe.

Bis denne!
Wenn die dicke Frau klatscht, ist die Oper zu Ende
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

hier ein kleiner Beispielcode, wie das Include zu verwenden ist:

Code: Alles auswählen

IncludeFile "OLEedit.pbi"

Enumeration
  #frmMain
EndEnumeration
Enumeration
  #frmMain_Toolbar
  #frmMain_Toolbar_Open
  #frmMain_Toolbar_Save
  #frmMain_Toolbar_Bold
  #frmMain_Toolbar_Italic
  #frmMain_Toolbar_Underline
  #frmMain_EditorGadget
EndEnumeration

If OpenWindow(#frmMain, 0, 0, 600, 400, "EditorGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_SizeGadget)
  
  If CreateGadgetList(WindowID(#frmMain))
    
    If CreateToolBar(#frmMain_Toolbar, WindowID(#frmMain))
      
      ToolBarImageButton(#frmMain_Toolbar_Open, ImageID(CatchImage(#PB_Any, ?ICO_Open)))
      ToolBarToolTip(#frmMain_Toolbar, #frmMain_Toolbar_Open, "Open")
      
      ToolBarImageButton(#frmMain_Toolbar_Save, ImageID(CatchImage(#PB_Any, ?ICO_Save)))
      ToolBarToolTip(#frmMain_Toolbar, #frmMain_Toolbar_Save, "Save")
      
      ToolBarSeparator()
      
      ToolBarImageButton(#frmMain_Toolbar_Bold, ImageID(CatchImage(#PB_Any, ?ICO_Bold)))
      ToolBarToolTip(#frmMain_Toolbar, #frmMain_Toolbar_Bold, "Bold")
      
      ToolBarImageButton(#frmMain_Toolbar_Italic, ImageID(CatchImage(#PB_Any, ?ICO_Italic)))
      ToolBarToolTip(#frmMain_Toolbar, #frmMain_Toolbar_Italic, "Italic")
      
      ToolBarImageButton(#frmMain_Toolbar_Underline, ImageID(CatchImage(#PB_Any, ?ICO_Underline)))
      ToolBarToolTip(#frmMain_Toolbar, #frmMain_Toolbar_Underline, "Unterline")
      
      EditorGadget(#frmMain_EditorGadget, 0, 0, 0, 0)
      
      RichEdit_SetInterface(GadgetID(#frmMain_EditorGadget))
      
      
      SendMessage_(GadgetID(#frmMain_EditorGadget),#EM_SETTARGETDEVICE, #Null, #False)
      
      Repeat 
        
        WWE=WaitWindowEvent()
        
        Select WWE
            
          Case #PB_Event_Menu
            
            Select EventMenu()
                
              Case #frmMain_Toolbar_Open
                
                File.s = OpenFileRequester("Load RTF", File, "Supported formats|*.rtf;*.txt|All files (*.*)|*.*", 0)
                
                If File
                  
                  Select LCase(GetExtensionPart(File))
                    Case "rtf"
                      LoadRTF(#frmMain_EditorGadget, File, #SF_RTF)
                    Case "txt"
                      LoadRTF(#frmMain_EditorGadget, File, #SF_TEXT)
                    Default
                      MessageRequester("", "Unsupported format")
                  EndSelect
                  
                EndIf
                
              Case #frmMain_Toolbar_Save
                
                File = SaveFileRequester("Load RTF", File, "Supported formats|*.rtf;*.txt|All files (*.*)|*.*", 0)
                
                If File 
                  SaveRTF(#frmMain_EditorGadget, File)
                EndIf
                
              Case #frmMain_Toolbar_Bold      
                Editor_Format(#frmMain_EditorGadget, #CFE_BOLD, 1)
                
              Case #frmMain_Toolbar_Italic    
                Editor_Format(#frmMain_EditorGadget, #CFE_ITALIC, 1)
                
              Case #frmMain_Toolbar_Underline 
                Editor_Format(#frmMain_EditorGadget, #CFE_UNDERLINE, 1)
                
            EndSelect
            
          Case #PB_Event_SizeWindow
            
            ResizeGadget(#frmMain_EditorGadget, 0, ToolBarHeight(#frmMain_Toolbar), WindowWidth(#frmMain), WindowHeight(#frmMain) - ToolBarHeight(#frmMain_Toolbar))
            
          Case #PB_Event_CloseWindow
            
            Quit = #True
            
        EndSelect
        
      Until Quit = #True
      
    EndIf
    
  EndIf
  
EndIf
  
DataSection
  
  ICO_Open:
  IncludeBinary "gfx\open.ico"
  
  ICO_Save:
  IncludeBinary "gfx\save.ico"
  
  ICO_Bold:
  IncludeBinary "gfx\bold.ico"
  
  ICO_Italic:
  IncludeBinary "gfx\italic.ico"
  
  ICO_Underline:
  IncludeBinary "gfx\underline.ico"
  
EndDataSection
Hier lauffähige Gesamtpaket (inkl. Icons):
http://tools.tuebben.de/wp-content/uploads/rtf.zip


Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Palandt
Beiträge: 155
Registriert: 18.09.2008 09:33

Beitrag von Palandt »

Besten Dank!

Allerdings - und das vergaß ich am Wochenende zu erwähnen - befinde ich mich ja momentan in der Examensvorbereitung; ich hatte es, glaub ich - mal in einem anderen (früheren) Posting angedeutet. Das Umschreiben meines Progs, um anschließend das Editorfeld verwenden zu können, wird wohl einiges an Arbeit bedeuten und da ich das Programm mittlerweile jeden Tag selbst verwende, um zu lernen, werde ich mit den Umschreibarbeiten erst am Freitag beginnen, wenn ich mit dem Pauken für die Woche durch bin.

Melde mich dann wieder. Bis denne!
Wenn die dicke Frau klatscht, ist die Oper zu Ende
Benutzeravatar
Palandt
Beiträge: 155
Registriert: 18.09.2008 09:33

Beitrag von Palandt »

Hi Kiffi, es wäre ja zu schön gewesen, wenn das einwandfrei gefunzt hätte.

Dein Testprogramm, das ich mittels deines Links "Hier lauffähige Gesamtpaket (inkl. Icons)" runtergeladen hab, funktionierte fehlerlos. Das Feld war zu sehen, die Formatierungsleiste und es war auch möglich, meine graphikdurchtränkten Antworttexte zu laden. Da wollte ich schon in Jubelchöre ausbrechen, doch als ich in mein Programm die Zeile

Code: Alles auswählen

IncludeFile "OLEedit.pbi" 
einfügte, war die Feierlaune wie weggeblasen. Fehlermeldung in der Datei OLEEdit.pbi. Zeile 431. Fehlermeldungstext = "Duplicate label". Inhalt der Zeile

Code: Alles auswählen

IID_IUnknown:   ;"{00000000-0000-0000-C000-000000000046}"
Ich glaube allmählich, Bill hat mich mit einem Bannfluch belegt, ich muss zumindest ein Bisschen Microsoft in meinen Progs haben, sonst geht gar nichts.

Ich hoffe, du weisst Rat, sonst muss ich ernsthaft darüber nach denken, mit Microsoft über Lizenzgebühren wegen der Einbindung des RTF-Feldes (Stichwort: Lizenzschlüssel) verhandeln und ich glaube, dann müsste ich mein Prog so teuer machen, dass es keiner kaufen würde.

//EDIT: Die Datei, in die ich die betreffende Include-Zeile einfügte, ist übrigens die selbe Datei, die auch die XInclude-Zeile enthält, die Comate.pbi integriert.
Wenn die dicke Frau klatscht, ist die Oper zu Ende
Antworten