Deutsch
Forum

Zum Eingabefeld einige Fragen

 

Andre
Hilprecht
Hallo Helfer,
KompilierenMarkierenSeparieren
var LiterEnde% = @Create("Edit", %hWnd, "4750", 710,65,70,22)
SetFont LiterEnde%,hFont%

ich möchte:
1. In so einem Eingabefeld nur Zahlen zulassen (keine Buchstaben, Sonderzeichen, Komma usw.
2. den Bereich auf 0 bis 5000 begrenzen
3. die Zahlen dunkelblau im Feld erscheinen lassen
4. muss man immer wenn man eine andere Schrift haben möchte SetFont hinterschicken, oder geht das auch für eine ganze Prozedur/Programm?

Ich weiß, das sind für Euch viel zu einfache Fragen, aber ich stehe ganz am Anfang.
Lehrbuch ist bestellt und in der Hilfe finde ich zu wenig Beispiele, oder sie sind für mich
zu wenig kommentiert (also Idiotensicher)

ICH WILLS JA LERNEN, also brauch ich Hilfe. Danke schon mal.
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
18.12.2012  
 




Thomas
Freier
Zum Lernen bitte in den Quelltexten suchen. Beispiele für Edits bei [...] . Farbige Edits einfach mit der SKControl.dll erstellen oder Beispiele suchen.
Einschränkungen auf einfache Weise:
KompilierenMarkierenSeparieren
Whilenot Ende%

    Waitinput

    If (val(Gettext$(NumEdit%))<0) OR  (val(Gettext$(NumEdit%))>5000)

        SetText NumEdit%,""

    EndIf

    .......weitere Abfragen
 
Gruß Thomas
Windows XP SP2, XProfan X2
18.12.2012  
 




Julian
Schmidt
Schau dir mal SpinEdits an, ist wahrscheinlich genau das was du suchst.
KompilierenMarkierenSeparieren
CLS
Create("SpinEdit",%hwnd,"50;0;100",10,10,70,25)'Spinedit mit Angabe des Startwertes; Unter Grenze; Obergrenze

WhileNot iskey(27)

    waitinput

EndWhile


Andre Hilprecht (18.12.12)
4. muss man immer wenn man eine andere Schrift haben möchte SetFont hinterschicken, oder geht das auch für eine ganze Prozedur/Programm?


Siehe SetDialogFont.
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
18.12.2012  
 




Andre
Hilprecht
Danke für die Hilfe, ich werde mir das der Reihe nach reinziehen.

Das Spinedit ist schon ganz brauchbar, aber nachdem ich den Wert ausgelesen habe,
möchte ich das es vom Bildschirm verschwindet. Tut es auch, nur die Spins (Pfeile) bleiben sichtbar. Außerdem kann man dennoch Buchstaben eingeben, obwohl ich den
Wert auf 0-5000 festgesetzt habe

SetDialogFont geht nicht für alle mit Create erzeugten Elemente, also macht es eine
Kombination von beidem.
 
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
19.12.2012  
 




Thomas
Freier
Ein kleines Beispiel mit Edit und SpinEdit und wie das SpinEdit zerstört wird. Aber Achtung: ein SpinEdit hat einen Tausenderpunkt. Der muß zum Rechnen mit @Translate$(S1,S2,S3) entfernt werden.
KompilierenMarkierenSeparieren
' für nur Zahlen
Def GetWindowLong(2) !"USER32", "GetWindowLongA"
Def SetWindowLong(3) !"USER32", "SetWindowLongA"
Def SetEditNumeric(1) SetWindowLong(@&(1),-16, (GetWindowLong(@&(1), -16) | $2002))
cls
var loes%=Create("Button",%hwnd,"SpinnEdit löschen",470,380,140,24)
var ed%=Create("Edit",%HWnd,"",480,10,120,24)
SetEditNumeric(ed%)'nur Ziffereingaben erlauben
sendmessage(ed%,$00C5,4,0)'nur 4 Zeichen
var spin%=Create("SpinEdit",%HWnd,"3000;0;5000",480,80,120,24)
SetEditNumeric(spin%)'nur Ziffereingaben erlauben
sendmessage(spin%,$00C5,4,0)'nur 4 Zeichen

while 1

    waitinput

    If getfocus(ed%)

        case val(gettext$(ed%)) > 5000 : settext ed%,""

    endif

    If getfocus(loes%)

        DestroyWindow(GetHandle(%hwnd,ItemID(spin%) + 1))
        DestroyWindow(spin%)

    endIf

endwhile

 
Gruß Thomas
Windows XP SP2, XProfan X2
19.12.2012  
 




Andre
Hilprecht
Ok, konnte ich alles erfolgreich verwenden und funktioniert wie gewünscht.
Der 2. Teil vom SpinEdit muss also mit einem 2. DestroWindow entfernt werden.
Dachte ich mir schon, hatte es nur nicht probiert.

Einige Quelltexte aus der Sammlung bekomme ich nicht zum laufen, da ist nicht richtig
auskommentiert und ich sehe (noch) nicht immer was Programm und was Kommentar ist. Wäre hilfreicher, wenn diese Quelltexte immer kleine und lauffähige Miniprogramme wären.
Du hast das prima gemacht. Das kann auch ein Anfänger nachvollziehen.

Danke

Da kommen noch 999 Fragen bis mein Prog fertig ist.
 
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
19.12.2012  
 




Findus
Was ich nie rausgekrigt habe ist wie man einen Text blau macht oder einfärbt von einem Eingabefeld oder Text.
 
21.12.2012  
 




Thomas
Freier
Beispiele für Edits gibt es hier genug oder einfach mit der SKControl.dll oder als RichEdit
KompilierenMarkierenSeparieren
 $H windows.ph
 $H messages.ph
 $H RichEdit.ph
 $I profalt.inc
Def GetSysColor(1) !"USER32","GetSysColor"
Declare hDlg&,Edit&,Textzeile&,hAbbruch&,Exit%
Declare font&,dll&,Text$
Cls
font&=CreateFont("Arioso",16,0,0,0,0)
hDlg& = Create("Dialog",%hWnd,"RichEdit einzeilig ohne Rahmen",400,200,400,200)
hAbbruch& = Create("Button",hDlg&,"Abbruch",180,140,70,24)
setfont hAbbruch&,font&,Text$
dll&=usedll("riched32.dll")
Edit& = control("RichEdit20A","",$543150C0,10,10,280,24,hDlg&,100,%hinstance,$200)
setfont Edit&,font&
Textzeile& = control("RichEdit20A","",$543150C0,10,80,280,24,hDlg&,100,%hinstance,$200)
setfont Textzeile&,font&
declare rtf#
dim rtf#,60
clear rtf#
long rtf#,0=60
long rtf#,4=$40000000
long rtf#,20=rgb(0,0,255)
sendmessage(Edit&,1092,1,rtf#)
sendmessage(Textzeile&,1092,1,rtf#)
dispose rtf#
ShowWindow(Edit&,0)
ShowWindow(Textzeile&,0)
SetStyle Edit&,$50FF00F4
SetStyle Textzeile&,$50FF00F4
SendMessage(Textzeile&,~EM_SETBKGNDCOLOR,0,GetSysColor(15))' Hintergrundfarbe
SendMessage(Textzeile&,~em_SetReadOnly,1,0)' nur Lesen setzen
text$="Ich screibe blau "
SendMessage(edit&, 177, $FFFF, $FFFF)'  EM_SETSEL
SendMessage(edit&, 194, 0, Addr(Text$))' EM_REPLACESEL
text$="Ich bin blau"
SendMessage(Textzeile&, 177, $FFFF, $FFFF)'  EM_SETSEL
SendMessage(Textzeile&, 194, 0, Addr(Text$))' EM_REPLACESEL
ShowWindow(Edit&,1)
ShowWindow(Textzeile&,1)
setfocus(Edit&)

WhileNot Exit%

    WaitInput
    case getfocus(Textzeile&): setfocus(hdlg&)

    If Clicked(hAbbruch&)

        Exit% = 1

    EndIf

EndWhile

DeleteObject font&
DestroyWindow(edit&)
DestroyWindow(Textzeile&)
DestroyWindow(hDlg&)
FreeDLL dll&
 
Gruß Thomas
Windows XP SP2, XProfan X2
21.12.2012  
 




Findus
Danke das probiere ich aus.
 
22.12.2012  
 




Findus
Danke das klappt.
 
27.12.2012  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

9.731 Betrachtungen

Unbenanntvor 0 min.
Normann Strübli24.03.2020
rquindt20.04.2016
H.Brill27.08.2015
Rainer Hoefs28.06.2015
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