Deutsch
Forum

GETFOCUS(Text1%)

 

Andre
Hilprecht
Hallo zusammen,

GETFOCUS(EDIT1%) funktioniert aber GETFOCUS(Text1%) nicht.

Nach einem Waitinput frage ich was denn nun geklickt wurde, also kommen dann die Zeilen

IF GETFOCUS(EDIT1%)
Eingabe
ELSEIF GETFOCUS(EDIT2%)
Eingabe
ELSEIF GETFOCUS(TEXT1%)
Eingabe
ENDIF

Klick auf Edit1 - sprung zur Proc Eingabe
Klick auf Edit2 - sprung zur Proc Eingabe
Klick auf Text1 - Nix pasiert

Was mache ich falsch, wo ist mein Denkfehler?
Gruß Andre
 
Ein PC ist die beste Möglichkeit Fehler zu beheben, die ohne PC gar nicht passiert wären. -frei aus Murphy's Computergesetzen

XProfan X2, Win8 Pro 64bit Update von Win7
i5 / 3,2GHz 4 GB RAM
Treibstoff: Radeberger Pils
17.02.2007  
 




Rolf
Koch
Hi ein Textfeld ist ein Static und dieses kann nie den Focus bekommen.
 
17.02.2007  
 




Nico
Madysa
Ist Text1% ein Static? Ich meine, hast du es mit Create("Text" erzeugt?
Meines Wissens nach können Static-Controls (solche, wie Texte, Bidler, etc.) gar keinen Focus erhalten, daher ist auch das Abfragen des Focus sinnlos.
 
Nico Madysa
17.02.2007  
 




Andre
Hilprecht
Das war die gesuchte Lösung. Danke euch, denn ihr habt mir auf die Sprünge geholfen.
KompilierenMarkierenSeparieren
Nächste Frage wäre dann:
Nun habe ich einen hübschen VScroll-Balken, wie benutze ich den nun weiter im Hauptfenster?
KompilierenMarkierenSeparieren
Finde dazu kein Beispiel.

Gruß Andre
 
Ein PC ist die beste Möglichkeit Fehler zu beheben, die ohne PC gar nicht passiert wären. -frei aus Murphy's Computergesetzen

XProfan X2, Win8 Pro 64bit Update von Win7
i5 / 3,2GHz 4 GB RAM
Treibstoff: Radeberger Pils
17.02.2007  
 



Jaja Scrollbalken sind so ein Thema.

Es gibt ja getscrollpos , wenn Du aber eine fertige ScrollArea haben möchtest dann kannst Du Dir die gleichnamige Unit laden.
 
17.02.2007  
 




Andre
Hilprecht
Fertige ScrollArea klingt gut, ich vermute aber mal, das ich dann gleich wieder tausend Fragen habe, weil ich brauch das zum Verständnis vom Urschleim her.
Gleich mal ne blöde Frage: Wo lade ich die fertige gleichnamige Unit?

Also

VScroll1% = GetScrollPos(%hwnd)

gibt mir den Wert zurück, wo der Knopf vom Scrollbalken steht.
Soll ja zwischen 0 und 100 sein, ich schiebe also am Knopf, der Wert wäre jetzt angenommen 11,
wie bewege ich jetzt synchron dazu mein Hauptfenster, das ich sicher von der Größe her jetzt größer
machen muss als der Bildschirm selber von der Auflösung her?

Fals die Unit für einen Anfänger wie mich leicht zu händeln ist, bzw. man sich dort leicht reinfinden kann,
dann würde ich mir das zumindest mal anschauen.

Gruß und Danke im Voraus von Andre
 
Ein PC ist die beste Möglichkeit Fehler zu beheben, die ohne PC gar nicht passiert wären. -frei aus Murphy's Computergesetzen

XProfan X2, Win8 Pro 64bit Update von Win7
i5 / 3,2GHz 4 GB RAM
Treibstoff: Radeberger Pils
17.02.2007  
 




Michael
Wodrich
[...] 

Es gibt auch SetScrollPos und SetScrollRange.

Näheres in der Hilfe. (Kapitel 20.9.)

Schöne Grüße
Michael Wodrich

P.S.: ...und natürlich den Hilfetext bei Create("VScroll",... nicht vergessen.
 
Programmieren, das spannendste Detektivspiel der Welt.
17.02.2007  
 



Die Unit ist alles andere als leicht zu handeln - selbst erfahrene XProfaner bekommen es kaum hin. Dennoch habe ich Beispiele für fast alle Eventualitäten beigelegt.
 
17.02.2007  
 




Rolf
Koch
Da sieht man mal wieder, dass ROC doch nicht so schlecht ist.
Hier halt mit Subclassmanager gearbeitet und die Include direkt in den Code geschrieben.
Ist halt Subclass - da geht noch mehr
KompilierenMarkierenSeparieren
 $P+
SET("ERRORLEVEL",0)
********************** HINWEISE ********************************
CODE ERZEUGT MIT ROKOS OBJECT CREATOR 4.5b
DATUM  17.02.2007    um  14:39 Uhr
VERWENDETE PROFANVERSION IST 10.0-NT XPROFAN
CODE ERSTELLT UNTER WINDOWS Unbekannt
Subclass für %hwnd ist eingeschaltet!
!!! Dieser Code wird von Roc immer neu erzeugt        !!!
!!! Erst bearbeiten, wenn alle Objekte erzeugt wurden !!!
!!! Verändern Sie ggf. feste Pfade in variable Pfade  !!!
DECLARE VSCROLL1&
DECLARE TEXT1&
DEF GETSYSCOLOR(1) !"USER32","GetSysColor"
 $H C:PROFANAKTUELLE PROJEKTEROCLIBWINDOWS.PH ANPASSEN!!!!!!!!!
 $H C:PROFANAKTUELLE PROJEKTEROCLIBMESSAGES.PH ANPASSEN!!!!!!
Hier nichts ändern **************************************
declare p_x1&,p_x2&

PROC INITSUBCLASS

    p_x1&=~Getwindowlong(%Hwnd,~Gwl_wndproc)
    p_x2&=Procaddr(Windowproc,4)
    ~Setwindowlong(%Hwnd,~Gwl_wndproc, p_x2&)

ENDPROC

PROC SETSTANDARDMESSAGE

    ~Setwindowlong(%Hwnd,~Gwl_wndproc, p_x1&)

ENDPROC

PROC SETEXTENDMESSAGE

    ~Setwindowlong(%Hwnd,~Gwl_wndproc, p_x2&)

ENDPROC

*********************************************************
Hier können die eigenen Abfragen hin ********************

Proc Windowproc

    Parameters Wnd&, Msg&, Wparam&, Lparam&

    If Msg& = ~Wm_close

        ~Postquitmessage(0)Programm-Ende

    Endif

    IF MSG& = ~WM_VSCROLL

        SETTEXT TEXT1&,"Aktuelle Position: "+STR$(GETSCROLLPOS(VSCROLL1&)) hier als Beispiel die Position in Textfeld!!!!!!!!!!!!!!
        SPIELEREI:
        setwindowpos %hwnd=22,20-(250+GETSCROLLPOS(VSCROLL1&)),(310+GETSCROLLPOS(VSCROLL1&))

    ENDIF

    Return ~Callwindowproc(p_x1&,Wnd&, Msg&, Wparam&, Lparam&)

Endproc

WINDOWSTYLE 63
WINDOWTITLE "The Elder scrolls *lol*"
WINDOW 22,20-250,310
SET("TRUECOLOR",1)
DECLARE ENDE%
CLS GETSYSCOLOR(15)
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1
Set("FASTMODE",1)
VSCROLL1& = CREATE("VScroll",%HWND,"VScroll",0187,0017,0014,0216)
TEXT1& = CREATE("TEXT",%HWND,"Aktuelle Position:",0017,0017,0158,0020)
INITSUBCLASS				muss an diese Position
SETSTANDARDMESSAGE			muss an diese Position
SETFOCUS(%HWND)
SETEXTENDMESSAGE			muss an diese Position

WHILENOT ENDE%

    WAITINPUT
    SETSTANDARDMESSAGE			muss an diese Position

    If %KEY=2

        ENDE%= 1

    ELSEIF %KEY=4

    ENDIF

    SETEXTENDMESSAGE			muss an diese Position

ENDWHILE

 
17.02.2007  
 



Das ganze geht wohl zur Not auch ohne Subclassing über die API ScrollWindow, dazu muss man aber etwas rechnen.
 
17.02.2007  
 




Andre
Hilprecht
Das habe ich geahnt, habe mir mal das Teil angesehen und komme damit überhaupt nicht klar.
Jetzt brauche ich den XPSE-Compiler, toll, ich bin begeistert.
Und nachdem ich nun alles an seinem Platz hatte, also den Verweis auf die Include und den
auf den XPSE-Compiler, sagt er mir jetz Unitdefinitionsdatei <SCROLLAREA> fehlt, obwohl sie da ist
und dann Programm fehlerhaft.

Also das hilft mir nicht wirklich weiter.

SetScrollPos und SetScrollRange setzen doch eben nur die Position des Knopfes innerhalb des
VScroll1%-Elementes, nicht aber das jetzt das Hauptfenster selbst gescrollt wird. Das bräuchte ich
doch nur, wenn ich das Fenster in einer gescrollten Position speichern/schließen will um es an dieser
Position wieder zu öffnen. Dann muss ich doch auch den Knopf an die Position setzen.?

Oder bin ich da vollkommen auf dem falschen Dampfer?

Gruß Andre
 
Ein PC ist die beste Möglichkeit Fehler zu beheben, die ohne PC gar nicht passiert wären. -frei aus Murphy's Computergesetzen

XProfan X2, Win8 Pro 64bit Update von Win7
i5 / 3,2GHz 4 GB RAM
Treibstoff: Radeberger Pils
17.02.2007  
 




Rolf
Koch
@AH,
klar gehts über die API und genauso mit Profanboardmitteln. Jedoch sind die so Stur, es wird nichts LIVE aktualisiert. Für sowas ist Subclass einfach genial!!!
 
17.02.2007  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

14.209 Betrachtungen

Unbenanntvor 0 min.
Manfred Barei13.11.2015
Uwe Lang01.01.2012

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