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
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)

Beitrag von ts-soft »

Update:
Historie hat geschrieben:; Version 1.6, July 21, 2011 (neotoma)
; added: SelectAll(), Unselect(), Indent(), Outdent()
; added: ClearBackColor(), DisableRedraw(), IsTextSelected()
; added: GetZoom(), SetZoom(), CountWords(), GetRTFText()
Example.pb wurde auch angepasst.
:allright: an neotoma für diesen tollen Erweiterungen
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
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)

Beitrag von ts-soft »

Update:
Historie hat geschrieben:; Version 1.7, July 25, 2011 (neotoma)
; added: GetTextBackColor(), SetTextBackColor(), ClearTextBackColor()
; added: ScrollToLine(), GetParagraphAlign(), GetLineSpacing()
; added: SetLineSpacing.(), IsModified(), SetModified(), IsLink()
; added: GetWordUnderCursor(), GetCurrentWord()
; added: Replace(), ReplaceAll(), SetBulleted(), GetLineCount()
; added: IsSuperscript(), SetSuperscript(), IsSubscript()
; added: SetSubscript(),ChangeFontSize(), LimitText()
; added: HideSelection(),SetUnderlineWave(),ClearUnderlineWave()
; added: Redraw(), GetTextLength(), GetTextColor()
; added: IsSmallCaps(), SetSmallCaps(),IsAllCaps(), SetAllCaps()
; added: CanPaste(), GetCursorPosition(), GetWordAtPosition()
; added: GetFirstVisibleLineNumber(), GetFirstVisibleLinePos()
; added: GetLastVisibleLineNumber(), GetLastVisibleLinePos()
; added: GetLastVisibleLineText(), GetCharPosOfPreviousWord()
; added: GetCharPosOfNextWord(), EmptyUndoBuffer()
; added: GetFirstCharPosOnLine(), GetLineLength()
; added: IsALignLeft(), IsAlignCenter(), IsAlignRight()
added new examples, updated old example, download see first post

Have Fun

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
FrW
Beiträge: 45
Registriert: 08.11.2004 13:37

Re: RichEdit Funktionen (OOP)

Beitrag von FrW »

Vielen Dank
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)

Beitrag von ts-soft »

Update
Historie hat geschrieben:; Version 1.8, July 31, 2011 (neotoma)
; added: IsAlignJustify(),GetWordUnderCursorStart(), GetWordUnderCursorEnd()
; added: GetScrollPosX(), GetScrollPosY(),SetScrollPos(), SetLink()
; added: SetUndoLimit()
; modified : GetWordAtPosition(), GetWordUnderCursor()
; added again: SetTextBackColor()
; added: AppendText()
Desweiteren div. neue Beispiele, zum Beispiel eine Rechtschreibprüfung.
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
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 »

Update
Historie hat geschrieben:; Version 1.9, August 01, 2011
; added: SetInterface() for ImageSupport
; added: SetImage()
Achtung, diese Version gibts es nur über den Downloadlink im ersten Beitrag!
Das Forum lässt pro Beitrag lediglich 60000 Zeichen zu, diese werden seit
dieser Version überschritten!

Beispiel:

Code: Alles auswählen

EnableExplicit

XIncludeFile "RichEdit.pbi"

Define.RichEdit Edit

OpenWindow(0, #PB_Ignore, #PB_Ignore, 600, 100, "Test Image")
Edit = New_RichEdit(0, 0, 600, 100)
Edit\SetInterface()
Edit\SetText("This is a picture: ")

LoadImage(0, #PB_Compiler_Home + "Examples\Sources\Data\PureBasicLogo.bmp")
Edit\SetImage(ImageID(0))

Edit\SetText(" in a EditorGadget!" + #CRLF$)

While WaitWindowEvent() <> #PB_Event_CloseWindow : Wend
Vorschau:
Bild

Kein Unicode Support bei Verwendung von Bildern!
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
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 »

Update
Historie hat geschrieben:; Version 2.0, August 03, 2011
; fixed bug in Print methode
; added Unicode-Support for SetImage
Hier noch ein Beispiel, wie man Bilder per Image- oder Filedrop einfügen kann:

Code: Alles auswählen

EnableExplicit

XIncludeFile "RichEdit.pbi"

UsePNGImageDecoder()
UseJPEGImageDecoder()

Define.RichEdit Edit
Define.s Files, File, Ext
Define.i i, j

OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "EditorGadget with ImageDrop-Support", #PB_Window_SizeGadget | #PB_Window_SystemMenu)
Edit = New_RichEdit(5, 5, 630, 470)
Edit\SetInterface()
EnableGadgetDrop(Edit\GetID(), #PB_Drop_Image | #PB_Drop_Files, #PB_Drag_Copy | #PB_Drag_Move)

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Break
      
    Case #PB_Event_SizeWindow
      ResizeGadget(Edit\GetID(), #PB_Ignore, #PB_Ignore, WindowWidth(0) - 10, WindowHeight(0) - 10)
      
    Case #PB_Event_GadgetDrop
      If EventGadget() = edit\GetID()
        Select EventDropType()
          Case #PB_Drop_Image 
            If EventDropImage(0)
              Edit\SetImage(ImageID(0))
            EndIf
          Case #PB_Drop_Files
            Files = EventDropFiles()
            j = CountString(Files, #LF$) + 1
            For i = 1 To j
              File = StringField(Files, i, #LF$)
              Ext = LCase(GetExtensionPart(File))
              Select Ext
                Case "bmp", "jpg", "png"
                  If LoadImage(0, File)
                    Edit\SetImage(ImageID(0))
                  EndIf
                Case "rtf"
                  Edit\LoadRTF(File, #True)
                Case "txt"
                  Edit\LoadText(File, #True)
              EndSelect
            Next
        EndSelect
      EndIf
  EndSelect
ForEver
ToDo: Tabellenunterstützung
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
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 »

Update
Historie hat geschrieben:; Version 2.1, August 12, 2011
; added: SetHidden(), IsHidden(), SetTextEx()
; fixed: GetTextColor
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
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 »

Update:
History hat geschrieben:; Version 2.2, October 31, 2013
; modified for PB 5.20
; modified: GetRTFStreamCallback

; Version 2.3, November 03, 2013
; changed to Module (RichEdit)
; some bugfixes
Special thanks to ozzie for his suggestions/fixes
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
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: RichEdit Funktionen (OOP): Jetzt mit ImageSupport

Beitrag von mk-soft »

Von mir gibt es fünf Sterne :allright:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten