Search Tools Links Login

Word Highliter


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

About this post

Posted: 2002-06-01
By: ArchiveBot
Viewed: 122 times

Categories

ASP/ HTML

Attachments

No attachments for this post


Loading Comments ...

Comments

No comments have been added for this post.

You must be logged in to make a comment.