Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Eingabefelder (Edits) mit verschiedenen Eigenschaften (ab Profan² 6.6)
Lauffähig ab Profan-Version 5.0
Beispiele von Eingabefeldern (Edits) mit verschiedenen Eigenschaften.
Version 1.0 3.2.2002. Das Programm kann frei benutzt werden, für
Schäden kann keine Haftung übernommen werden.
Autor: Gerhard Putschalka
email: g.putschalka@web.de
homepage: http://members.telering.at/g.putschalka/index.html
Die Felder werden im 3D Stil mit der @Control-Funktion erzeugt.
@Control(EDIT,S,$5481xxxx,X1,Y1,X2,Y2,N,0,%hinstance)
die Werte für N, S, X1, Y1, X2, Y2 entsprechen den Angaben wie bei @CreateEdit
Da bei der @Control Funktion 11 Parameter verwendet werden, ist dieses Programm erst
ab Profanversion 6.6 einsetzbar. Für ältere Profanversionen kann als Ersatz das Programm
Edits1.prf eingesetzt werden!
Der 3. Parameter bestimmt die Feldeigenschaften:
$5481xxxx
........0 = linksbündige Eingabe
........1 = mittige Eingabe
........2 = rechtsbündige Eingabe
........4 = mehrzeilige Eingabe (MultiEdit ?)
........8 = nur Großbuchstaben (Kleinbuchstaben werden umgesetzt)
.......1. = nur Kleinbuchstaben (Großbuchstaben werden umgesetzt)
.......2. = Password (es werden nur * angezeigt)
.......4. = vertikal Scroll
.......8. = horizontal Scroll. Ist das Feld zu kurz, wird die Anzeige weitergeschoben.
......1.. = Nohideselect ?
......4.. = OEM Convert (der eingegebene String wird in ANSI konvertiert)
......8.. = Read only. Das Feld wird grau angezeigt, erlaubt aber keine Eingabe.
.....2... = nur Zifferneingabe möglich (aber kein Komma, Punkt oder Minus)
diese Werte können auch addiert werden. Sind aber als Hexwerte anzusehen. So ergibt z.B.
8 und 4 zwar den Wert 12 muß aber als Hexwert C eingesetzt werden
(die Zählweise in Hex ist: 0123456789ABCDEF ! Zählt also von 0 bis 15)
Declare Links&,LinksG&,LinksB&,LinksP&,LinksA&,LinksD&,Mitte&,Rechts&,OK%,_dlg%,ChkB%
Windowtitle Eingaben:
Window 0,0-640,450
CLS
Let _dlg% = @CreateDialog(%Hwnd,Eingabefelder mit verschiedenen Eigenschaften,
170,20,470,430)
1. linksbündige Eingabe
@CreateText(_dlg%,F1,10,40,20,20)
@CreateText(_dlg%,linksbündig,50,40,80,20)
Let Links& = @Control(EDIT,,$54810080,140,40,100,20,_dlg%,0,%hinstance,$0200)
2. mittige Ausrichtung
@CreateText(_dlg%,F2,10,80,20,20)
@CreateText(_dlg%,mittig,90,80,40,20)
hier wird ein Vorgabewert mit der Erstellung des Feldes mitgegeben
Let Mitte& = @Control(EDIT,987,$54810081,140,80,100,20,_dlg%,0,%hinstance,$0200)
3. rechtsbündige Ausrichtung
@CreateText(_dlg%,F3,10,120,20,20)
@CreateText(_dlg%,rechtsbündig,40,120,90,20)
Let Rechts& = @Control(EDIT,,$54810082,140,120,100,20,_dlg%,0,%hinstance,$0200)
setze einen Vorgabewert unabhängigvon der Erstellung des Feldes.
SetText Rechts&,F012
4. linksbündige Eingabe, Umsetzung Kleinbuchstaben in Großbuchstaben
@CreateText(_dlg%,F4,10,160,20,20)
@CreateText(_dlg%,linksbündig,50,160,80,20)
@CreateText(_dlg%,Umsetzung in Großbuchstaben,250,160,200,20)
Let LinksG& = @Control(EDIT,,$54810088,140,160,100,20,_dlg%,0,%hinstance,$0200)
5. linksbündige Eingabe, Feldeingabe durch Breite begrenzt. Ist nicht brauchbar, weil
die Zeichenbreite die Begrenzung ergibt! Es können z.B. viel mehr i als M
eingegeben werden.
@CreateText(_dlg%,F5,10,200,20,20)
@CreateText(_dlg%,linksbündig,50,200,80,20)
@CreateText(_dlg%,begrenzte Eingabebreite !,250,200,200,20)
Let LinksB& = @Control(EDIT,,$54810000,140,200,100,20,_dlg%,0,%hinstance,$0200)
6. linksbündige Eingabe, Feldeingabe durch max. Stellenanzahl begrenzt. Besser!
Hier spielt die Zeichenbreite keine Rolle.
@CreateText(_dlg%,F6,10,240,20,20)
@CreateText(_dlg%,linksbündig,50,240,80,20)
@CreateText(_dlg%,Eingabe auf 5 Stellen begrenzt,250,240,200,20)
Let LinksA& = @Control(EDIT,,$54810080,140,240,100,20,_dlg%,0,%hinstance,$0200)
@SendMessage(LinksA&,$00C5,5,0) Parameter 3 ist Anzahl max. Stellen
7. linksbündige Eingabe, Password.
@CreateText(_dlg%,F7,10,280,20,20)
@CreateText(_dlg%,linksbündig,50,280,80,20)
@CreateText(_dlg%,Password,250,280,200,20)
Let LinksP& = @Control(EDIT,,$54810020,140,280,100,20,_dlg%,0,%hinstance,$0200)
8. linksbündige Eingabe, geschütztes Feld.
Grundsätzlich muß das Feld nicht direkt als geschützt erstellt werden. Jedes andere
Eingabefeld könnte ebenso durch @SendMessage(Handle&,$00CF,x,0) gesteuert werden
(x: 0 = ungeschützt, 1 = geschützt)
@CreateText(_dlg%,F8,10,320,20,20)
@CreateText(_dlg%,linksbündig,50,320,80,20)
@CreateText(_dlg%,geschützt,250,320,200,20)
Let LinksD& = @Control(EDIT,,$54810880,140,320,100,20,_dlg%,0,%hinstance,$0200)
setze einen Text, damit was angezeigt wird
SetText LinksD&,ABCDEF012
mit der Checkbox kann der Schutz aus- und eingeschaltet werden.
Let ChkB% = @CreateCheckBox(_dlg%,Feld schützen?,140,350,120,20)
setze Checkbox am Beginn auf geschützt
SetCheck ChkB%,1
Anmerkung: das Zuweisen von Texten und das aus- und einschalten des Schutzes ist bei
allen hier verwendeten Feldern anwendbar.
Let OK% = @CreateButton(_dlg%,Ende,380,370,50,25)
@SetFocus(Links&)
WhileNot @GetFocus(OK%)
WaitInput
Hier wird der Schutz des geschützten Feldes ein- oder ausgeschaltet.
im Parameter 3 wird 0 oder 1 (Zustand der Checkbox) übergeben.
@SendMessage(LinksD&,$00CF,@GetCheck(ChkB%),0)
If (@GetCheck(ChkB%) = 1)
@CreateText(_dlg%,geschützt,250,320,200,20)
Else
@CreateText(_dlg%,nicht geschützt,250,320,200,20)
EndIf
EndWhile
Ergebisanzeige.
Alle Feldinhalte werden, ohne Berücksichtigung der Ausrichtung in den angezeigten
Feldern, linksbündig übergeben!
Print F1 =,@GetText$(Links&)
Print F2 =,@GetText$(Mitte&)
Print F3 =,@GetText$(Rechts&)
Print F4 =,@GetText$(LinksG&)
Print F5 =,@GetText$(LinksB&)
Print F6 =,@GetText$(LinksA&)
Print F7 =,@GetText$(LinksP&)
Print F8 =,@GetText$(LinksD&)
WaitInput warte auf './../../Function-References/XProfan/Key/'>Button
end