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 -



Michael
Punkt
So, melde mich nach Zwangsabstinenz (Blitzeinschlag in unmittelbarer Nähe mit verhehrenden Folgen für diverse Elektrogeräte ) mit Notequippment wieder zurück.


Ist es nicht so das die Datenbank die Verschlüsselung selbst übernimmt??!?


Nein, so weit ich weiß, kann mySQL nicht selbst verschlüsseln. Das muss man unter PHP mit md5() selbst vornehmen und dann den gehashten Wert in der Tabelle speichern/vergleichen.


Also dieses Control, mal unabhängig von Assembler und Profan2CPP, kann man aber wirklich auch einfach mit XProfan programmieren - ich sehe da gar kein Problem und biete gerne an, wenn ich wieder im Lande bin (spätestens Wochenende wie es aussieht) das herzustellen auch weil jeder andere und ich das bestimmt gut und oft gebrauchen können. Dann gibts ne Include und "schön ist".


Das wäre natürlich Super, denn wenn Du schreibst, dass Du dafür ne ganze Include baust, weiß ich, dass ich wohl einiges vergessen/falsch habe.

So habe ich das letzt aufgebaut, was aber nicht funktioniert.

Ich habe ein Dialogfenster erstellt und eine Combobox mit dem Attribut für CBS_HASSTRINGS:
KompilierenMarkierenSeparieren
hD% = @Create("Window",%hWnd,"Login",0,0,400,200)
feld_login% = @Control("COMBOBOX", "Test", $50000200, 5, 5, 245, 20, hD%, 0, %hInstance)

Bei der Abfrage des Buttons habe ich folgendes gemacht:
KompilierenMarkierenSeparieren
If @GetFocus(button_login&)

    SendMessage(feld_login%, $0143 , 0, @GetText$(feld_login%))

Das Ergebnis ist, das gar nichts passiert.
Entweder fehlt jetzt hier noch was (jetzt noch schreiben in eine Listbox? Aber wie?), oder bin ich total auf dem Holzweg?
Ich vermute mal stark, beides.
 
XProfan 11, Windows XP (2GB RAM), XProfEd
14.08.2009  
 



Wenn ich mich nicht irre, wird nach jeden Tastenanschlag im Eingabefeld und nach jeden Mausklick ins Eingabefeld darunter eine Liste angezeigt mit per Pfeiltasten und Maus anwählbaren Einträgen die auf die bisherige Eingabe passen.

Also müssen Klick+Taste aufs/im Eingabefeld ja abgefragt werden um eine darunterliegende Liste (oder man nimmt editierbare Choicebox die ja bereits ne Liste unten dran zu bammeln hat) zu befüllen. Bei Klick oder Tastaturauswahl in der Liste wiederum muss das Eingabefeld mit dem Eintrag befüllt werden.

Um das (alles) zu managen sind imho also mindestens Methoden wie:

+ Control erzeugen
+ in Frage kommende Einträge zuweisen / entfernen
+ Control abragen (z.B. in subClassProc)
+ Control entfernen

notwendig - also ein paar Funktionen die dann eben z.B. in einer Include aufgehoben sein sollten.

Vielleicht kennt Andreas Miethe noch eine einfachere Methode - vlt. gibt es solch Control bereits etwas fertiger.

 
14.08.2009  
 




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  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

8.703 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