Deutsch
Forum

Erledigt: md5 und Autotext

 
- Seite 1 -



Michael
Punkt
Hallo Zusammen,

hätte da nochmal zwei Fragen:

1.) Ich habe eine mySQL-DB auf meinem Linux-Server und dort sind Benutzerpasswörter md5-verschlüsselt. Mit Xprofan kann ich zwar ver- und entschlüsseln, aber md5 beherrscht Xprofan nicht.
Ich möchte auch nur ungern die Tabelle umstellen, da die md5-verschlüsselten Daten auch weiterhin mit der Browserversion als PHP-Script verglichen werden sollen.

Im Forum habe ich was von einer Unit gelesen die auf den Namen md5.pcu (?) hört.
Leider scheint diese Unit nicht mehr zu existieren, denn ich erhalte statt einer Downloadmöglichkeit nur eine leere Seite (Template der HP von xprofan.com ist zwar zu sehen, aber mehr auch nicht.)
Gibts das nicht mehr? Falls doch, wo könnte ich die herbekommen?

2.) Autotext ... ist vielleicht nicht die ganz korrekte Bezeichnung, aber ich meine damit das, was beispielsweise mein Firefox mit Eingabefeldern macht. Sprich, habe ich irgendwann mal das Wort "Auto" in dem Eingabefeld eingetragen und ich tippe nur den Buchstaben "A", erscheint "Auto" als Auswahlmöglichkeit,

Ist das möglich, so etwas auch mit Xprofan zu realisieren, oder ist das FF, bzw. nur Brwoserspezifisch möglich?
Leider habe ich keine Antworten im Forum oder in der Hilfedatei gefunden.

Nutze zur Zeit nur das "nackte" Xprofan. XPSE folgt in der nächsten Zeit.

Viele Grüße,
Michael
 
XProfan 11, Windows XP (2GB RAM), XProfEd
08.08.2009  
 



 
- Seite 2 -



Jörg
Sellmeyer
Das müßte Dir weiterhelfen:
KompilierenMarkierenSeparieren
 $H messages.ph
Cls
Def CBN_EDITCHANGE(1) If(%message=$0111,((&lparam = &(1)) & (HiWord(&wparam) = 5)),0)
Def CB_GetSelStart(1) LoWord(SendMessage(&(1),~CB_GETEDITSEL,0,0))
Declare Edit&,Liste&,n%
Edit& = Create("ChoiceBox",%hwnd,3,300,10,200,240)
Liste& = Create("List",1)
AddString(Edit&,"abcdefg")
AddString(Edit&,"ffafff")
AddString(Edit&,"fdafff")
AddString(Edit&,"test")
AddString(Edit&,"hurra")
AddString(Edit&,"auch ein längerer Text geht")
SetFocus(Edit&)

While 1

    WaitInput

    If CBN_EDITCHANGE(Edit&)

        SendMessage(Edit&,~CB_SHOWDROPDOWN,1,0)wenn man das wegläßt, hats auch was
        n% = CB_GetSelStart(Edit&)
        SelectString(Edit&,-1,GetText$(Edit&))
        SendMessage(Edit&,~CB_SETEDITSEL,0,MakeLong(n%,-1))

    EndIf

Wend

 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
14.08.2009  
 




Andreas
Miethe


oder das
KompilierenMarkierenSeparieren
###############################
XProfan 11.2 Grundgerüst
###############################
###############################
Imports
###############################
###############################
###############################
Header-Dateien
 $H windows.ph
 $H Messages.ph
###############################
###############################
Definitionen
###############################
DEF &TRUE 1
DEF &FALSE 0
###############################
###############################
Strukturen
###############################
###############################
###############################
Globale Variablen
###############################
Var WindowWidth&  = %maxx/3*2
Var WindowHeight& = %maxy/3*2
Var WindowTitle$  = "Grundgerüst"
Var LenTextSave& = 0
###############################
###############################
Fenster zunächst unsichtbar erstellen
WindowTitle WindowTitle$
windowStyle $250
Window 0,0-0,0
Useicon "A"
CLS ~GetSysColor(~COLOR_BTNFACE)
SetDialogFont ~GetStockObject(~ANSI_VAR_FONT)
###############################
Fenster-Aufbau
###############################
Var Choice& = Create("ChoiceBox", %hwnd, 3,10,10,200,400)
AddString(Choice&,"Autocomplete")
AddString(Choice&,"XProfan")
AddString(Choice&,"Besucher")
AddString(Choice&,"Gast")
AddString(Choice&,"Profan")
AddString(Choice&,"ProfanFans")
AddString(Choice&,"SendMessage")
AddString(Choice&,"PostMessage")
AddString(Choice&,"Montag")
AddString(Choice&,"Dienstag")
AddString(Choice&,"Mittwoch")
AddString(Choice&,"Donnerstag")
AddString(Choice&,"Freitag")
AddString(Choice&,"Samstag")
AddString(Choice&,"Sonntag")
###############################
SubClassing einschalten
###############################
SubClass %HWnd, 1
###############################
Style defineren und anzeigen
###############################
SetStyle %hwnd,0,$14CF2000
~SetClassLong(%hwnd,~GCL_STYLE,(~GetClassLong(%hwnd,~GCL_STYLE)- ~CS_HREDRAW - ~CS_VREDRAW))
~Movewindow(%hwnd,%maxx/2-WindowWidth&/2,%maxy/2-WindowHeight&/2,WindowWidth&,WindowHeight&,&TRUE)
###############################
Hautpschleife
#############
Var Ende& = 0

Whilenot Ende&

    Waitinput

    If %key = 2

        OnEnd()

    Endif

EndWhile

SubClassing-Procedur
###############################

SubClassProc

    If SubClassMessage(%hWnd, ~WM_COMMAND)

        If HiWord(&swParam) = ~CBN_EDITCHANGEdas Edit-Control der Combobox ist geändert worden

            Var Combotext$ = Upper$(GetText$(&slParam))
            Var Textlen& = Len(Combotext$)
            Var MaxItem& = GetCount(Choice&)-1
            Var hComboEdit& = ~ChildWindowFromPoint(&slParam, 5,5)Edit-Control ermitteln um den Cursor zu setzen

            If TextLen& <= LenTextSave&

                LenTextSave& = TextLen&

            else

                If Textlen& > 1Reaktion erst wenn 2 Zeichen einegeben sind

                    Whileloop 0,MaxItem&

                        If ComboText$ =  Upper$(Left$(Getstring$(&slParam,&Loop),TextLen&))

                            SelectString(&slParam,-1,Combotext$)
                            SendMessage(hComboEdit&, ~EM_SETSEL, TextLen&, -1)Cursor im Edfit setzen
                            LenTextSave& = TextLen&
                            Break

                        EndIf

                    EndWhile

                Endif

            Endif

        Endif

    Endif

EndProc

###############################
Ende-Procedur
###############################

Proc OnEnd

    Ende& = 1

EndProc

###############################
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
14.08.2009  
 



Juhu!

Frabbing, Beitrag=53771, Zeitpunkt=08.08.2009

Frabbing, Beitrag=53771, Zeitpunkt=08.08.2009
Zu 2: Das ist imho eine Choicebox mit besonderem Stil, den ich aber leider nicht auswendig kenne.

Dann nimm dir einfach mal die Zeit und schlag nach und präsentiere deinen Style. Daran wäre ich auch interessiert, glaube aber nicht an seine Existenz...


 
14.08.2009  
 




Dieter
Zornow
Ja beide Codes funktionieren ohne, dass die Choicebox einen besonderen Style bekommt. Bei Jörgs Code der schön einfach ist verschwindet aber bei mir der Cursor nach außerhalb des Fensters und kommt erst wieder zurück wenn die Choicebox wieder geschlossen ist, das ist unschön.

bei Andreas Code ist mir unklar warum der Windowstyle erst auf $250, das heißt ohne Titelleiste gesetzt wird und dann unten wieder auf mit Titelleiste gesetzt wird. Wenn ich oben gleich z.B. Windowstyle 63 wähle gehts doch genau so gut. Könnte mich mal jemand aufklären.
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
14.08.2009  
 




Andreas
Miethe


Hallo Dieter,

der Haupt-Code ist ein Template das immer geladen wird, wenn ich per rechter Maustaste mit "Neu" ein neues PRF-Dokument anlege. Sinn davon ist ( Fensterstyle ), dass das Fenster zuerst unsichtbar angelegt wird, dann werden die Fensterelement angelegt und erst wenn alles fertig ist, wird das Fenster angezeigt.
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
14.08.2009  
 




Dieter
Zornow
Hallo Andreas,

ja das leuchtet mir ein, ich hatte mich nur gewundert weil es für dieses Snippet nicht notwendig ist. Wenn das aber dein Template für alle deine Programme ist ist das natürlich verständlich, da sonst die Titelleiste zu sehen wäre.

Danke für die Aufklärung.

Gruß

Dieter
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
14.08.2009  
 




Frank
Abbing
iF, Beitrag=53862, Zeitpunkt=14.08.2009
Juhu!

Frabbing, Beitrag=53771, Zeitpunkt=08.08.2009

iF, Beitrag=53862, Zeitpunkt=14.08.2009
Zu 2: Das ist imho eine Choicebox mit besonderem Stil, den ich aber leider nicht auswendig kenne.

Dann nimm dir einfach mal die Zeit und schlag nach und präsentiere deinen Style. Daran wäre ich auch interessiert, glaube aber nicht an seine Existenz...




Kein Style, Subclassing...

Aber schön kompakt, die Listbox integriert. Sieht gut aus, Andreas!
Für sehr viele Einträge empfielt sich dann vielleicht besser eine externe Listbox.
 
14.08.2009  
 




Michael
Punkt
Da sind ja dann doch ein paar Zeilen mehr notwendig als mein kläglicher Versuch.

Habe beide Beispiele ausprobiert und das von Adreas ist wirklich Super.
Das andere von Jörg ist zwar schön kompakt, doch auch mich stört, dass der Mauspfeil veschwindet und erst wiederkommt, wenn das Pulldown weg ist.
Und noch einen kleinen Haken hat es. Ich kann kein Wort verwenden/eintippen, was nicht in der Addstring hinterlegt ist. Aber trotzdem Danke. Für einen anderen Bereich kann ich das auch gut verwenden.

Auch wenn ich einiges noch nicht verstehe (gerade was den API-Teil und die SendMessages betrifft), so ist das ein guter Code zum lernen.

Ich habe Andreas Quellcode nun auch modifiziert um eine ini-Datei zu verwenden um neue eingegebene Worte speichern zu können, so fern sie noch nicht in der Liste vorhanden sind.
ich habe hierfür zwei Funktionen gebaut. Eine zum einlesen, eine zum schreiben der ini-Datei.

Leider bin ich nun aber an einem Punkt angelangt, an dem ich nicht mehr weiterkomme um das Ganze zu perfektionieren.
Es geht um das Entfernen eines Eintrags mittels der "ENTF"-Taste.

Die Abfrage mit @IsKey(~VK_DELETE) funktioniert bei mir nur, wenn das Pulldown nicht zu sehen ist und dann braucht es ja nicht zu funktionieren.

Wie erreiche ich, das bei geöffnetem Pulldown-Menue und einem ausgewählten Menuepunkt der entsprechende Eintrag gelöscht wird?
Hierzu ist ganz sicher wieder ein SendMessage notwendig, oder?

Ich hatte es mit @GetState und @GetCount versucht, aber bei beidem kam die Fehlermeldung, das ich das für diesen Typ nicht verwenden könnte.

Hier mal der erweiterte vollständige Quellcode:
KompilierenMarkierenSeparieren
###############################
XProfan 11.2 Grundgerüst
###############################
###############################
Imports
###############################
###############################
###############################
Header-Dateien
 $H windows.ph
 $H Messages.ph
###############################
###############################
Definitionen
###############################
DEF &TRUE 1
DEF &FALSE 0
###############################
###############################
Strukturen
###############################
###############################
###############################
Globale Variablen
###############################
Var WindowWidth&  = %maxx/3*2
Var WindowHeight& = %maxy/3*2
Var WindowTitle$  = "Grundgerüst"
Var LenTextSave& = 0
Declare intern_AddString$
###############################
###############################
Fenster zunächst unsichtbar erstellen
WindowTitle WindowTitle$
windowStyle $250
Window 0,0-0,0
Useicon "A"
CLS ~GetSysColor(~COLOR_BTNFACE)
SetDialogFont ~GetStockObject(~ANSI_VAR_FONT)
###############################
Fenster-Aufbau
###############################
Var Choice& = Create("ChoiceBox", %hwnd, 3,10,10,200,400)
myCBox_Readlist(Choice&, "Combo1", "")
var button_ok&   = Create("Button",%hwnd,"Ok",3,80,100,25)
###############################
SubClassing einschalten
###############################
SubClass %HWnd, 1
###############################
Style defineren und anzeigen
###############################
SetStyle %hwnd,0,$14CF2000
~SetClassLong(%hwnd,~GCL_STYLE,(~GetClassLong(%hwnd,~GCL_STYLE)- ~CS_HREDRAW - ~CS_VREDRAW))
~Movewindow(%hwnd,%maxx/2-WindowWidth&/2,%maxy/2-WindowHeight&/2,WindowWidth&,WindowHeight&,&TRUE)
###############################
Hautpschleife
#############
Var Ende& = 0

Whilenot Ende&

    Waitinput

    If @GetFocus(button_ok&)

        if (@GetText$(Choice&) <> "")

            myCBox_Writelist("Combo1", intern_AddString$, @GetText$(Choice&))
            myCBox_Readlist(Choice&, "Combo1", @GetText$(Choice&))

        endif

    EndIf

    If @IsKey(~VK_DELETE) AND .... und hier verließen sie ihn

        myCBox_DelEntryList

    endif

    If %key = 2

        OnEnd()

    Endif

EndWhile

SubClassing-Procedur
###############################

SubClassProc

    If SubClassMessage(%hWnd, ~WM_COMMAND)

        If HiWord(&swParam) = ~CBN_EDITCHANGEdas Edit-Control der Combobox ist geändert worden

            Var Combotext$ = Upper$(GetText$(&slParam))
            Var Textlen& = Len(Combotext$)
            Var MaxItem& = GetCount(Choice&)-1
            Var hComboEdit& = ~ChildWindowFromPoint(&slParam, 5,5)Edit-Control ermitteln um den Cursor zu setzen

            If TextLen& <= LenTextSave&

                LenTextSave& = TextLen&

            else

                If Textlen& > 1Reaktion erst wenn 2 Zeichen einegeben sind

                    Whileloop 0,MaxItem&

                        If ComboText$ =  Upper$(Left$(Getstring$(&slParam,&Loop),TextLen&))

                            SelectString(&slParam,-1,Combotext$)
                            SendMessage(hComboEdit&, ~EM_SETSEL, TextLen&, -1)Cursor im Edfit setzen
                            LenTextSave& = TextLen&
                            Break

                        EndIf

                    EndWhile

                Endif

            Endif

        Endif

    Endif

EndProc

###############################
Ende-Procedur
###############################

Proc OnEnd

    Ende& = 1

EndProc

###############################

Proc myCBox_Readlist

    Parameters CBox$, CBox_Name$, PreSelect$
    Declare position$, x%, AList$
    x%=1
    AList$ = Readini$("D:Comboboxen.dat","Combobox",CBox_Name$)
    intern_AddString$ = AList$
    ClearList CBox$

    while 1

        position$ = @SUBSTR$(AList$,x%,",")

        if (position$ <> "")

            @AddString(CBox$,position$)

        endif

        inc x%
        case position$ = "": Break

    endwhile

    if (PreSelect$ <> "")

        @SelectString(CBox$,-1,PreSelect$)

    endif

    clear position$
    clear AList$

EndProc

Proc myCBox_Writelist

    Parameters CBox_Name$, AList$, newValue$
    Declare position$, x%, duplicate$
    x%=1

    while 1

        position$ = @SUBSTR$(AList$,x%,",")

        if (position$ = newValue$)

            duplicate$ = 1
            break

        endif

        inc x%
        case position$ = "": Break

    endwhile

    if (duplicate$ = 0)

        AList$ = AList$ + "," + newValue$
        writeini "D:Comboboxen.dat","Combobox",CBox_Name$ = AList$

    endif

EndProc

Proc myCBox_DelEntryList

EndProc

 
XProfan 11, Windows XP (2GB RAM), XProfEd
15.08.2009  
 




Dieter
Zornow
Versuche es mal mit "DeleteString(N1,N2)"
Mit Getcursel kannst du die Nummer des markierten Eintrages ermitteln.
In der Profanhilfe unter "Auswahlboxen" findest du alles
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
15.08.2009  
 




Frank
Abbing

Ich kann kein Wort verwenden/eintippen, was nicht in der Addstring hinterlegt ist. Aber trotzdem Danke.


Schau, genau dafür kannst du dann eine unsichtbare Listbox verwenden, in der deine Wörter stehen!
 
15.08.2009  
 



 
- Seite 3 -



Michael
Punkt
GETCURSEL habe ich irgendwie übersehen auf der Hilfeseite der Auswahlboxen.
Damit bekomme ich die richtige Nummer, nur ... wie schaffe ich es, dass die ENTF-Taste im geöffneten Pulldown abgefragt wird?
Solange das Pulldown-Menue offen ist, reagiert er nicht.
Ich hatte es in der while-Hauptschleife mit einem
KompilierenMarkierenSeparieren
If (@IsKey(~VK_DELETE)) AND (@GetCurSel(Choice&) <> "-1")


probiert, aber das funktioniert nicht.
Vermute ich richtig, dass das angezeigte Dropdown wohl auch eine Art eigenes Fenster ist und eine Abfrage an dieser Stelle gar nicht funktionieren kann?

Herausgefunden habe ich schon, dass ich mit einem CB_GETDROPPEDSTATE wohl abfragen kann, ob ein Dropdown auf oder zu ist:
KompilierenMarkierenSeparieren
If SubClassMessage(%hWnd, ~WM_COMMAND)

    var State& = SendMessage(Choice&, ~CB_GETDROPPEDSTATE, 0, 0)

    If (State& = 1)

        print "Die ComboBox ist offen"

    EndIf

Endif


Aber wie erreiche ich es, den fokusierten Eintrag nun mit ENTF-Taste anzusprechen (s. Screenshot)?

12 kB
Hochgeladen:16.08.2009
Ladeanzahl53
Herunterladen
 
XProfan 11, Windows XP (2GB RAM), XProfEd
16.08.2009  
 



Michael Punkt
dass die ENTF-Taste im geöffneten Pulldown abgefragt wird


Ich würd einfach schonmal schauen, ob z.B. wm_keydown als Nachricht in der SubClassProc landet. Das geht bestimmt auch besser, aber vielleicht ein Anfang.

[offtopic]
Dieter Zornow, Beitrag=53863, Zeitpunkt=14.08.2009
Ja beide Codes funktionieren ohne, dass die Choicebox einen besonderen Style bekommt.


Frabbing, Beitrag=53867, Zeitpunkt=14.08.2009
Kein Style, Subclassing...


Beide Codes nutzen SubClassing. (macht ihr das irgendwelchen Befehlen fest?)

Einmal über die SubClassProc und einmal über Abarbeitung der Nachrichten, die WaitInput zum Verlassen veranlassen.

Styles ändern z.B. Darstellung und/oder Verhalten von Controls, beispielsweise ändern ReadOnly-Styles selten was an der Darstellung und nur am Verhalten, wobei Disabled-Styles meist doppelt zuschlagen.
KompilierenMarkierenSeparieren[/offtopic]
 
16.08.2009  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

8.682 Betrachtungen

Unbenanntvor 0 min.
Member 361000504.08.2022
Sven Bader10.09.2021
Walter10.05.2021
Thomas Zielinski01.04.2021
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie