[Richard Suchenwirth] 2006-11-28 - Here is example code for searching substrings in a [text] widget. When an instance is found, it is highlighted with the given tag. At end of the text content, the search wraps around. A global variable reports the position of a found substring. proc find {w what tag _status} { upvar #0 $_status status foreach {from to} [$w tag ranges $tag] { $w tag remove $tag $from $to } set pos [$w search -count n -- $what insert+2c] if {$pos eq ""} { set status "not found: $what" } else { set status "found at $pos: $what" $w mark set insert $pos $w see $pos $w tag add $tag $pos $pos+${n}c } } # Demo with an entry for the search term, a text, and a label for the status string: package require Tk pack [entry .e -textvariable Find] -fill x bind .e {find .t $Find hilite state} pack [text .t -wrap word] .t tag configure hilite -background orange pack [label .l -textvariable state] -anchor w ---- See also [Simple search and replace] See also [Incremental GUI text search] ---- !!!!!! %| [Category Example] |% !!!!!!