RichEdit Funktionen (OOP): Jetzt mit ImageSupport

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
_JON_
Beiträge: 389
Registriert: 30.03.2010 15:24

Re: RichEdit Funktionen (OOP): Jetzt mit ImageSupport

Beitrag 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.
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
kwp
Beiträge: 2
Registriert: 10.07.2014 08:17

Re: RichEdit Funktionen (OOP): Jetzt mit ImageSupport

Beitrag 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
Benutzeravatar
Cebu-Uli
Beiträge: 22
Registriert: 04.09.2007 03:19
Wohnort: Wernigerode

Re: RichEdit Funktionen (OOP): Jetzt mit ImageSupport

Beitrag 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
PureBasic 5.31 (x32, x64) Windows 7 SP1 (x64)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: RichEdit Funktionen (OOP): Jetzt mit ImageSupport

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: RichEdit Funktionen (OOP): Jetzt mit ImageSupport

Beitrag 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
Hygge
Benutzeravatar
Cebu-Uli
Beiträge: 22
Registriert: 04.09.2007 03:19
Wohnort: Wernigerode

Re: RichEdit Funktionen (OOP): Jetzt mit ImageSupport

Beitrag 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
PureBasic 5.31 (x32, x64) Windows 7 SP1 (x64)
Benutzeravatar
Cebu-Uli
Beiträge: 22
Registriert: 04.09.2007 03:19
Wohnort: Wernigerode

Re: RichEdit Funktionen (OOP): Jetzt mit ImageSupport

Beitrag 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
PureBasic 5.31 (x32, x64) Windows 7 SP1 (x64)
Benutzeravatar
AndyMars
Beiträge: 139
Registriert: 08.09.2004 11:59
Computerausstattung: Win10 Home 64bit, i7-2600k @ 3.4 GHz, 8GB RAM, AMD Radeon R9 200
Wohnort: Zürich, Schweiz
Kontaktdaten:

Re: RichEdit Funktionen (OOP): Jetzt mit ImageSupport

Beitrag 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... <)
Zuletzt geändert von AndyMars am 14.09.2017 11:28, insgesamt 1-mal geändert.
Andreas_F
Beiträge: 14
Registriert: 15.06.2006 19:16
Wohnort: Roßdorf bei Darmstadt

RichEdit Funktionen (OOP): Anpassung an PureBasic 5.50

Beitrag 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
lite
Beiträge: 122
Registriert: 27.08.2012 21:08

Re: RichEdit Funktionen (OOP): Jetzt mit ImageSupport

Beitrag 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
Antworten