| |
|
|
Andre Hilprecht | Hallo Helfer, KompilierenMarkierenSeparieren 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 |
|
|
| |
|
|
|
Julian Schmidt | Schau dir mal SpinEdits an, ist wahrscheinlich genau das was du suchst. KompilierenMarkierenSeparieren 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. |
|
|
| |
|
|
|
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
|
|
|
| |
|
|
|
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. |
|
|
| |
|
|
|
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&
|
|
|
| |
|
|
|
Findus | Danke das probiere ich aus. |
|
|
| |
|
|
|
Findus | |
|
| |
|
|