Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 249654 (11090)

| Suchen
| Zurück zur Übersicht

Autor | Thema: setwindowpos
Rolf Koch
| Datum:05.06.01 00:34 (webmaster@rokosoft.de) |
Hmm Roland? Ich habe Sascha den Tip mit Setwindowpos gegeben. Tja, aber irgendwie kommt mir die Sache spanisch vor:
    declare testbutton&
    cls
    'Loadbmp "C:\WINDOWS\SETUP.BMP";0
    testbutton&=@createbutton(%hwnd,"TEST",10,10,100,18)

    proc test
    'Loadbmp "C:\WINDOWS\SETUP.BMP";0
    SetWindowPos testbutton&= 10,10,100,18;-1
    endproc

    while 1
    waitinput
    test
    wend
Laut der Hilfe ist setwindowpos auf jedes bekannte Handling und Windowsobjekt anwendbar und -1 holt es in den Vordergrund und immer sichtbar. Aber: Siehe meinen einfachen Code hier. Hab getestet, Objekt verschwindet ins Nirwana? Deswegen habe ich Loadbmp auch mal auskommentiert? Bug oder Blödheit (das bekannte Kabel worauf man steht :) )???? An Sascha: So hatte ich mir das eigentlich gedacht. Wäre auch logisch ;) Rolf
Roland G. Hülsmann
| Datum:05.06.01 01:05 (rgh-soft@t-online.de) |
>> SetWindowPos testbutton&= 10,10,100,18;-1 Hallo Rolf, da es shon spät ist komme ich nicht mehr zum Testen, aber ein erster Hinweis: Zwischen dem 2. und 3. Parameter sollte ein "-" stehen: SetWindowPos testbutton&= 10,10-100,18;-1 Roland
Roland G. Hülsmann
| Datum:05.06.01 01:08 (rgh-soft@t-online.de) |
Ach ja: In einigen Fällen wirkt hinter SetWindowPos ein REPAINT wahre Wunder. (SetWindowPos bewirkt nicht immer automatisch ein Neuzeichnen des Objektes.) Gute Nacht! Roland
Rolf Koch
| Datum:05.06.01 01:12 (webmaster@rokosoft.de) |
JAAA, stimmt: Hier nun für Sascha:
    declare testbutton&
    cls
    Loadbmp "C:\WINDOWS\SETUP.BMP";0
    testbutton&=@createbutton(%hwnd,"TEST",10,10,100,18)

    proc test
    Loadbmp "C:\WINDOWS\SETUP.BMP";0
    SetWindowPos testbutton&= 10,10-100,18;1
    Repaint
    endproc

    while 1
    waitinput
    test
    wend
und so hatte ich das gemeint!
Rolf Koch
| Datum:05.06.01 01:09 (webmaster@rokosoft.de) |
Hui stimmt Roland Tipfehler, jedoch wird es bei vorhandenem Bitmap nicht in den Vordergrund geholt. Was könnte Sascha denn machen?
Rolf Koch
| Datum:05.06.01 01:27 (webmaster@rokosoft.de) |
So jetzt habe ich auch mal wieder was gelernt. Setwinpos ist also sowieso überflüssig. Und hiermit bekommst Du es auch hin ohne irgendwelche Objekte neuzuzeichnen, hervorzuheben u.s.w. :) (Man lernt nie aus)
    declare testbutton&
    cls
    Loadbmp "C:\WINDOWS\SETUP.BMP";0
    testbutton&=@createbutton(%hwnd,"TEST",10,10,100,18)

    proc test
    'Hier wird einfach die Grafik neu gemalt
    Loadbmp "C:\WINDOWS\SETUP.BMP";0
    Repaint	'das hatte Roland gemeint
            'und schon ist das Button sichtbar
            'lass Repaint weg und auch der Button ist weg.
    endproc

    while 1
    waitinput
    test
    wend
Sascha
| Datum:05.06.01 09:36 (sascha@willecke-net.de) |
Hallo Rolf, vielen Dank! Werde es möglichst bald ausprobieren! Gruß Sascha http://www.profan.willecke-net.de
Sascha
| Datum: 05.06.01 12:14 (sascha@willlecke-net.de) |
Hallo, ich habe jetzt folgenden Quellcode! --------- proc login_user declare dialog%,beenden%,ende3%,neu%,login% let dialog%=@Create("Window",%hwnd,"Login_User",%winleft+75,%wintop,150,200) startpaint dialog% cls @rgb(255,255,255) usebrush 0,0 UsePen 0,1,rgb(0,0,0) rectangle 0,0-150,200 usefont "ARIAL",13,0,1,0,0 textcolor @rgb(0,0,0),-1 drawtext 15,5,"Ultim@te Online-Counter" drawtext 25,15,"Benutzer-Verwaltung" drawtext 22,30,"" drawtext 25,50,"Neuen User erstellen" drawtext 65,60,"oder" drawtext 15,70,"mit bereits vorhandenen" drawtext 25,80,"User weiter machen?" endpaint let neu%=@create("button",dialog%,"Neuen User",25,125,100,20) let login%=@create("button",dialog%,"weiter",25,150,100,20) let beenden%=@create("button",dialog%,"Beenden",25,175,100,20) setfont neu%,schrift% setfont login%,schrift% setfont beenden%,schrift% setautopaint 1 whilenot ende3% if %wmpaint startpaint dialog% cls @rgb(255,255,255) usebrush 0,0 UsePen 0,1,rgb(0,0,0) rectangle 0,0-150,200 usefont "ARIAL",13,0,1,0,0 textcolor @rgb(0,0,0),-1 drawtext 15,5,"Ultim@te Online-Counter" drawtext 25,15,"Benutzer-Verwaltung" drawtext 22,30,"" drawtext 25,50,"Neuen User erstellen" drawtext 65,60,"oder" drawtext 15,70,"mit bereits vorhandenen" drawtext 25,80,"User weiter machen?" endpaint repaint endif if @getfocus(neu%) new_user elseif @getfocus(login%) login if @equ(startprogramm%,1) break endif elseif @getfocus(beenden%) if @Equ(@Messagebox("Anwendung beenden ?","Ende",36), 6) Killtimer UnLoadRasDLL end endif endif ' Linke Maustaste gedrückt? ' Wenn ja, dann Fenster verschieben If Equ(%message,$201) SetFocus(dialog%) UseCursor 5 Sendmessage(dialog%,$0112,$0F012,0) UseCursor 0 ReleaseCapture() endif wend @sendkey(dialog%,65) @destroywindow(dialog%) endproc ---------- Was muss ich jetzt tun? Außerdem habe ich folgendes Problem im zusammenhang mit diesem! Wenn ich in den zweiten Dialog wechsle und dann zurück gehe dann brauche ich nur irgendwo auf den alten dialog klicken und der zweite wird wieder aufgerufen! Das selbe wenn ich TAB drücke! MFG Sascha http://www.profan.willecke-net.de

| Zurück zur Übersicht