Guidance
指路人
g.yi.org
software / rapidq / examples / gui / Menu / menu history.bas

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

  
     $INCLUDE "RAPIDQ.INC"

'CONST clLBlue = &HFFaa00  '256
'CONST clDBlue = &H800000 '128
'CONST clDGreen = &H008000

'CONST clLRed = &H8080FF
'CONST clDRed = &H000080

'CONST clPurple = &HFF00FF
'CONST clDPurple =&h800080
'CONST clLMagenta = &HFF00FF


     DECLARE SUB HistChoose  (Sender AS QMENUITEM)
     DECLARE SUB ClearHistoryOnClick
     DECLARE   SUB ChangeDirectory
     DECLARE   SUB ChangeDirectory1
     DECLARE SUB AddClrString (AddString$, Clr,  Sender AS QRICHEDIT)

     DIM HistorI(9) AS QMENUITEM
     FOR i%=0 TO 8
      HistorI(i%).OnClick=HistChoose
     NEXT i%

     DEFINT InsIdx,ReplFlg:

     CREATE Form AS QFORM
      CAPTION = "RQ Search&Replace"
      Font.size=10
      windowstate=2
'-- --------------------------------------------------'

      CREATE MainMenu AS QMAINMENU

       CREATE History AS QMENUITEM '- ------------------------------'
        CAPTION = "History"
        CREATE ClearHistory AS QMENUITEM '- ------------------------------'
         CAPTION = "Clear History"
         OnClick=ClearHistoryOnClick
        END CREATE
        CREATE BreakItemCh1 AS QMENUITEM
         CAPTION = "-"
        END CREATE
       END CREATE
      END CREATE

      CREATE DirTree AS QDIRTREE
       Left = 150
       InitialDir = "c:\bas"
       Width =315
       Height =300
       OnChange =ChangeDirectory1
       TabOrder=1
       ShowHint=false
       font.COLOR=clDred

      END CREATE
      CREATE LogEdit AS QRICHEDIT
       Top = 320
       Left = 150
       Height = 300
       Width =615
       HideSelection = 0
       HideScrollBars=false
       ScrollBars=ssBoth
'color=clBlack
      END CREATE

      CREATE FilePanel AS QPANEL
       Left =470
       Width =300
       Height =300
       borderstyle= bvLowered
       BevelOuter=bvNone
       COLOR=&h887E56

       CREATE DirBox AS QEDIT '==== €šà¥ªâ®àšï
        Text = DirTree.Directory
        Left = 3
        Top = 5
        TabOrder = 2
        Width =FilePanel.Width-40

       END CREATE

       CREATE MaskBox AS QCOMBOBOX '==== ¬ áª 
        Text = "*.*"
        Left = 3
        Top = 30
        TabOrder = 2
        Width =FilePanel.Width-16
  ''              OnChange=check1
        AddItems "*.*","*.","*.*htm*", "*.txt" , "*.rtf"

       END CREATE

       CREATE FileListBox1 AS QFILELISTBOX 'FileListBox1.Directory
        Left = 3
        Top = 50
        Width =FilePanel.Width-16
        Height =FilePanel.Height-20
        Drive = "C"
        mask=MaskBox.Text'"*.*"
        TabOrder=3
        ShowIcons=true
        MultiSelect=True
       END CREATE
      END CREATE ' panel'

     END CREATE '- form'

     FOR i%=0 TO 8
      HistorI(i%).CAPTION= STR$(i%)+"----------"
      HistorI(i%).enabled=false
      IF HistorI(i%).CAPTION <> "" THEN   History.Insert (2, HistorI(i%)):
     NEXT i%


     Form.SHOWMODAL


     SUB HistChoose  (Sender AS QMENUITEM)
      FileListBox1.Directory=Sender.CAPTION
      DirBox.Text =Sender.CAPTION
     END SUB


     SUB ChangeDirectory1
      FileListBox1.Directory=DirTree.Directory
      DirBox.Text=DirTree.Directory
      FileListBox1.Mask=""
      FileListBox1.Mask=MaskBox.Text

      CALL AddClrString ("Directory ChangeD "+CURDIR$, clDGreen, LogEdit)

'-- save history --------------------'
      FOR i=0 TO 8
'- if already present - move top

       IF HistorI(i).CAPTION=CURDIR$  THEN

ReplFlg=1:
        History.DelItems HistorI(i)
        History.Insert (2, HistorI(i)):

        CALL AddClrString ("move top HistorI("+STR$(i)+").Caption= "+HistorI(i).CAPTION, clDGreen, LogEdit)
        CALL AddClrString ("", clDGreen, LogEdit)

        EXIT FOR'
       END IF

       ReplFlg=0
      NEXT

'- if not present'

      IF ReplFlg=0 THEN
'call AddClrString ("InsIdx= "+str$(InsIdx), clred, LogEdit)

       History.DelIndex(10)
       HistorI(InsIdx).CAPTION = CURDIR$:
       HistorI(InsIdx).enabled=true
       History.Insert (2, HistorI(InsIdx)):

       INC InsIdx:
       IF InsIdx > 8 THEN InsIdx=0
      ELSE
       ReplFlg=0

      END IF

      FOR i=0 TO 8
       CALL AddClrString ("HistorI("+STR$(i)+").Caption= "+HistorI(i).CAPTION, clDBlue, LogEdit)
      NEXT i

      CALL AddClrString ("new InsIdx= "+STR$(InsIdx), clred, LogEdit)


     END SUB


     SUB ClearHistoryOnClick
'call AddClrString ("ClearHistoryOnClick============== ", clred, LogEdit)
      InsIdx=0
      ReplFlg=0
      FOR i=0 TO 8
       History.DelIndex(2)
'call AddClrString ("History.DelIndex(2) "+str$(i), clred, LogEdit)
      NEXT

      FOR i%=0 TO 8
       HistorI(i%).CAPTION=STR$(i%)+ " empty"
'call AddClrString ("HistorI("+str$(i%)+").Caption= "+HistorI(i%).Caption, clBlack, LogEdit)
       HistorI(i%).enabled=false
       History.Insert (2, HistorI(i%)):
'call AddClrString ("History.Insert (2, HistorI(i%))= "+str$(i%), clred, LogEdit)
      NEXT i%

     END SUB

     SUB AddClrString (AddString$, Clr, Sender AS QRICHEDIT)
      Sender.SelStart =LEN (Sender.Text)
      Sender.SelLength =LEN(AddString$)
      Sender.SelAttributes.COLOR=Clr
      Sender.AddStrings AddString$
     END SUB

掌柜推荐
 
 
 
 
 
 
 
 
 
 
 
 
© Fri 2026-6-19  Guidance Laboratory Inc.
Email:webmaster1g.yi.org Hits:0 Last modified:2003-07-26 08:16:16