Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  in DCL mit ENTER zum nächsten Feld?

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  in DCL mit ENTER zum nächsten Feld? (1211 mal gelesen)
Peter2
Ehrenmitglied V.I.P. h.c.




Sehen Sie sich das Profil von Peter2 an!   Senden Sie eine Private Message an Peter2  Schreiben Sie einen Gästebucheintrag für Peter2

Beiträge: 3701
Registriert: 15.10.2003

Win 10/64 Pro
AutoCAD MAP 3D 2018
BricsCAD 22

erstellt am: 29. Jul. 2010 18:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ist es möglich, in einem Dialogfenster mit ENTER zum jeweils nächsten Eingabefenster (Edit_Box) zu springen und dann vom letzten auf OK?

Danke

Peter
(Nach Diktat verreist - Rückmeldungen erst in 14 Tagen).

------------------
Für jedes Problem gibt es eine einfache Lösung.
Die ist aber meistens falsch. ;-)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Niggemann
Mitglied



Sehen Sie sich das Profil von Niggemann an!   Senden Sie eine Private Message an Niggemann  Schreiben Sie einen Gästebucheintrag für Niggemann

Beiträge: 159
Registriert: 31.10.2003

Win 98 Se, ACAD 2004, XP Prof, ACAD 2004 und ACAD 2010

erstellt am: 30. Jul. 2010 01:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Peter2 10 Unities + Antwort hilfreich

Hallo Peter2,
ist kein Problem, mach unter Windows in den meiste Fällen keinen Sinn
da der Anwender mit der Maus überall hin klickt kann, und werden dann Werte aus einer Edit_box benötigt deren Eingaben vorher schon gemacht werden müsten zurückgreift, gibt es komische Ergebnisse oder Abschüsse deines Programms. Dieses ist zb. der Fall wenn du auf Zahlenwerte arbeitest, wo der Wert aus einem vorherigen Feld benötigt wird. Ds mit dem Return kommt ja aus der DOS-Zeit ist aber nicht mehr
so der Hit, kann mich auch nur schwer davon trennen.
An sonsten get es so:
"(mode_tile "nächtes_feld" 0)" "(mode_tile "nächtes_feld" 0)" usw.
Mit "wcmatch" kanst du eine Gültigkeitsprüfung vornehmen und bei Falscheingabe über
"(mode_tile "nächtest_feld" 2)"
"(mode_tile "nächtest_feld" 3)" kannst du den Anwender dazu zwingwen
solange im Feld zubleiben bis er eine Richtige Eingabe gemacht hat.
zB.:
;; Überprüfen das nur Zahlen und Punkt oder Komma als Dezimaltrennzeichen
;; vorhanden sind   
  (if (wcmatch (get_tile KEY) "*@*,*[] `#`@`?`*`~`[´``'!%^&()+={}|`\\:;\"<>/]*")
    (progn
    (vlr-beep-reaction )
    (mode_tile KEY 2)(mode_tile KEY 3)
    (set_tile "error" (strcat "Nur Zahlen -,- und -.- sind erlaubt !!!! "))
    )
    (progn
    (if (>= (strlen (get_tile KEY)) 1)
      (progn
;; Die Taste Speicher Hervorheben und den Äderungsindex setzen
      (mode_tile "SPEICHERN" 0)(setq A 1)
      )
    )
    (set_tile "error" "")
    )
  )
Dein Ergebnisse solltes du aber erst beim Verlassen des Fensters mit "OK" auswerten weil:
Eine Taste in deiner DCL-Datei sollte "is_cancel = true;" enthalten.
damit kann der Anwender, wenn er nicht mehr weiter weiß auf das "X" oben rechts im Fenster dieses schliessen.
mfg.
Niggemann

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 30. Jul. 2010 08:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Peter2 10 Unities + Antwort hilfreich


DclJump.DCL.txt


DclJump.gif


DclJump.LSP.txt

 
Hallo Peter,
ich habe mal einen Test gemacht, indem ich einen Button als "Dummy-Button" eingerichtet habe. (Ich habe ihn erstmal mit Next "beschriftet". Dieser wird beim Entern der Edit_boxen jedesmal angesprochen, und dann beginnt die Auswertung, welche Edit_box als nächstes aktiviert wird. Wenn alle Edit_boxen gefüllt sind wird das Dialogfenster mit OK verlassen.

Schön wäre es, wenn man einen solchen Dummy-Button unsichtbar machen könnte, ich habe es schon mal mit einem Image oder Image_button probiert, hat aber noch nicht so recht funktioniert. Vielleicht weiß ja einer von Euch, wie das funzen würde.

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dorfy
Mitglied
Double-Dipl.-Ing. Bleistiftanspitzer


Sehen Sie sich das Profil von Dorfy an!   Senden Sie eine Private Message an Dorfy  Schreiben Sie einen Gästebucheintrag für Dorfy

Beiträge: 900
Registriert: 21.07.2006

AutoCad2007, ProE, HiCad

erstellt am: 30. Jul. 2010 08:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Peter2 10 Unities + Antwort hilfreich

Hi,
TAB reicht dir nicht?!

Vllt. ist in Kombination mit einer anderen Sprache und/oder (vlax-create-object "WScript.Shell")was drin.

Mit doslib könnte auch noch was gehen... - als Idee.

Bei jeder Edit_Box hinter action_tile ein extra Flag mitgeben ... und bei Enter je nach Status den Dialog mit den getroffenen Eingaben wieder öffnen - ist aber unschön.

------------------
Mfg Heiko

Elefantenjagd in Afrika
"... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..."

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


Sehen Sie sich das Profil von fuchsi an!   Senden Sie eine Private Message an fuchsi  Schreiben Sie einen Gästebucheintrag für fuchsi

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 02. Aug. 2010 11:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Peter2 10 Unities + Antwort hilfreich

Also ich würde bei den Edit-Boxen abfragen, ob ENTER gedrück wurde.

Angenommen die 3 EditBoxen heissen E1 E2 und E3

Code:

(action_tile "E1"  "(Test-E1 $reason)"))
(action_tile "E2"  "(Test-E2 $reason)"))
(action_tile "E3"  "(Test-E3 $reason)"))

(defun Test-E1 ( Reason / ) (if (= Reason 1) (mode_tile "E2" 2))) ; ENTER gedrückt ($reason = 1) Focus auf E2 (mode_tile "E2" 2)
(defun Test-E2 ( Reason / ) (if (= Reason 1) (mode_tile "E3" 2)))
(defun Test-E3 ( Reason / ) (if (= Reason 1) (done_dialog)))



[Diese Nachricht wurde von fuchsi am 02. Aug. 2010 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Peter2
Ehrenmitglied V.I.P. h.c.




Sehen Sie sich das Profil von Peter2 an!   Senden Sie eine Private Message an Peter2  Schreiben Sie einen Gästebucheintrag für Peter2

Beiträge: 3701
Registriert: 15.10.2003

Win 10/64 Pro
AutoCAD MAP 3D 2018
BricsCAD 22

erstellt am: 12. Aug. 2010 12:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

So, nach dem Urlaub meine Rückmeldungen.

a) TAB geht nicht?
Geht technisch schon, aber ergonomisch nicht so toll. Die Überlegung war, dass es sich bei der Eingabe (fast) nur um Zahlen handelt und der Anwender mit der rechten hand tippt und die linke Hand zum Zeigen auf den Unterlagen verwendet. Und TAB wpürde die linke Hand stören ..

b) technische Lösung:
Der berühmte und erwünschte "Einzeiler" kann hier anscheinend nicht helfen. Wie die (tw. ähnlichen) Tipps zeigen steckt dann doch eine kreuz-und-quer Auswertung dahinter.
Der klassische "Attribute ausfüllen - Dialog" hat das erwähnte Verhalten und ist als DCL codiert, aber wie da die Auswertung läuft weiss ich nicht.

c) meine Lösung:
Da habe ich komplett umgeplant. Da viele Eingaben sich wiederholen habe ich den Schwerpunkt auf Werterhaltung und -erhöhung gelegt, dafür jede Edit_Box mit "allow_accept" versehen. Das passt am Ende besser als die alte Idee.

Danke nochmals für die Beiträge.

Peter

------------------
Für jedes Problem gibt es eine einfache Lösung.
Die ist aber meistens falsch. ;-)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


Sehen Sie sich das Profil von fuchsi an!   Senden Sie eine Private Message an fuchsi  Schreiben Sie einen Gästebucheintrag für fuchsi

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 12. Aug. 2010 13:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Peter2 10 Unities + Antwort hilfreich

HM.

Also mit Enter den Focus auf das nächste Steuerelement zuu legen, ist dich IMHOIn my humble oppinion (Meiner Meinung nach) eine Einzeiler?

Meinen Tipp probiert. Macht doch genau, was Du willst.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Praktikum im Bereich Entwicklung und Konstruktion von E-Maschinen ab Juli / August / September 2024
Life is always about becoming? Im Leben geht es darum, sich auf eine Reise zu begeben, um die beste Version unseres zukünftigen Selbst zu werden. Während wir Neues entdecken, stellen wir uns Herausforderungen, meistern sie und wachsen über uns hinaus.

Bewerben Sie sich bei Mercedes-Benz und finden Sie den Aufgabenbereich, in dem Sie Ihre Talente individuell entfalten können. Dabei werden Sie von visionären Kolleginnen und Kollegen unterstützt, die Ihren Pioniergeist teilen....
Anzeige ansehenKonstruktion, Visualisierung
Peter2
Ehrenmitglied V.I.P. h.c.




Sehen Sie sich das Profil von Peter2 an!   Senden Sie eine Private Message an Peter2  Schreiben Sie einen Gästebucheintrag für Peter2

Beiträge: 3701
Registriert: 15.10.2003

Win 10/64 Pro
AutoCAD MAP 3D 2018
BricsCAD 22

erstellt am: 12. Aug. 2010 13:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Zitat:
Original erstellt von fuchsi:
...Also mit Enter den Focus auf das nächste Steuerelement zuu legen, ist dich IMHOIn my humble oppinion (Meiner Meinung nach) eine Einzeiler?....

Nein, eben nicht. Ich hatte auf ein "Zauberattribut" gehofft, dass es anscheinend nicht gibt.


Zitat:
Original erstellt von fuchsi:
...Meinen Tipp probiert. Macht doch genau, was Du willst.

Ja, kein Zweifel. Aber wie erwähnt habe ich das Bedienkonzept umgebaut.

Peter

------------------
Für jedes Problem gibt es eine einfache Lösung.
Die ist aber meistens falsch. ;-)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz