Word Highliter
Posted: 2002-06-01
By: ArchiveBot
Viewed: 79
Filed Under:
No attachments for this post
Ever see a search engine that highlights your search results? This code does that. It takes a querystring, and compares it to a second variable. The second variable will be written to the page, and any matching words will be in highlighted and bolded. See screenshot for details.
Original Author: masswebsites
Inputs
request.querystring("qs")
Assumptions
Assumes your querystring and compare variable are delimited by spaces. This can easily be changed. You could also replace the querystring input with a value from a database, an xml file, or anything else. Pleasse comment.
Returns
Returns a string with highlighted words that are similar.
Side Affects
Currently Unknown. This has also not been user load-tested.
API Declarations
Have fun.
Code
'This small and very simple sub will format the
'caption of a Label control if the text is too
'big to display in the control. The sub will
'trucate the text and append "..." to the end
'of the text (indicating to the user that they
'are not seeing the full text). VB automatically
'wordwraps the caption of a label if it is too
'big, however, this results in the caption being
'truncated only where there is a space. Also,
'you can see the top of the next line of the caption.
'Example
'Make and Model: Cadillac
'becomes:
'Make and Model: Cadillac Eldor...
'I find this extremely useful when I don't know the
'maximum length of the text the label will contain,
'or if I don't have enough screen real estate to
'make the Label big enough.
Private Sub AutoSizeCaption(lbl As Label)
Dim i As Integer
Dim iLabelWidth As Integer
Dim sText As String
Const kMore = "..."
' store orignal caption and width
sText = lbl.Caption
' numeric or date? Don't format.
If IsNumeric(lbl.Caption) Or IsDate(lbl.Caption) Then Exit Sub
iLabelWidth = lbl.Width
' allow label to "spring" to it's actual width
lbl.AutoSize = True
' is required width of label < actual width?
If lbl.Width > iLabelWidth Then
i = Len(sText) - 1
Do
lbl.Caption = Left(sText, i) & kMore
i = i - 1
Loop Until (lbl.Width <= iLabelWidth) Or (i = 0)
End If
Exit_Sub:
lbl.AutoSize = False
lbl.Width = iLabelWidth
Exit Sub
ErrorHandler:
' something went wrong ... put everything back
lbl.Caption = sText
Resume Exit_Sub
End Sub
Comments on this post
No comments have been added for this post.
You must be logged in to make a comment.