Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Abfangen fehlerhafter Benutzereingaben

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:  Abfangen fehlerhafter Benutzereingaben (643 mal gelesen)
kathi-witt
Mitglied
Student des Vermessungswesens


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

Beiträge: 31
Registriert: 23.11.2005

AutoCAD 2000
Computer: "ACPI-PC (Advanced Configuration and Power Interface)"
Intel Pentium III, 1 GHz, 640 MB RAM
Grafikkarte: "NVIDIA RIVA TNT2 Model 64/Model 64 Pro (Microsoft Corporation)"
Betriebssystem: Windows XP Professional Service Pack 1

erstellt am: 27. Apr. 2006 13:34    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


Dialog_EinlesenMitgeladenemFormat.jpg

 
Hallo,

hab da mal eine Frage:

Wie kann ich es in diesem Dialogfenster (siehe Anhang) realisieren, dass

a) das Anklicken des 'OK'-Buttons nicht möglich ist, solange nicht alle Felder der Edit-Boxen ausgefüllt sind, insbesondere das Feld mit der zu öffnenden Datei, denn beim Dateiformat und dem Zeichnungsmaßstab habe ich Vorgabewerte, die beim Aufruf der Dialogbox bereits in den Edit-Boxen stehen?

Oder

b)das beim Anklicken des OK-Buttons ein neues Dialogfenster erscheint, welches den User darüber informiert, dass noch Benutzereingaben fehlen und das dann bewirkt, dass der User wieder in die Dialog-Box zurückkommt und die Eingaben vornehmen kann?

Kann mir da jemand helfen?

Lieben Gruß

Kathrin

------------------
"Es liegt in der menschlichen Natur, vernünftig zu denken und unlogisch zu handeln." Anatole France

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

kathi-witt
Mitglied
Student des Vermessungswesens


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

Beiträge: 31
Registriert: 23.11.2005

AutoCAD 2000
Computer: "ACPI-PC (Advanced Configuration and Power Interface)"
Intel Pentium III, 1 GHz, 640 MB RAM
Grafikkarte: "NVIDIA RIVA TNT2 Model 64/Model 64 Pro (Microsoft Corporation)"
Betriebssystem: Windows XP Professional Service Pack 1

erstellt am: 27. Apr. 2006 13:43    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


Dialog_EinlesenMitgeladenemFormat.jpg

 
Sorry, falscher Screenshot...
Hier der Richtige.

Kathrin

------------------
"Es liegt in der menschlichen Natur, vernünftig zu denken und unlogisch zu handeln." Anatole France

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 27. Apr. 2006 13:51    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 kathi-witt 10 Unities + Antwort hilfreich

Hallo Kathrin,
Schau Dir doch mal den Befehl mode_tile an! (-> Hilfe)
Code:
(mode_tile "accept" 1)
würde z. B. den OK-Knopf deaktivieren (wenn der accept heist).

Grüsse, Henning

------------------
VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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

gmk
Mitglied
Dipl.-Ing.(FH) Vermessung


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

Beiträge: 667
Registriert: 23.10.2002

Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM

erstellt am: 27. Apr. 2006 13:51    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 kathi-witt 10 Unities + Antwort hilfreich

zu a) evtl mit is_enabled
zu b) vor done_dialog eine bedingung einbauen (if, cond)

ciao georg

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

kathi-witt
Mitglied
Student des Vermessungswesens


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

Beiträge: 31
Registriert: 23.11.2005

AutoCAD 2000
Computer: "ACPI-PC (Advanced Configuration and Power Interface)"
Intel Pentium III, 1 GHz, 640 MB RAM
Grafikkarte: "NVIDIA RIVA TNT2 Model 64/Model 64 Pro (Microsoft Corporation)"
Betriebssystem: Windows XP Professional Service Pack 1

erstellt am: 27. Apr. 2006 14:36    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 wronzky:
Hallo Kathrin,
Schau Dir doch mal den Befehl mode_tile an! (-> Hilfe)
Code:
(mode_tile "accept" 1)
würde z. B. den OK-Knopf deaktivieren (wenn der accept heist).

Grüsse, Henning


Hallo Henning,

das habe ich schon probiert:

Code:

(action_tile "inpfile" "(check_editbox)")
[...]
(defun check_editbox ()
(if (= 0 (get_tile "inpfile" "value"))
(mode_tile "accept" 1)
(mode_tile "accept" 0)
)
)

Aber irgendwie funktioniert das nicht.
Liegt das vielleicht daran, dass ich den von ACAD vorgefertigten 'OK'-Button in der ok-cancel Kombi benutze???
Oder ist der Wert einer leeren Edit-Box nicht 0 sondern irgendwie anders (wegen meiner if-Anweisung)?

Gruß

Kathrin

------------------
"Es liegt in der menschlichen Natur, vernünftig zu denken und unlogisch zu handeln." Anatole France

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 27. Apr. 2006 14:50    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 kathi-witt 10 Unities + Antwort hilfreich

Hallo Kathrin,

das (get_tile "inpfile" "value") ist definitv falsch. Es reicht (get_tile "inpfile").

Als Rückgabe erhältst du bei edit_boxen generell Strings - wenn also nichts drin steht ist es ein Leerstring ""

(if (= "" (get_tile "inpfile")) sollte es dann richtig heißen. Was aber, wenn der Anwender das Feld mit der Leertaste bearbeitet-oder keine plausiblen Werte eingibt? Dafür solltest du eine Prüfroutine schreiben, so dass es dann heißen könnte:
(if (checkINPFILEinput(get_tile "inpfile"))

due SUB gibt entweder T oder nil zurück.

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

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: 27. Apr. 2006 15:08    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 kathi-witt 10 Unities + Antwort hilfreich


beispiel_dcl_error.gif

 
Hallo Kathrin,
ich habe mal ein Beispiel für b).tens angehängt. Der Aufruf des Dialogfensters läuft in einer while-Schleife, die erst bei erfolgreicher Prüfung, in meinem Fall der Radius, der größer Null sein muß, beendet werden kann, oder natürlich mit Abbrechen. Ob das nur eine elegante Methode ist oder nicht, das sollen anderen beurteilen, aber es funzt.

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

Jörn

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: 27. Apr. 2006 15: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 Nur für kathi-witt 10 Unities + Antwort hilfreich


beispiel_dcl_error.lsp.txt

 
und hier nochmal die LSP-Datei, mit 2 Dateianhängen ging das irgendwie nicht.

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

Jörn

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

kathi-witt
Mitglied
Student des Vermessungswesens


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

Beiträge: 31
Registriert: 23.11.2005

AutoCAD 2000
Computer: "ACPI-PC (Advanced Configuration and Power Interface)"
Intel Pentium III, 1 GHz, 640 MB RAM
Grafikkarte: "NVIDIA RIVA TNT2 Model 64/Model 64 Pro (Microsoft Corporation)"
Betriebssystem: Windows XP Professional Service Pack 1

erstellt am: 27. Apr. 2006 15:52    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 Brischke:

(if (= "" (get_tile "inpfile")) sollte es dann richtig heißen. Was aber, wenn der Anwender das Feld mit der Leertaste bearbeitet-oder keine plausiblen Werte eingibt? Dafür solltest du eine Prüfroutine schreiben, so dass es dann heißen könnte:
(if (checkINPFILEinput(get_tile "inpfile"))

due SUB gibt entweder T oder nil zurück.

Grüße Holger



Hallo Holger,

mit (if (= "" (get_tile "inpfile")) funktioniert es jetzt. Danke.

Aber wie sieht so eine Prüfroutine denn aus und was frag ich da alles ab? Soll ich darin zum Test versuchen, die eingegebene Datei zu laden oder wie?

Gruß

Kathrin

------------------
"Es liegt in der menschlichen Natur, vernünftig zu denken und unlogisch zu handeln." Anatole France

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 27. Apr. 2006 16:06    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 kathi-witt 10 Unities + Antwort hilfreich

Zitat:
Soll ich darin zum Test versuchen, die eingegebene Datei zu laden oder wie?

Hi Kathrin,
z. B. mit findfile testen, ob die Datei gefunden wird. es müsste also ein

Code:
(if (findfile (get_tile "inpfile"))...
reichen.

Grüsse, Henning

------------------
VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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



Junior-Hydraulikkonstrukteur (m/w/d)

Die Leifeld Metal Spinning GmbH ist ein weltweit führendes Unternehmen in der Entwicklung und Fertigung von Werkzeugmaschinen der spanlosen Metallumformung. Die Traditionsmarke Leifeld ist seit über einem Jahrhundert Garant für Qualität und Innovation "Made in Germany". Seit dem Zusammenschluss mit Nihon Spindle finden Sie bei uns das Beste aus zwei Welten: die Flexibilität eines Mittelständlers ...

Anzeige ansehenKonstruktion, Visualisierung
kathi-witt
Mitglied
Student des Vermessungswesens


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

Beiträge: 31
Registriert: 23.11.2005

AutoCAD 2000
Computer: "ACPI-PC (Advanced Configuration and Power Interface)"
Intel Pentium III, 1 GHz, 640 MB RAM
Grafikkarte: "NVIDIA RIVA TNT2 Model 64/Model 64 Pro (Microsoft Corporation)"
Betriebssystem: Windows XP Professional Service Pack 1

erstellt am: 27. Apr. 2006 16:27    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

Vielen Dank an euch alle.
Mit findfile und mode_tile funktioniert es jetzt prima.

Danke für eure Hilfe. Bis demnächst...

Liebe Grüße

Kathrin

------------------
"Es liegt in der menschlichen Natur, vernünftig zu denken und unlogisch zu handeln." Anatole France

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