Italia
Foro

Edit enter beep farbig readonly

 

Ernst
Hallo Fachleute!
Die Eingaben im Edit sollen per weitere Verarbeitung mit <Enter> abgeschlossen werden (analog wie bei Input; es soll aber eben nicht eine eigene Input-Dialogbox sein).
Das Abfragen der Enter-Taste ist kein Problem, aber wie kann Io l' störenden Beep unterbinden?
Ich hab schon geraume Zeit gegooglet, aber ohne etwas verwertbares zu finden.
Hat jemand eine profane- oder api-Lösung ?
Grüsse Ernst
 
12.04.2016  
 




RudiB.
was denn per ein Beep...
habs mal getestet....
hier ein Beispiel aus dem Foro...
 $H windows.ph
Def CN(2) If(%message = $0111,((&lparam = &(1)) And (HiWord(&wparam) = &(2))),0)
Def EN_CHANGE(1) CN(&(1),$0300)
Def EnterOn(1) (%key = 13) And (&lparam = &(1))
Cls
Var test& = Control("DIALOG","",$54000000,310,10,200,24,%hwnd,0,%hinstance)
Var Ed& = Create("Edit",test&,"Hier ist der Text",0,0,200,24)
SetFocus(Ed&)
Print "Taste oder Enter drücken"

While 1

    WaitInput
    Locate 2,1

    If %key = 2

        Break

    ElseIf EnterOn(Ed&)

        Print "Enter gedrückt " + GetText$(&lparam)

    ElseIf EN_CHANGE(Ed&)

        Print GetText$(&lparam)

    EndIf

Wend

 
FreeProfan
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
12.04.2016  
 




Ernst
Vielen Dank; den Code von Jörg hatte ich schon mal gesehen, war aber nun anscheinend nicht imstande ihn wieder zufinden

bei obigem Code habe ich nun das Edit mit Farbe hinterlegt, jedoch bei read-only ist die Farbe weg (grauer Hintergrund) - ebenso ohne Farbe ( weißer Hintergrund) wird auf grau gesetzt.
 $H windows.ph
 $H messages.ph
Def CN(2) If(%message = ~WM_COMMAND,((&lparam = &(1)) And (hiword(&wparam) = &(2))),0)
Def EN_CHANGE(1) CN(&(1),~EN_CHANGE)
Def EnterOn(1) (%key = 13) And (&lparam = &(1))
Declare OCP&,Brush&
' -------------------------------------------------------------------------------------

Proc ControlProc

    parameters Wnd&, Msg&, wParam&, lParam&

    IF Brush&

        ~DeleteObject(Brush&)

    Endif

    If msg&=~WM_CTLCOLOREDIT or msg&=~WM_CTLCOLORSTATIC

        Brush& = ~CreateSolidBrush(RGB(255,255,170))
        ~SetBkMode(wParam&, ~TRANSPARENT)
        Return Brush&

    Endif

    Return ~CallWindowProc(OCP&,Wnd&, Msg&, WParam&, LParam&)

Endproc

' -------------------------------------------------------------------------------------
CLS
Var test& = Control("DIALOG","",$54000000,310,10,200,24,%hwnd,0,%hinstance)
Var Ed& = Create("Edit",test&,"Hier ist der Text",0,0,200,24)
OCP& = ~SetWindowLong(test&,~GWL_WNDPROC, ProcAddr(ControlProc,4))
SetFocus(Ed&)
SendMessage(ed&,$CF,1,0)' read only
Print "Taste oder Enter drücken"

While 1

    WaitInput
    Locate 2,1

    If %key = 2

        Break

    ElseIf EnterOn(Ed&)

        Print "Enter gedrückt " + GetText$(&lparam)

    ElseIf EN_CHANGE(Ed&)

        Print GetText$(&lparam)

    EndIf

EndWhile

IF Brush&

    ~DeleteObject(Brush&)

Endif

End

gibt es nun irgendeine Möglichkeit, das Edit auf read-only zu setzen, wobei aber die Hintergrundfarbe erhalten bleibt ?

Grüsse und Dank im Vorhinein

hab's schon gefunden; wenn das Edit read-only ist, sendet es nicht ~WM_CTLCOLOREDIT sondern ~WM_CTLCOLORSTATIC.
Im Code (oben) eingefügt und funkt. - JUHU
 
13.04.2016  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

4.729 Views

Untitledvor 0 min.
H.Brill15.08.2024
Walter12.05.2023
RudiB.29.12.2021
Torben Nissen26.04.2020
Di più...

Themeninformationen

Dieses Thema hat 2 subscriber:

Ernst (2x)
RudiB. (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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