Seite 4 von 5

Re: RichEdit Funktionen (OOP): Jetzt mit ImageSupport

Verfasst: 02.01.2015 15:20
von _JON_
Ich glaube er meint z.b. das Example "RichEdit_Example_ViewRTFCode.pb"

Dort löscht dein Macro mcDoubleText() das zweite RichEdit und füllt es neu.
Somit wird der Cursor ans Ende gesetzt.

Re: RichEdit Funktionen (OOP): Jetzt mit ImageSupport

Verfasst: 02.01.2015 20:19
von kwp
Hallo Thomas,

ich möchte nochmal auf meine Frage vom 17.07.14 zurückkommen, auf die ich bisher leider noch keine Antwort erhalten habe. Es geht darum, dass beim Einbinden von Bildern der RT-Inhalt verstümmelt wird.

Ich würde mich freuen, wenn's dafür doch noch eine Lösung gäbe!

Gruß, kwp

Re: RichEdit Funktionen (OOP): Jetzt mit ImageSupport

Verfasst: 03.01.2015 08:10
von Cebu-Uli
_JON_ hat geschrieben:Ich glaube er meint z.b. das Example "RichEdit_Example_ViewRTFCode.pb"

Dort löscht dein Macro mcDoubleText() das zweite RichEdit und füllt es neu.
Somit wird der Cursor ans Ende gesetzt.
Das Beispiel habe ich zwar nicht gemeint, aber der Effekt ist der gleiche. Wie ich jetzt leider festgestellt habe kommt das aber nicht von RichEdit, sondern vom Standard PureBasic EditorGadget, welches ja für RichEdit verwendet worden ist.

Hier nochmals, was ich meine, ob RichEdit oder EditorGadget ist egal. Das Gadget mit Text füllen und dann außerhalb des Gadgets klicken, so dass der Focus verloren wird. Wenn man dann direkt in den Text des Gadgets klickt, ohne vorher das Fenster zu aktivieren, so erscheint der Cursor nicht an der angeklickten Stelle, sondern an der Stelle, wo zuvor der Focus verloren wurde. Wie schaffe ich es, dass der Cursor an der richtigen Stelle erscheint?

Gruß
Uli

Re: RichEdit Funktionen (OOP): Jetzt mit ImageSupport

Verfasst: 03.01.2015 13:46
von ts-soft
kwp hat geschrieben:Es geht darum, dass beim Einbinden von Bildern der RT-Inhalt verstümmelt wird.
Ich nehme mal an, das der Info-Header fehlt, der bei Dateien erforderlich ist. Bei geladenen Bilder ist dieser nicht erforderlich.
Aber wie Du den Info-Header, ohne das Bild zu zerstören, in die RTF bekommst, kann ich Dir nicht sagen. Wirst wohl selber
einen schreiben müssen, aber wie dieser wiederum zu RTF wird, kann ich Dir auch nicht sagen.

Mit anderen Worten, ich kann Dir nicht helfen.

Gruß
Thomas

Re: RichEdit Funktionen (OOP): Jetzt mit ImageSupport

Verfasst: 03.01.2015 14:07
von Kiffi
Cebu-Uli hat geschrieben:Wenn man dann direkt in den Text des Gadgets klickt, ohne vorher das Fenster zu aktivieren, so erscheint der Cursor nicht an der angeklickten Stelle, sondern an der Stelle, wo zuvor der Focus verloren wurde.
das scheint mir ein Standard-Verhalten zu sein. Kann man auch mit zwei Wordpad-Fenstern ausprobieren. Hat also nichts mit Thomas' Code zu tun.
Cebu-Uli hat geschrieben:Wie schaffe ich es, dass der Cursor an der richtigen Stelle erscheint?
Wie Thomas schon geschrieben hat: Wenn das Gadget den Focus verliert, merkst Du Dir die Cursorposition. Wenn es den Focus wieder bekommt, setzt Du den Cursor auf die gemerkte Position.

Grüße ... Peter

Re: RichEdit Funktionen (OOP): Jetzt mit ImageSupport

Verfasst: 04.01.2015 05:20
von Cebu-Uli
Kiffi hat geschrieben:
Cebu-Uli hat geschrieben:Wenn man dann direkt in den Text des Gadgets klickt, ohne vorher das Fenster zu aktivieren, so erscheint der Cursor nicht an der angeklickten Stelle, sondern an der Stelle, wo zuvor der Focus verloren wurde.
das scheint mir ein Standard-Verhalten zu sein. Kann man auch mit zwei Wordpad-Fenstern ausprobieren. Hat also nichts mit Thomas' Code zu tun.
Wenn das bei Wordpad Standard ist, so ist das auf alle Fälle ziemlich nervig, wenn man oft von einem Fenster in das andere wechseln muss. Wenn du das Gleiche mit zwei normalen Edit-Fenstern (von Windows) ausprobierst, so wirst du dort dieses Verhalten nicht finden!
Kiffi hat geschrieben:
Cebu-Uli hat geschrieben:Wie schaffe ich es, dass der Cursor an der richtigen Stelle erscheint?
Wie Thomas schon geschrieben hat: Wenn das Gadget den Focus verliert, merkst Du Dir die Cursorposition. Wenn es den Focus wieder bekommt, setzt Du den Cursor auf die gemerkte Position.
Eben nicht. Es ist genau umgekehrt! Hier der funktionsfähige Codeausschnitt für das RichEdit_Example.pb :

Code: Alles auswählen

Case #PB_Event_Gadget
      Select EventGadget()
        Case Edit\GetID()
          If EventType() = #PB_EventType_Change; wird vom normalem EditorGadget nicht unterstützt
            SetStatusbarText()
            DisableToolBarButton(0, #mnu_Undo, Edit\CanUndo() ! 1)
            UpdateToolbar()
          EndIf
          
          ;Cursorposition beim Erhalten des Focus merken
          If EventType() = #PB_EventType_Focus            
             X = WindowMouseX(0) - GadgetX(Edit\GetID())
             Y = WindowMouseY(0) - GadgetY(Edit\GetID())
           EndIf
           
           ;Cursorposition beim Verlust des Focus wiederherstellen
           If EventType() = #PB_EventType_LostFocus   
             SetActiveGadget(Edit\GetID())
             Edit\SetCursorPos(X,Y)
             Edit\SetCursorPos(X,Y)                   
          EndIf 
      EndSelect
Gruß
Uli

Re: RichEdit Funktionen (OOP): Jetzt mit ImageSupport

Verfasst: 04.01.2015 11:57
von Cebu-Uli
Leider habe ich mich selber verarscht. Die Lösung oben funktioniert wunderbar, bei einem RichEdit-Gadget. Bei mehreren Gadgets im selben Programm hingegen klappt das nicht, da ich beim Verlust des Focus diesen einfach wieder setze. Aber anders funktionierte es gar nicht. Vielleicht kennt ja doch jemand eine Lösung?

Gruß
Uli

Re: RichEdit Funktionen (OOP): Jetzt mit ImageSupport

Verfasst: 16.02.2015 01:13
von AndyMars
Absolut geiles Stück Code! :allright: Bin schon fast etwas neidisch über das Können, welches
dahinter steckt... Aber jetzt hat ja mein PureBasic auch so eine RichEdit-Komponente mit so vielen
Funktionen - astrein...

Hab mir gleich erlaubt den PurePad-Example-Code zu klauen und
um eine Funktion zu erweitern, welche automatisch Daten aus der Zwischenablage zusammen fügt. Sehr
fein, um Artikel im Internet zu sammeln...

Wen es interessiert: EXE & Quellcode...

Und nicht wundern, mein Beitrag an das Programm ist minimal, dieser kleine Toggle-Paste-Button sieht man kaum... <)

RichEdit Funktionen (OOP): Anpassung an PureBasic 5.50

Verfasst: 12.10.2016 11:21
von Andreas_F
Hat schon jemand RichEdit.pbi erfolgreich an PureBasic 5.50 angepasst?

Die Konstanten, die nun schon deklariert sind, habe ich angepasst, was muss ich noch beachten?

Ich bekomme nur noch Zeichensalat.

Was muss ich bezüglich der in PB 5.50 nicht mehr vorhandenen internen ASCII-Zeichenbehandlung beachten?

Vielen Dank für jede Hilfe

Andreas

Re: RichEdit Funktionen (OOP): Jetzt mit ImageSupport

Verfasst: 26.11.2016 20:28
von lite
Hallo

Der Download-Link für RichEdit.pbi in Posting 1 ist leider offline.
Gibt es irgendwo einen alternativen Link ?

Grüße

Lite