Italia
Fonte/ Codesnippets

Beschr

 

Findus
Ein Eingabefeld wo man nur Zahlen und Komma eingeben kann
KompilierenMarkierenSeparieren
'##########################
'Benötigte Header-Dateien einbinden
'##########################
 $H Windows.ph
 $H Messages.ph
'##########################
'Fenster anlegen
'##########################
WindowStyle 536'DialogStil setzen
WindowTitle "Berechne"
WINDOW 365,250
CLS ~GetSysColor(~COLOR_BTNFACE)
Set("Decimals",4)
setdialogfont ~GetStockObject(~DEFAULT_GUI_FONT)
'##########################
'das Fenster aufbauen
'##########################
Create("Text",%hWnd,"Eingabe X1:",10, 8,120,20)
Create("Text",%hWnd,"Eingabe X2 muss ungleich 0 sein:",10,33,300,20)
Create("Text",%hWnd,"Eingabe Y1:",10,58,120,20)
Create("Text",%hWnd,"Eingabe Y2:",10,83,120,20)
Create("Text",%hWnd,"Eingangssignal:",10,108,120,20)
Create("Text",%hWnd,"Die Steigung beträgt:",10,168,200,20)
Create("Text",%hWnd,"Das Ausgangssignal beträgt:",10,193,200,20)
Var  X1% = Create("Edit",%hWnd,"",250, 5,85,24)
Var  X2% = Create("Edit",%hWnd,"",250,30,85,24)
Var  Y1% = Create("Edit",%hWnd,"",250,55,85,24)
Var  Y2% = Create("Edit",%hWnd,"",250,80,85,24)
Var  ES% = Create("Edit",%hWnd,"",250,105,85,24)
Var  hB% = Create("Button",%hWnd,"&Berechnen",10,133,80,25)
Var  hA% = Create("Button",%hWnd,"&Schließen",250,133,80,25)
Var T1% = Create("Text",%hWnd,"",248,193,85,20)
Var T2% = Create("Text",%hWnd,"",248,168,85,20)
'##########################
'Subclassing für die Edits einschalten
'##########################
SubClass X1%, 1
SubClass X2%, 1
SubClass Y1%, 1
SubClass Y2%, 1
SubClass ES%, 1
SetFocus(X1%)
'##########################
'Hauptschleife
'##########################

While 1

    WaitInput
    Case %key = 2 : BREAK'Fenster soll geschlossen werden(ESC,ALT+F4,Schliessen-Kreuz,Systemmenu-Schliessen)

    If Clicked(hb%)

        If CheckValues()

            Berechnen()

        EndIf

    ElseIf Clicked(ha%)

        Break

    EndIf

EndWhile

End
'##########################
'die benötigten Prozeduren
'##########################

Subclassproc

    '##########################
    'hier wird die Eingabe in die Edits überwacht
    'nur Zahlen,Minus,Komma und Backspace werden erlaubt
    '##########################

    If (&swnd = X2%) or (&swnd = Y1%) or (&swnd = X1%) or (&swnd = Y2%) or (&swnd = ES%)

        If SubClassMessage(&swnd,~wm_char)

            Set("WinProc", 1)'weiterleiten

            If (&swParam > 47) and (&swParam < 58)'alle Zahlen bearbeiten

            ElseIf &swParam = 45'Minus

            ElseIf &swParam = 44'Komma

            ElseIf &swParam = ~VK_BACK'Backspace

            Else

                Set("WinProc", 0)'sonst nicht weiterleiten

            EndIf

            '#################
            'Rechte Maustast abfangen
            '#################

        Elseif SubClassMessage(&swnd,~WM_CONTEXTMENU)

            SendMessage(&swnd,~WM_LBUTTONDOWN,0,0)
            SendMessage(&swnd,~WM_LBUTTONUP,0,0)
            Set("WinProc", 0)'sonst nicht weiterleiten

        EndIf

    EndIf

EndProc

Proc Berechnen

    Var X1! = val(translate$(GetText$(X1%),",","."))
    Var X2! = val(translate$(GetText$(X2%),",","."))
    Var Y1! = val(translate$(GetText$(Y1%),",","."))
    Var Y2! = val(translate$(GetText$(Y2%),",","."))
    Var ES! = val(translate$(GetText$(ES%),",","."))
    Var ST! = ((Y2!-Y1!)/(X2!-X1!))
    Var AS!=(ES!*ST!)+Y1!
    Var ST$ = str$(@round(ST!,4))
    Var AS$ = str$(@round(AS!,4))
    Settext T1%,AS$+" %"
    Settext T2%,ST$

EndProc

Proc CheckValues

    '##########################
    'hier werden die zwei Edits überprüft die keine NULL erlauben
    '##########################

    If Val(Gettext$(X2%)) = 0

        Messagebox("unkorrekte Eingabe - bitte prüfen","Feld1",0)
        SetFocus(X2%)
        Return 0

    ElseIf Val(Gettext$(Y1%)) = 0

        Messagebox("unkorrekte Eingabe - bitte prüfen","Feld2",0)
        SetFocus(Y1%)
        Return 0

    EndIf

    Return 1

EndProc


Das hat Andreas Miethe erstellt.
 
29.12.2012  
 



Grüße und herzlichen Glückwunsch zu Deinem ersten Snippet!

Habe den Thementitel etwas angepasst, hier bei den Quelltexten im Titel nur
den Quelltext betreffende Schlagworte, dafür aber ruhig ein paar mehr.
 
29.12.2012  
 




Findus
iF (29.12.12)

Grüße und herzlichen Glückwunsch zu Deinem ersten Snippet!

Habe den Thementitel etwas angepasst, hier bei den Quelltexten im Titel nur
den Quelltext betreffende Schlagworte, dafür aber ruhig ein paar mehr.


Ok das merke ich mir.
 
29.12.2012  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

6.972 Views

Untitledvor 0 min.
Erhard Wirth14.06.2024
p.specht20.11.2021
Uwe Lang20.11.2021
Manfred Barei19.11.2021
Di più...

Themeninformationen

Dieses Thema hat 2 subscriber:

Findus (2x)
iF (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