| |
| 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
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 / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben:
|
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
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 / zitieren --> Unities abgeben: Nur für kathi-witt
|
gmk Mitglied Dipl.-Ing.(FH) Vermessung
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 / zitieren --> Unities abgeben: Nur für kathi-witt
|
kathi-witt Mitglied Student des Vermessungswesens
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 / zitieren --> Unities abgeben:
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
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 27. Apr. 2006 14:50 <-- editieren / zitieren --> Unities abgeben: Nur für kathi-witt
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
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 / zitieren --> Unities abgeben: Nur für kathi-witt
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
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 / zitieren --> Unities abgeben: Nur für kathi-witt
|
kathi-witt Mitglied Student des Vermessungswesens
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 / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben: Nur für kathi-witt
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 ansehen | Konstruktion, Visualisierung |
|
kathi-witt Mitglied Student des Vermessungswesens
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 / zitieren --> Unities abgeben:
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 |