Jump to content

Wrap Highlighted Text In Tags


Recommended Posts

is it possible to have an input box, and when certain text is highlighted and the user clicks a button, it is wrapped in tags such as:

this is some text (lets say 'some' is highlighted)

user clicks bold

the text becomes this is [bold]some[/bold] text

My Programs:AInstall - Create a standalone installer for your programUnit Converter - Converts Length, Area, Volume, Weight, Temperature and Pressure to different unitsBinary Clock - Hours, minutes and seconds have 10 columns each to display timeAutoIt Editor - Code Editor with Syntax Highlighting.Laserix Editor & Player - Create, Edit and Play Laserix LevelsLyric Syncer - Create and use Synchronised Lyrics.Connect 4 - 2 Player Connect 4 Game (Local or Online!, Formatted Chat!!)MD5, SHA-1, SHA-256, Tiger and Whirlpool Hash Finder - Dictionary and Brute Force FindCool Text Client - Create Rendered ImageMy UDF's:GUI Enhance - Enhance your GUIs visually.IDEA File Encryption - Encrypt and decrypt files easily! File Rename - Rename files easilyRC4 Text Encryption - Encrypt text using the RC4 AlgorithmPrime Number - Check if a number is primeString Remove - remove lots of strings at onceProgress Bar - made easySound UDF - Play, Pause, Resume, Seek and Stop.
Link to comment
Share on other sites

It's possible - of course. Very little that you can't do in Autoit :)

#include <GUIConstants.au3>

Global $EM_GETSEL = 0x00B0
Global $EM_REPLACESEL = 0x00C2

; == GUI generated with Koda ==);
$Form1 = GUICreate("AForm1", 622, 448, 192, 125)
$Edit1 = GUICtrlCreateEdit("", 8, 8, 401, 273)
GUICtrlSetData($Edit1, "this is some text (lets say 'some' is highlighted)")
$Button1 = GUICtrlCreateButton("Bold", 8, 304, 75, 25, 0)
GUISetState(@SW_SHOW)
While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
        ExitLoop
    Case $msg = $Button1 
        WrapToTag($Edit1, "bold")
    Case Else
;;;;;;;
    EndSelect
WEnd

Func WrapToTag($control, $tag)
        Local $editpos = GUICtrlRecvMsg($control, $EM_GETSEL)
        If UBound($editpos) = 0 Then Return
        Local $selection = StringMid(GUICtrlRead($control), $editpos[0]+1, $editpos[1]-$editpos[0])
        GUICtrlSendMsg($control, $EM_REPLACESEL, 0, StringFormat("[%s]%s[/%s]", $tag, $selection, $tag))
EndFunc
Edited by Lazycat
Link to comment
Share on other sites

thanks for the reply, it works

My Programs:AInstall - Create a standalone installer for your programUnit Converter - Converts Length, Area, Volume, Weight, Temperature and Pressure to different unitsBinary Clock - Hours, minutes and seconds have 10 columns each to display timeAutoIt Editor - Code Editor with Syntax Highlighting.Laserix Editor & Player - Create, Edit and Play Laserix LevelsLyric Syncer - Create and use Synchronised Lyrics.Connect 4 - 2 Player Connect 4 Game (Local or Online!, Formatted Chat!!)MD5, SHA-1, SHA-256, Tiger and Whirlpool Hash Finder - Dictionary and Brute Force FindCool Text Client - Create Rendered ImageMy UDF's:GUI Enhance - Enhance your GUIs visually.IDEA File Encryption - Encrypt and decrypt files easily! File Rename - Rename files easilyRC4 Text Encryption - Encrypt text using the RC4 AlgorithmPrime Number - Check if a number is primeString Remove - remove lots of strings at onceProgress Bar - made easySound UDF - Play, Pause, Resume, Seek and Stop.
Link to comment
Share on other sites

  • Moderators

It's possible - of course. Very little that you can't do in Autoit :)

#include <GUIConstants.au3>

Global $EM_GETSEL = 0x00B0
Global $EM_REPLACESEL = 0x00C2

; == GUI generated with Koda ==);
$Form1 = GUICreate("AForm1", 622, 448, 192, 125)
$Edit1 = GUICtrlCreateEdit("", 8, 8, 401, 273)
GUICtrlSetData($Edit1, "this is some text (lets say 'some' is highlighted)")
$Button1 = GUICtrlCreateButton("Bold", 8, 304, 75, 25, 0)
GUISetState(@SW_SHOW)
While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
        ExitLoop
    Case $msg = $Button1 
        WrapToTag($Edit1, "bold")
    Case Else
;;;;;;;
    EndSelect
WEnd

Func WrapToTag($control, $tag)
        Local $editpos = GUICtrlRecvMsg($control, $EM_GETSEL)
        If UBound($editpos) = 0 Then Return
        Local $selection = StringMid(GUICtrlRead($control), $editpos[0]+1, $editpos[1]-$editpos[0])
        GUICtrlSendMsg($control, $EM_REPLACESEL, 0, StringFormat("[%s]%s[/%s]", $tag, $selection, $tag))
EndFunc
That's awesome LC!!

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...