Français
XProfEd - Opensource IDE

0.98b -> XPrfEditFindReplaceClass

 
Sicherlich ausbaufähig - mais mich personnelle stört es très si Je l' ganzen Editor pas plus benutzen peux seulement weil cela SuchenFenster sur ist, bzw. si je seulement dans einer einzigen Instanz chercher peux.

eh bien peux on z.B. Strg+F drücken, TEST eingeben & [enter] drücken, wieder STRG+F drücken, BLUP eingeben, usw. usw..

Hiermit ist cela Problem vom Tisch - peut-être un Anfang...
KompilierenMarqueSéparation
!
======================
IFFindReplace-Klasse
======================
XPrfEditFindReplaceClass.prf
DEF &XFRepl.MaxInstancesCount 5
Class XFRepl = 	+XFRepl@,
+exit@,
-hide@,
-show@,
-checkActivity@,
+dlg&,
-bClose&,
-bWeit&,
+cCase&,
+cWord&,
-cVor&,
+cZur&,
+eSuch&,
-eFlag&,
-Id&,
-instance&,
+isVisible&
Declare		XFRepl.Dlg.Width&,
XFRepl.Dlg.Height&,
XFRepl.h#[&XFRepl.MaxInstancesCount]

Proc XFRepl.XFRepl

    parameters instance&
    XFRepl.Dlg.Width&=364
    XFRepl.Dlg.Height&=110+%cycaption
    .instance&=instance&
    .DLG& = CREATE("DIALOG",%HWND,"Suchen nach",%maxx,%maxy,640,480)
    showwindow(.DLG&,0)
    CREATE("TEXT",.DLG&,"&Suchen nach:",15,12,70,20)
    .eSuch& = CREATE("EDIT",     .DLG&,"", 88, 12, 170, 20)
    .bWeit& = CREATE("DEFBUTTON",   .DLG&, "&Weitersuchen",  268, 11, 80, 22)
    .cCase& = CREATE("CHECKBOX", .DLG&,"&Groß-/Kleinschreibung",  15, 50, 150, 20)
    .cWord& = CREATE("CHECKBOX", .DLG&,"&Nur ganzes Wort suchen", 15, 75, 150, 20)
    CREATE("GROUPBOX", .DLG&, "Such&richtung", 170, 40, 90, 60)
    .cZur&  = CREATE("RADIOBUTTON", .DLG&, "nach &oben",  175, 55, 80, 20)
    .cVor&  = CREATE("RADIOBUTTON", .DLG&, "nach &unten", 175, 75, 80, 20)
    .bEsc&  = CREATE("BUTTON",   .DLG&, "&Abbruch",       268, 38, 80, 22)
    .bClose&= CREATE("BUTTON",.DLG&, "&Schliessen",            268, 78, 80, 22)
    .show()

endproc

proc XFRepl.Show

    declare y&
    y&=(%wintop+(XFRepl.Dlg.Height&+20)*.instance&)
    case (y&>%winbottom-100) : y&=%winbottom-100
    setwindowpos .dlg&=(%winright-50-XFRepl.Dlg.Width&),y& - XFRepl.Dlg.Width&,XFRepl.Dlg.Height&
    SetCheck .cVor&, 1
    SetCheck .cCase&,0
    SetCheck .cWord&,0
    SetText .eSuch&,""
    showwindow(.dlg&,1)
    setfocus(.eSuch&)
    SendMessage(.eSuch&,~em_SetSel,0,-1)
    .isVisible&=1

endproc

proc XFRepl.Hide

    showwindow(.dlg&,0)
    setactivewindow(%hwnd)
    .isVisible&=0

endproc

proc XFRepl.checkActivities

    whileloop &XFRepl.MaxInstancesCount

        if Typeof(XFRepl.h#[&loop])="o"

            if (XFRepl.h#[&loop].isVisible&)

                select XFRepl.h#[&loop].checkActivity()

                    caseof 1

                    If Edit#[AktTab%].Search(gettext$(XFRepl.h#[&loop].eSuch&),getcheck(XFRepl.h#[&loop].cWord&), getcheck(XFRepl.h#[&loop].cCase&), GetCheck(XFRepl.h#[&loop].cZur&)) = -1

                        Messagebox("q" + gettext$(XFRepl.h#[&loop].eSuch&) + "q nicht gefunden!","Information",64)
                        setactivewindow(XFRepl.h#[&loop].dlg&)
                        setfocus(XFRepl.h#[&loop].eSuch&)
                        SendMessage(XFRepl.h#[&loop].eSuch&,~em_SetSel,0,-1)

                    endif

                    otherwise

                endselect

            endif

        endif

    wend

endproc

proc XFRepl.checkActivity

    casenot getactivewindow()=.dlg& : return

    if %key=2

        .hide()
        setmenuitem 0

        whileloop &XFRepl.MaxInstancesCount,1,-1

            if Typeof(XFRepl.h#[&loop])="o"

                if (XFRepl.h#[&loop].isVisible&)

                    setactivewindow(XFRepl.h#[&loop].dlg&)
                    setfocus(XFRepl.h#[&loop].eSuch&)
                    SendMessage(XFRepl.h#[&loop].eSuch&,~em_SetSel,0,-1)
                    break

                endif

            endif

        wend

        return 0

    elseif Clicked(.bClose&) or Clicked(.bWeit&) or (%KEY = 13)

        if Clicked(.bClose&)

            .hide()
            setmenuitem 0

            whileloop &XFRepl.MaxInstancesCount,1,-1

                if Typeof(XFRepl.h#[&loop])="o"

                    if (XFRepl.h#[&loop].isVisible&)

                        setactivewindow(XFRepl.h#[&loop].dlg&)
                        setfocus(XFRepl.h#[&loop].eSuch&)
                        SendMessage(XFRepl.h#[&loop].eSuch&,~em_SetSel,0,-1)
                        break

                    endif

                endif

            wend

            return 0

        endif

        if %key=13

            setfocus(.eSuch&)
            SendMessage(.eSuch&,~em_SetSel,0,-1)

        endif

        .eflag&=0

        if GetText$(.eSuch&)>""

            return 1

        endif

    endif

endproc

Proc XFRepl.exit

    destroywindow(.bClose&)
    destroywindow(.bEsc&)
    destroywindow(.bWeit&)
    destroywindow(.cCase&)
    destroywindow(.cWord&)
    destroywindow(.cVor&)
    destroywindow(.cZur&)
    destroywindow(.eSuch&)
    destroywindow(.dlg&)

endproc


Im Hauptprogramm doit ensuite folgende Changements:

qui:
KompilierenMarqueSéparationmuss inkludiert volonté.

qui Proc chercher muss ausgetausch volonté:
KompilierenMarqueSéparation
!

Proc chercher

    whileloop &XFRepl.MaxInstancesCount

        ifnot Typeof(XFRepl.h#[&loop])="o"

            XFRepl.h#[&loop]=new(XFRepl,&loop)
            pause

        d'autre

            ifnot (XFRepl.h#[&loop].isVisible&)

                XFRepl.h#[&loop].show()
                pause

            endif

        endif

    Wend

ENDPROC


et dans il Hauptschleife des Progammes muss sur:
KompilierenMarqueSéparation
TesteMenue(AktTab%)
cet la ligne eingefügt volonté:
KompilierenMarqueSéparation
Im Hauptprogramm muss ensuite encore:
KompilierenMarqueSéparation
elseif @menuitem(401)

chercher(Such#)
TabAktiv AktTab%
dans
KompilierenMarqueSéparationersetzt volonté.

peut-être baut Roland oui quelque chose comme ou bien quoi Ähnliches un.

Besonders cela qui Editor pas blockiert ist finde je très pratique!
 
26.09.2006  
 



alors testet calme la fois STRG+F öfter nacheinander...

11 kB
Hochgeladen:26.09.2006
Downloadcounter51
Download
 
26.09.2006  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

1.069 Views

Untitledvor 0 min.
RudiB.14.04.2020
rquindt31.03.2018

Themeninformationen

cet Thema hat 1 participant:

iF (2x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie