Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 249505 (10941)
  Suchen
 Zurück zur Übersicht
 AutorThema: @createedit
Hans-Peter
Datum:19.08.01 19:59 Antwortenals Email verschicken (Hans-Peter_Cremers@t-online.de) 


'Ich grüße Euch,

'ist jemand in der Lage, mir die fehlenden Zeilen einzusetzen, die
'mein Programm das tun lassen, was ich möchte?

'Und zwar soll .....

'1.) die Escape-Taste als übergeordnete Abbruch-Taste die Eingaberoutine
' sofort abbrechen, egal in welcher Eingabezeile sie steht, also auch
' mittendrin, mit anderen Worten soll die Tasteneingabe ´Escape´ wie
' das Anklicken des "abbrechen"-Buttons die Routine sofort abbrechen.

'2.) die ENTER-Taste genau wie die TAB-Taste von Eingabezeile zu Eingabe-
' zeile weitergeben ( - was jetzt schon sowieso funktioniert - ), aber
' nach der vierten Eingabe soll die Entertaste genau wie die TAB-Taste
' den ersten Button "OK" lediglich aktivieren, und nicht wie jetzt das
' Programm ohne Vorwarnung abbrechen.
'
' Gibt es einen Spezialisten, der das hinkriegt??

' Ich kanns kaum erwarten.

' MfG
' Hans-Peter

'*************************************************************
declare Kunde%, Name%, Vorname%, Ort%, Straße%, KNEnde%, \
OK%, korrigieren%, abbrechen%, _x1%, _y1%, _xx%, _yy%
declare font1&
let Font1&= @CreateFont("Arial",20,0,0,0,0)

'**************************************************************
proc Unterprogramm

let _x1% = 25
let _y1% = 160
let _xx% = 420
let _yy% = 300

windowstyle 68
let Kunde% = @createwindow(%hwnd,"",_x1%,_y1%,_xx%,_yy%)
startpaint Kunde%
Usefont "Arial", 15,0,0,0,0
TextColor @RGB(0,0,0),-1
drawtext 20, 70, " Name"
drawtext 20, 90, " Vorname"
drawtext 20,110, " Plz/Ort"
drawtext 20,130, " Straße"
endpaint

Let Name% = @CreateEdit(Kunde%,"",100,70,275,20)
SetFont Name%, Font1&

Let Vorname% = @Createedit(Kunde%,"",100,90,275,20)
SetFont Vorname%, Font1&

Let Ort% = @createedit(Kunde%,"",100,110,275,20)
SetFont Ort%, Font1&

Let Straße% = @Createedit(Kunde%,"",100,130,275,20)
SetFont Straße%, Font1&


let ok%=@createbutton(Kunde%,"OK",25,180,100,30)
let korrigieren%=@createbutton(Kunde%,"Korrigieren",155,180,100,30)
let abbrechen%=@createbutton(Kunde%,"Abbrechen",285,180,100,30)

@setfocus(Name%)

whilenot KNEnde%
waitinput

if @getfocus(ok%)
let KNEnde%=1
elseif @getfocus(korrigieren%)
setfocus(name%)
elseif @getfocus(abbrechen%)
let KNEnde%=1
endif

endwhile
@destroywindow(Kunde%)
endproc

'************************
Unterprogramm

end




Sebastian Sprenger
Datum:19.08.01 21:41 Antwortenals Email verschicken (prof.chaos@netcologne.de) 


Ich grüße dich auch, Hans-Peter.
Um dein erstes Problem zu lösen, musst du folgende Zeile einsetzen:

elseif @getfocus(abbrechen%) or (%key=2)
Sebastian


Sebastian Sprenger
Datum: 20.08.01 17:53 Antwortenals Email verschicken (prof.chaos@netcologne.de) 


Hallo Hans-Peter,
ich habe noch etwas herumexperimentiert um dein zweites Problem zu lösen:

' Füge direkt vor dem OK-Button einen unsichtbaren Button ein:
declare nix%
let nix%=@createbutton(Kunde%,"",0,0,0,0)

' Damit nach dem 4.Eingabefeld weiterhin der OK-Button kommt, brauchst du bei der Abfrage noch folgendes:
if @getfocus(nix%)
  @setfocus(ok%)
elseif @getfocus(ok%)
  ...
Ich wünsche viel Spaß...
Sebastian................


 Zurück zur Übersicht