' ' -------------------------------------------------------------------- ' QREDEX OBJECT 2002-2005 By Jacques Philippe ' ' EXTENDS QRICHEDIT with COPY, CUT, PASTE, DELETE, SELECT ALL, UNDO, ' SEARCH, REPLACE, SAVEPOSITION, RESTOREPOSITION, ' SETMAXTEXTSIZE(Size), EXTENDSIZELIMIT, CHANGEFONT, ' CHANGEFONTCOLOR, CHANGEBGCOLOR, TOPLINEINDEX, BOTTOLINEINDEX ' ' DOCUMENTATION : TEXT FORMAT ' ' V 0.0.3 2002 : major modification nearly a copy of Psyclops420 work. ' See Yahoo RapidQ Group message #9414 ' V 1.0.0 April 2005 added Search, Replace, SavePosition, ' RestorePosition, ChangeFont, ChangeFontColor, ChangeBgColor, ' SetMaxTextSize, ExtendSizeLimit ' V 1.1.0 June 2005 added TopLineIndex, BottomLineIndex ' V 1.2.0 June 2006 Added property Private OS_Version As Long ' to use Sound or Beep if Win9x < 5 or >= 5 ' -------------------------------------------------------------------- ' ' $INCLUDE "QREDEX.INC" ' Will be the new QRichEdit ' ' Example : ' Create QRED As QRICHEDIT ' Align = alClient ' Font.Name = "courier" ' Font.Size = 8 ' Font.Color = &H80FFFF ' Color = &H800000 ' ReadOnly = False ' WordWrap = False ' ScrollBars = ssBoth ' HideSelection = False ' PlainText = True ' ExtendSizeLimit ' SetMaxTextSize (4E6) ' End Create ' ' Create mnuChangeFontAndColor AS QMENUITEM ' Caption = "&FONT and COLORS " ' Create mnuChangeFont AS QMENUITEM ' Caption = "&CHANGE FONT " ' OnClick = OnClic_AnyMenu ' End Create ' Create mnuChangeFontColor AS QMENUITEM ' Caption = "&CHANGE FONT COLOR " ' OnClick = OnClic_AnyMenu ' End Create ' Create mnuChangeBgColor AS QMENUITEM ' Caption = "&CHANGE BG_COLOR " ' OnClick = OnClic_AnyMenu ' End Create ' End Create ' ' Case mnuChangeFont.Handle ' .ChangeFont ' Case mnuChangeBgColor.Handle ' .ChangeBgcolor ' Case mnuChangeFontColor.Handle ' .ChangeFontcolor ' Case mnuGetTopBottomLinesIndex.Handle ' ShowMessage (" TOP VISIBLE LINE INDEX = " & Str$(.TopLineIndex) _ ' & "\n\nBOTTOM VISIBLE LINE INDEX = " & Str$(.BottomLineIndex)) ' ' -------------------------------------------------------------------- ' DOCUMENTATION ' ============= ' - This Extends QRichEdit so See Component QRichEdit of RapidQ. ' Only Property PopUpMenu Is Involved/Changed ' - After Including the QREDEX.INC file, your QRichEdit will have ' Undo, Copy, Cut, Paste, Delete, Select All, Search, Replace ' in it's Popupmenu. New methods opening DialogBox: ChangeFont, ' ChangeBgColor, ChangeFontColor and SavePosition, RestorePosition, ' TopLineIndex, BottomLineIndex, SetMaxTextSize, ExtendSizeLimit. ' ' IN POPUPMENU : COPY , CUT , PASTE , DELETE , SELECT ALL, UNDO, ' SEARCH, REPLACE . ' Due to RapidQ CodePtr limitation, it was not possible to use ' the Windows Search and Replace tool. ' ' NEW PROPERITIES and METHODS ' --------------------------- ' USEPOPUP allows menu to PopUp when Right Clicking R/W Default = True ' ' TOPLINEINDEX returns the index of the top visible line ' ' BOTTOMLINEINDEX returns the index of the bottom visible line ' ' SAVEPOSITION, RESTOREPOSITION save the index of top_left character ' in the RichEdit and restore it. The Caret position if set, ' is saved and restored too. ' ' If you want to save the position and restore the position by ' your own mean, save the two Public properties ' QRedEx.SavedTopLeft As long and QRedEx.SavedCaretPosition As Long ' somewhere, then restore them before to call the ' QRedEx.RestorePosition method. ' ' Ex : DefInt mySavedTopLeft = QRedEx.SavedTopLeft ' DefInt mySavedCaretPosition = QRedEx.SavedCaretPosition ' ' ... ' QRedEx.SavedTopLeft = mySavedTopLeft ' QRedEx.SavedCaretPosition = mySavedCaretPosition ' QRedEx.RestorePosition ' ' SETMAXTEXTSIZE(Size) method that set the maximum RichEdit text size ' ' EXTENDSIZELIMIT method that sets the maximum RichEdit text size ' to the value of the public property QRedEx.RichTextSizeLimit. ' QRedEx.RichTextLimitSize is initialised at 1 MegaByte. ' ' CHANGEFONT, CHANGEFONTCOLOR, CHANGEBGCOLOR ' Method that will call a DialogBox that will set the ' QRedEx.Font, QRedEx.Font.color and QRedEx BackGroundColor ' ' OTHER PUBLIC PROPERTIES OF QREDEX ' UsePopup AS LONG PROPERTY SET Set_Popup ' RichTextSizeLimit As Long ' SavedTopLeft As Long ' SavedBottomRight As Long ' SavedCaretPosition As Long ' ptPoint As String * 20 ' Used with Window Message EM_GETRECT, EM_CHARFROMPOS ' ' Search Form ' frmSearch As QForm ' edtSearchFor As QEdit ' lblSearchFor AS QLabel ' btnSearch As QButton ' chkSearchCaseS As QCheckBox ' chkSearchWholeWordsOnly As QCheckBox ' ' Replace Form ' frmReplace As QForm ' lblToBeReplaced AS QLabel ' edtToBeReplaced As QEdit ' lblReplacedBy AS QLabel ' edtReplacedBy As QEdit ' btnReplace As QButton ' btnFindNext As QButton ' btnReplaceAll As QButton ' chkReplaceCaseS As QCheckBox ' chkReplaceWholeWordsOnly As QCheckBox ' chkReplaceUp As QCheckBox ' ' The search and replace forms are public so you can modify any of ' their components properties or call any of their Methods. ' -------------------------------------------------------------------- '