Guidance
指路人
g.yi.org
software / rapidq / examples / GUI / Edit & Richedit / MultiLineEdit.bas

Register 
注册
Search 搜索
首页 
Home Home
Software
Upload

  
     $INCLUDE "Rapidq.inc"
     $TYPECHECK ON

'- Just some of the many API constants
     CONST WM_COMMAND = &H111
     CONST WM_SYSCOMMAND = &H112
     CONST WM_SETFONT = &H30
     CONST WM_GETFONT = &H31
     CONST WM_KILLFOCUS=(&H8)
     CONST WM_SETFOCUS=(&H7)
     CONST WM_CTLCOLOREDIT = &H133

     CONST WM_MOUSEFIRST = &H200
     CONST WM_MOUSEMOVE = &H200
     CONST WM_LBUTTONDOWN = &H201
     CONST WM_LBUTTONUP = &H202
     CONST WM_LBUTTONDBLCLK = &H203
     CONST WM_RBUTTONDOWN = &H204
     CONST WM_RBUTTONUP = &H205
     CONST WM_RBUTTONDBLCLK = &H206
     CONST WM_MBUTTONDOWN = &H207
     CONST WM_MBUTTONUP = &H208
     CONST WM_MBUTTONDBLCLK = &H209
     CONST WM_MOUSELAST = &H209

     CONST WM_KEYFIRST = &H100
     CONST WM_KEYDOWN = &H100
     CONST WM_KEYUP = &H101
     CONST WM_CHAR = &H102

     CONST WM_DEADCHAR = &H103
     CONST WM_SYSKEYDOWN = &H104
     CONST WM_SYSKEYUP = &H105
     CONST WM_SYSCHAR = &H106
     CONST WM_SYSDEADCHAR = &H107
     CONST WM_KEYLAST = &H108
'-----------------------------
     CONST WS_EX_CLIENTEDGE = &H200
     CONST WS_CHILD = &H40000000
     CONST WS_VISIBLE = &H10000000
     CONST WS_BORDER = &H800000

'- Edit Control Styles
     CONST ES_LEFT = &H0
     CONST ES_CENTER = &H1
     CONST ES_RIGHT = &H2
     CONST ES_MULTILINE = &H4
     CONST ES_UPPERCASE = &H8
     CONST ES_LOWERCASE = &H10
     CONST ES_PASSWORD = &H20
     CONST ES_AUTOVSCROLL = &H40
     CONST ES_AUTOHSCROLL = &H80
     CONST ES_NOHIDESEL = &H100
     CONST ES_OEMCONVERT = &H400

'- Edit Control Messages
     CONST EM_GETSEL = &HB0

     CONST EM_SETSEL = &HB1
     CONST EM_GETRECT = &HB2
     CONST EM_SETRECT = &HB3
     CONST EM_SETRECTNP = &HB4
     CONST EM_SCROLL = &HB5
     CONST EM_LINESCROLL = &HB6
     CONST EM_SCROLLCARET = &HB7
     CONST EM_GETMODIFY = &HB8
     CONST EM_SETMODIFY = &HB9
     CONST EM_GETLINECOUNT = &HBA
     CONST EM_LINEINDEX = &HBB
     CONST EM_SETHANDLE = &HBC
     CONST EM_GETHANDLE = &HBD
     CONST EM_GETTHUMB = &HBE
     CONST EM_LINELENGTH = &HC1
     CONST EM_REPLACESEL = &HC2
     CONST EM_GETLINE = &HC4
     CONST EM_LIMITTEXT = &HC5
     CONST EM_CANUNDO = &HC6
     CONST EM_UNDO = &HC7
     CONST EM_FMTLINES = &HC8
     CONST EM_LINEFROMCHAR = &HC9
     CONST EM_SETTABSTOPS = &HCB
     CONST EM_SETPASSWORDCHAR = &HCC
     CONST EM_EMPTYUNDOBUFFER = &HCD
     CONST EM_GETFIRSTVISIBLELINE = &HCE
     CONST EM_SETREADONLY = &HCF
     CONST EM_SETWORDBREAKPROC = &HD0
     CONST EM_GETWORDBREAKPROC = &HD1
     CONST EM_GETPASSWORDCHAR = &HD2

'- Edit Control Notification Codes
     CONST EN_SETFOCUS = &H100
     CONST EN_KILLFOCUS = &H200
     CONST EN_CHANGE = &H300
     CONST EN_UPDATE = &H400
     CONST EN_ERRSPACE = &H500
     CONST EN_MAXTEXT = &H501
     CONST EN_HSCROLL = &H601
     CONST EN_VSCROLL = &H602

'- Window field offsets for GetWindowLong() and GetWindowWord()

     CONST GWL_WNDPROC = (-4)     ' Sets a new address for the window procedure.
     CONST GWL_HINSTANCE = (-6)   ' Sets a new application instance handle.
     CONST GWL_HWNDPARENT = (-8)
     CONST GWL_STYLE = (-16)      ' Sets a new window style.
     CONST GWL_EXSTYLE = (-20)    ' Sets a new extended window style.
     CONST GWL_USERDATA = (-21)   ' Sets the 32-bit value associated with the window. Each window has a corresponding 32-bit value intended for use by the application that
     CONST GWL_ID = (-12)        '' Sets a new identifier of the window.

'' created the window.
     DECLARE FUNCTION CreateEdit LIB "USER32" ALIAS "CreateWindowExA" _
      (ExStyle&,ClassName$,WindowName$,Style&,X&,Y&,W&,H&,WndParent&,hMenu&,hInstance&,Param&) AS LONG

     DECLARE FUNCTION SetWindowLong LIB "user32" ALIAS "SetWindowLongA"_
      (BYVAL hwnd AS LONG, BYVAL nIndex AS LONG, BYVAL dwNewLong AS LONG) AS LONG

     DECLARE FUNCTION GetWindowLong LIB "user32" ALIAS "GetWindowLongA" _
      (BYVAL hwnd AS LONG, BYVAL nIndex AS LONG) AS LONG

     DECLARE FUNCTION SetWindowText LIB "user32" ALIAS "SetWindowTextA" _
      (BYVAL hwnd AS LONG, BYVAL lpString AS STRING) AS LONG

     DECLARE FUNCTION GetWindowText LIB "user32" ALIAS "GetWindowTextA" _
      (BYVAL hwnd AS LONG, ByRef lpString AS STRING, BYVAL cch AS LONG) AS LONG
'                     ^^^^ !!!!

     DECLARE FUNCTION GetWindowTextLength LIB "user32" ALIAS "GetWindowTextLengthA" _
      (BYVAL hwnd AS LONG) AS LONG

     DECLARE FUNCTION CallWindowProc LIB "user32" ALIAS "CallWindowProcA" _
      (BYVAL lpPrevWndFunc AS LONG, BYVAL hWnd AS LONG, BYVAL Msg AS LONG, BYVAL wParam AS LONG, _
      BYVAL lParam AS LONG) AS LONG

     DECLARE FUNCTION SM LIB "user32" ALIAS "SendMessageA"        _
      (BYVAL hwnd       AS LONG,                         _
      BYVAL wMsg       AS LONG,                         _
      BYVAL wParam     AS INTEGER,                      _
      BYVAL lParam     AS LONG                          _
      ) AS LONG

'API SendMessage return value, but RQ SendMessage - don`t

'declare function WinProc (Handle AS INTEGER, Msg AS DWORD, wParam AS LONG, lParam AS LONG) AS LONG

     DECLARE FUNCTION GetParent LIB "User32" ALIAS "GetParent" (hWnd AS LONG) AS LONG

     DECLARE SUB OnChange_EventTemplate(Sender AS  QPANEL )'' QEDIT)
     DECLARE SUB OnGetFocus_EventTemplate(Sender AS  QPANEL )'' QEDIT)
     DECLARE SUB OnLoseFocus_EventTemplate(Sender AS  QPANEL ) 'QEDIT)
     DECLARE SUB OnKeyDown_EventTemplate(Sender AS  QPANEL )
     DECLARE SUB OnKeyPress_EventTemplate(Sender AS  QPANEL )
     DECLARE SUB OnKeyUp_EventTemplate (Sender AS  QPANEL )
     DECLARE SUB WndProc_EventTemplate(hWnd AS LONG, uMsg AS LONG, wParam AS LONG, lParam AS LONG)
     DECLARE SUB OnSelChange_EventTemplate (Sender AS  QPANEL )
     DECLARE SUB OnMouseMove_EventTemplate(Sender AS  QPANEL )

     TYPE RQEdit EXTENDS QPANEL

      WITH RQEdit

PRIVATE:
       EditStyle     AS INTEGER
       eAlignment    AS INTEGER
       eCharCase     AS INTEGER 'RW ecNormal W
       OldPanelWndProc AS LONG
       SelLengthCr   AS LONG
       SelStartCr    AS LONG
       SelMaxCr    AS LONG

PUBLIC:
       EditHandle AS LONG   PROPERTY SET SetHandle '- initialization'

'-Character position index immediately preceding the first character in the range'
'SelMin as Long

'-Character position immediately following the last character in the range.
       SelMax AS LONG

'- properties'
       Font       AS QFONT     PROPERTY SET SetFont
       Text       AS STRING    PROPERTY SET SetText         '-RW  WXG
       Alignment  AS LONG   PROPERTY SET SetAlignment
       CharCase   AS LONG   PROPERTY SET SetCharCase
       EnterKey   AS LONG      PROPERTY SET Set_EnterKey

       SelLength  AS LONG     PROPERTY SET SetSelLength
       SelStart   AS LONG     PROPERTY SET SetSelStart
       SelText    AS STRING   PROPERTY SET SetSelText

       LineCount  AS LONG
       Line (.LineCount)  AS STRING
       WhereX     AS LONG             ' char position
       WhereY     AS LONG             ' string number
       Wordwrap   AS LONG


'- events'
       OnGetFocus  AS EVENT(OnGetFocus_EventTemplate)
       OnLoseFocus AS EVENT(OnLoseFocus_EventTemplate)
       OnChange    AS EVENT(OnChange_EventTemplate)
       OnKeyDown   AS EVENT(OnKeyDown_EventTemplate)
       OnKeyPress  AS EVENT(OnKeyPress_EventTemplate)
       OnKeyUp     AS EVENT(OnKeyUp_EventTemplate)
       OnSelChange AS EVENT(OnSelChange_EventTemplate)  'current selection changes'
       OnMouseMove AS EVENT(OnMouseMove_EventTemplate)

'	EN_SELCHANGE  	Ïðîèçîøëè èçìåíåíèÿ â âûäåëåíèè ôðàãìåíòà òåêñòà

''    onMouseDown AS EVENT(onMouseDown_EventTemplate)
'OnMouseMove
'OnMouseUp'

'OnKeyDown SUB (Key AS WORD, Shift AS INTEGER) Key held down 2 W
'OnKeyPress SUB (Key AS BYTE) User presses a key 1 W
'OnKeyUp SUB (Key AS Word, Shift AS INTEGER) User releases a key 2 W

       WndProc  AS EVENT(WndProc_EventTemplate)

       PROPERTY SET Set_EnterKey(NewEnterKey AS LONG)
        .EnterKey = NewEnterKey
       END PROPERTY SET

'---  WinProc Edit '


'--- WinProc Panel'
       FUNCTION PanelProc(hWnd AS LONG, uMsg AS LONG, wParam AS LONG, lParam AS LONG) AS LONG
        Result = CallWindowProc(.OldPanelWndProc, hWnd, uMsg, wParam, lParam)
'	IF lParam = .Edithandle    THEN 'print "uMsg from edit = ",hex$(uMsg  )
'   IF uMsg = WM_KILLFOCUS THEN 'print "uMsg =  WM_KILLFOCUS"

        IF uMsg = WM_CTLCOLOREDIT AND lParam = .Edithandle THEN ' change color - selection event
         DIM ret AS LONG
         ret =(SM  (this.Edithandle, EM_GETSEL, .SelStart, .SelMax))
''print "ret=",hex$(ret)
         .SelStart=ret AND &HFFFF
         .SelMax=(ret AND &HFFFF0000) SHR 16
         .SelLength=.SelMax-.SelStart

'- send message EN_UPDATE
         DIM wParam1 AS LONG
         wParam1=EN_UPDATE  'EN_CHANGE
         wParam1=wParam1 SHL 16
         SENDMESSAGE .handle, WM_COMMAND,wParam1,.Edithandle

        END IF

        IF uMsg = WM_COMMAND THEN
''print "Edit.handler=",hex$(.Edithandle)
''print  "(lParam AND &HFFFF)=",hex$ (lParam AND &HFFFF) 'low'
''print "wParam=",hex$(wParam)
'EN_CHANGE
''print "LParam=",hex$(lParam)

         IF lParam = .Edithandle THEN
''print  "(wParam AND &HFFFF0000)=",hex$ (wParam AND &HFFFF0000) 'high
''print  "(wParam SHR 16)=",hex$ (wParam SHR 16) '
''print  Hex$(EN_CHANGE)
          SELECT CASE (wParam SHR 16)
          CASE IS = EN_SETFOCUS
'		'print "EN_SETFOCUS"
'       'print "Edit.handle=",hex$(.Edithandle)
''   'print "Text=",.Text

           CALLFUNC(.OnGetFocus, This)

          CASE IS =	EN_KILLFOCUS'
'		'print "EN_KILLFOCUS"
'       'print "Edit.handle=",hex$(.Edithandle)
           CALLFUNC(.OnLoseFocus, This)

          CASE IS =	EN_CHANGE


          CASE IS =	EN_UPDATE
  ''  	'print "EN_UPDATE  "
           DIM MyStr1 AS STRING
           MyStr1 =SPACE$(GetWindowTextLength (.EDIThandle)+1)
           DEFSTR ST
           DEFLNG LH
           LH = GETWINDOWTEXT(.EDIThandle,MyStr1, LEN(MyStr1))
           ST = LEFT$(MyStr1, LH)
           .Text=ST
           .CAPTION=.Text
'.EditText=.Text

           CALLFUNC(.OnChange, This)

          CASE IS =	EN_ERRSPACE
	    'print "EN_ERRSPACE"

          CASE IS =	EN_MAXTEXT
	    'print "EN_MAXTEXT"

          CASE IS =	EN_HSCROLL
	    'print "EN_HSCROLL"

          CASE IS =	EN_VSCROLL
	    'print "EN_vSCROLL"

          CASE ELSE
'print "EN_EMY UNKNOWN",hex$ (wParam SHR 16)
          END SELECT
         END IF
''print "-----------------------------------"

        END IF
       END FUNCTION

       PROPERTY  SET SetHandle(EditHandle AS INTEGER) '- èíèöèàëèçàöèÿ êîìïîíåíòà

'--îïðåäåëåíèå íîâîé ïðîöåäóðû Paneli'
        .OldPanelWndProc = SetWindowLong(this.Handle, GWL_WNDPROC, CODEPTR(this.PanelProc))

'-- ñîçäàíèå Edita
''print "this.Text111=",this.Text
        this.EditHandle = CreateEdit(WS_EX_CLIENTEDGE,"edit", this.Text, this.EditStyle, _
         5, 5, .width-10, .height-120, _
         this.handle, 0, 0  ,0)
        .CAPTION=this.Text

'- send message EN_UPDATE
'dim wParam1 as Long
'wParam1=EN_UPDATE  'EN_CHANGE
'wParam1=wParam1 SHL 16
'SENDMESSAGE .handle, WM_COMMAND,wParam1,.Edithandle

       END PROPERTY

       PROPERTY SET SetSelText ( SelText    AS STRING)

''   SelText=mid$(.Text,SelStartCr,SelLengthCr )
''   'print "SelText=",SelText

       END PROPERTY

       PROPERTY SET SetSelLength (SelLength  AS LONG    )
        .SelStart=.SelStartCr
        .SelLengthCr=SelLength

        .SelMax=.SelStart+.SelLength
        SendMessage  this.Edithandle,EM_SETSEL, .SelStart, .SelMax

        SelLength=.SelLengthCr
        .SelStart=.SelStartCr
        .SelText=MID$(.Text,.SelStartCr,.SelLengthCr )
'.Text=.caption
   'print "1.Text=",.Text
   'print  "SelStartCr=",.SelStartCr
   'print  "SelLengthCr=",.SelLengthCr
   'print ".SelText=",.SelText

       END PROPERTY

       PROPERTY SET SetSelStart (SelStart   AS LONG     )
        .SelStartCr=SelStart
        .SelLength=.SelLengthCr
        .SelStartCr=.SelStart
        SendMessage  this.Edithandle,EM_SETSEL, .SelStart, .SelMax
        SelStart=.SelStartCr
        .SelLength=.SelLengthCr

        .SelText=MID$(.Text,.SelStartCr,.SelLengthCr )
   'print "2.Text=",.Text
   'print  "SelStartCr=",.SelStartCr
   'print  "SelLengthCr=",.SelLengthCr
   'print ".SelText=",.SelText

       END PROPERTY

       PROPERTY SET SetCharCase (CharCase AS INTEGER )
        SELECT CASE CharCase
        CASE ecNormal
''print "Set ecNormal"
         SetWindowLong this.Edithandle, GWL_STYLE  , .EditStyle
         .CharCase=CharCase
        CASE ecUpperCase
         .eCharCase = ES_UPPERCASE
''print "Set ES_UPPERCASE"

         SetWindowLong this.Edithandle, GWL_STYLE  , .EditStyle OR ES_UPPERCASE
         .CharCase=CharCase

        CASE ecLowerCase
         .eCharCase = ES_LOWERCASE
''print "Set ES_LOWERCASE"

         SetWindowLong this.Edithandle, GWL_STYLE  , .EditStyle OR ES_LOWERCASE
         .CharCase=CharCase

        CASE ELSE
        END SELECT
        .repaint
       END PROPERTY

       PROPERTY SET SetText(Text  AS STRING)
        .Text=Text
        SetWindowText this.Edithandle, Text
' .caption=Text
       END PROPERTY

       PROPERTY SET  SetFont(Font AS QFONT  )
        SendMessage this.EditHandle, WM_SETFONT, Font.handle, 1
       END PROPERTY

       PROPERTY SET SetAlignment (Alignment AS INTEGER)
 'not working
        SELECT CASE Alignment

        CASE taLeftJustify
         .eAlignment =ES_LEFT

        CASE taRightJustify
         .eAlignment  =ES_RIGHT
''    'print ".eAlignment=ES_RIGHT "
        CASE taCenter
         .eAlignment =ES_CENTER
        CASE ELSE

        END SELECT

        SetWindowLong .Edithandle, GWL_STYLE  , .EditStyle OR .eAlignment'' ES_UPPERCASE
''    .repaint
       END PROPERTY

'- methods'

       SUB Clear
        SetWindowText .EDIThandle,"" '- delete text '

'- send message EN_UPDATE
        DIM wParam1 AS LONG
        wParam1=EN_UPDATE  'EN_CHANGE
        wParam1=wParam1 SHL 16
        SENDMESSAGE .handle, WM_COMMAND,wParam1,.Edithandle
       END SUB

'AddStrings
'
'CopyToClipboard
'CutToClipboard
'LoadFromFile
'PasteFromClipboard'
'SaveToFile
'SelectAll
'FINDTEXT
'ReplaceSelectedText

       CONSTRUCTOR
        CharCase=ecNormal
        CAPTION="case"
        Text="DefaultText"
        Left=5
        Top=5
        Width=250
        Height=200
        COLOR=clYellow
        Font.COLOR=clRed
        EditStyle=WS_CHILD OR WS_VISIBLE OR WS_BORDER OR ES_MULTILINE OR _
         ES_AUTOVSCROLL OR ES_AUTOhSCROLL OR ES_NOHIDESEL

       END CONSTRUCTOR


      END WITH

     END TYPE
'============  end of .inc  ================'

'DECLARE SUB OnGetFocus_EventTemplate(Sender AS  RQEdit )'' QEDIT)
'DECLARE SUB OnLoseFocus_EventTemplate(Sender AS  RQEdit ) 'QEDIT)
'DECLARE SUB WndProc_EventTemplate(hWnd AS LONG, uMsg AS LONG, wParam AS LONG, lParam AS LONG)

     DECLARE SUB FormWndProc (Handle AS INTEGER, Msg AS DWORD, wParam AS LONG, lParam AS LONG)
     DECLARE SUB FormOnShow
     DECLARE  SUB Button1Click
     DECLARE  SUB Button2Click

     DECLARE SUB GET(Sender AS RQEdit)
     DECLARE SUB Lose(Sender AS RQEdit)
     DECLARE SUB EditChange (Sender AS RQEdit)

     DECLARE SUB WndProc(hWnd AS LONG, uMsg AS LONG, wParam AS LONG, lParam AS LONG)



     DIM xFont AS QFONT
'xFont.Name ="Terminal"
     xFont.Name ="Arial"
     xFont.Size =14
     xFont.COLOR=ClYellow

     DIM LastFocused AS INTEGER

     CREATE Form AS QFORM
      CAPTION = "Form"
      top=50 :left=250
      Width = 500 :  Height = 450
      OnShow=FormOnShow
      WndProc=FormWndProc
      CREATE PEdit AS  RQEdit
       SetHandle=1
       Text="Edit0--"

       Height = 200
       Font =xFont
       Alignment=taRightJustify
       COLOR=clGreen
       OnGetFocus = GET
       OnLoseFocus = Lose
       '' WndProc = WndProc
       OnChange=EditChange
       Tag=0
       CREATE Button1 AS QBUTTON
        CAPTION = "Clear"
        Left = 20
        Top = 147
        OnClick = Button1Click
       END CREATE
      END CREATE

      CREATE PEdit1 AS RQEdit
       SetHandle=1
       Text="Edit1----"

       Top=210
       Height = 200
       Font =xFont
       Alignment=taRightJustify
       COLOR=clRed
       OnGetFocus = GET
       OnLoseFocus = Lose
       OnChange=EditChange
       SelStart=2
       SelLength=3
       Tag=1
       CREATE Button2 AS QBUTTON
        CAPTION = "CharCase"
        Left = 20
        Top = 147
        Width = 120
 ''    Height =
        OnClick = Button2Click
       END CREATE

      END CREATE
      CREATE RichEdit AS QRICHEDIT
       Left = 260
       Top = 5
       Height = 99
       TabOrder = 1
       Font.COLOR =clRed
       Text=PEdit.Text
      END CREATE
      CREATE RichEdit1 AS QRICHEDIT
       Left = 260
       Top = 210
       Height = 99
       TabOrder = 1
       Font.COLOR =clBlue
       Text=PEdit1.Text
      END CREATE

     END CREATE

'	RichEdit.Text=PEdit.Text''
'	RichEdit1.Text=PEdit1.Text

     Form.SHOWMODAL

     SUB FormOnShow

     END SUB

     SUB Button1Click (Sender.Tag)
      SELECT CASE LastFocused
      CASE PEdit.Tag
       PEdit.Clear
      CASE PEdit1.Tag
       PEdit1.Clear
      CASE ELSE
      END SELECT
     END SUB

     SUB Button2Click (Sender.Tag)
'CONST ecNormal = 0       '-- Text of the edit box displays in mixed case
'CONST ecUpperCase = 1    '-- Text of the edit box displays in uppercase
'CONST ecLowerCase = 2    '-- Text of the edit box displays in lowercase
      SELECT CASE LastFocused
      CASE PEdit.Tag
       Button2.CAPTION = "CharCase Edit0"
	 'print "PEdit.CharCase=",PEdit.CharCase
       IF PEdit.CharCase=ecUpperCase THEN
        PEdit.CharCase=ecLowerCase
        PEdit.CAPTION="LowerCase"
       ELSEIF     PEdit.CharCase=ecLowerCase THEN
        PEdit.CharCase=ecNormal
        PEdit.CAPTION="Normal"
       ELSE
        PEdit.CharCase=ecUpperCase
        PEdit.CAPTION="UpperCase"
       END IF

      CASE PEdit1.Tag
       Button2.CAPTION = "CharCase Edit1"
	 'print "PEdit1.CharCase=",PEdit1.CharCase
       IF PEdit1.CharCase=ecUpperCase THEN
        PEdit1.CharCase=ecLowerCase
        PEdit1.CAPTION="LowerCase"
       ELSEIF     PEdit1.CharCase=ecLowerCase THEN
        PEdit1.CharCase=ecNormal
        PEdit1.CAPTION="Normal"
       ELSE
        PEdit1.CharCase=ecUpperCase
        PEdit1.CAPTION="UpperCase"
       END IF
      CASE ELSE
      END SELECT
     END SUB

     SUB GET (sender)
      Form.CAPTION = "Focused: " + sender.CAPTION'Text ''
      Sender.COLOR = &H00FFFF
      SELECT CASE sender.tag
      CASE PEdit.Tag
       Button1.CAPTION = "Clear Edit0"
       Button2.CAPTION = "CharCase Edit0"
      CASE PEdit1.Tag
       Button1.CAPTION = "Clear Edit1"
       Button2.CAPTION = "CharCase Edit1"
      CASE ELSE

      END SELECT

     END SUB

     SUB Lose (sender)
      Form.CAPTION = "Not Focused"
      Sender.COLOR = &HFFFFFF
      LastFocused=Sender.Tag
     END SUB

     SUB WndProc
      IF uMsg = &H100 THEN
       Form.CAPTION = "Key"
      END IF
     END SUB

     SUB EditChange (sender)
      SELECT CASE sender.tag
      CASE PEdit.Tag
       RichEdit.Text=PEdit.Text
       RichEdit.SelStart=PEdit.SelStart
       RichEdit.SelLength=PEdit.SelLength

      CASE PEdit1.Tag
       RichEdit1.Text=PEdit1.Text
       RichEdit1.SelStart=PEdit1.SelStart
       RichEdit1.SelLength=PEdit1.SelLength

      CASE ELSE

      END SELECT

     END SUB
掌柜推荐
 
 
 
 
 
 
 
 
 
 
 
 
© Fri 2025-5-9  Guidance Laboratory Inc.
Email:webmaster1g.yi.org Hits:0 Last modified:2013-06-19 07:48:04