Español
XProfEd - Opensource IDE

0.98b -> XPrfEditFindReplaceClass

 
Sicherlich ausbaufähig - aber mich persönlich stört lo muy si yo el ganzen Editor no mehr benutzen kann sólo porque el SuchenFenster en es, o. si yo sólo en uno einzigen Instanz suchen kann.

Nun puede ser z.B. Strg+F drücken, TEST eingeben & [enter] drücken, otra vez STRG+F drücken, BLUP eingeben, usw. usw..

Hiermit el problema es vom Tisch - tal vez una Anfang...
KompilierenMarcaSeparación
!
======================
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 necesario entonces folgende Los cambios:

El:
KompilierenMarcaSeparaciónmuss inkludiert voluntad.

El Proc Suchen muss ausgetausch voluntad:
KompilierenMarcaSeparación
!

Proc Suchen

    whileloop &XFRepl.MaxInstancesCount

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

            XFRepl.h#[&bucle]=new(XFRepl,&bucle)
            romper

        más

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

                XFRepl.h#[&bucle].show()
                romper

            endif

        endif

    wend

ENDPROC


Und en él Hauptschleife des Progammes muss encima:
KompilierenMarcaSeparación
TesteMenue(AktTab%)
esta Línea eingefügt voluntad:
KompilierenMarcaSeparación
Im Hauptprogramm muss entonces:
KompilierenMarcaSeparación
elseif @menuitem(401)

Suchen(Such#)
TabAktiv AktTab%
en
KompilierenMarcaSeparaciónersetzt voluntad.

Tal vez baut Roland sí algo como oder qué Ähnliches una.

Besonders el el Editor no blockiert es finde Yo muy praktisch!
 
26.09.2006  
 



Also testet ruhig veces STRG+F öfter nacheinander...

11 kB
Hochgeladen:26.09.2006
Ladeanzahl51
Descargar
 
26.09.2006  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

1.068 Views

Untitledvor 0 min.
RudiB.14.04.2020
rquindt31.03.2018

Themeninformationen

Dieses Thema ha 1 subscriber:

iF (2x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie