| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: DCL Ansteuerung (921 mal gelesen)
|
fuchsi Mitglied Programmierer c#.net Datawarehouse
   
 Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 28. Mai. 2004 12:20 <-- editieren / zitieren --> Unities abgeben:         
nach langer Zeit muss ich mich wiedermal mit DCL beschäftigen (oh Graus) ich hab jetzt das Problem mit einem Slider. muss man da wirklich die MIN, MAX und INCREMENT fix in der DCL verdrahten. Ich brächte das so, dass ich es zur Programmlaufzeit ändern kann. Ich hab schon in der Hilfe gewühlt wie ein Berserker, hab aber noch nichts gefunden. die einzigen Befehle um Tiles zu ändern ist doch Set_tile und mode_tile, aber wie ändere ich Attribute ? : slider { key = "4-SLIDER"; action = "(AHC_BNASK-S 4 $value)"; width = 16; min_value = 10; max_value = 100; small_increment = 1; value = "50"; is_tab_stop = false; } ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
valerich Mitglied Programmierer

 Beiträge: 12 Registriert: 22.09.2003
|
erstellt am: 28. Mai. 2004 12:55 <-- editieren / zitieren --> Unities abgeben:          Nur für fuchsi
Hallo fuchsi, hier ist ein Ausschnitt aus Help: When you handle actions and callbacks from sliders, your application should check the reason code that it receives along with the callback. This is not required, but it is a good idea because it can reduce processing. A callback occurs when an increment boundary on a slider is crossed. For example, if the slider is defined with a minimum value of 0, a maximum value of 10, and both small and big increments of 1, a callback is issued 10 times as the user traverses from one end of the slider to the other. The following function shows the basic scheme of a function to handle a slider. It is called from an action expression associated with the slider tile. The slider_info tile used by the function displays the slider's current value in decimal form. Often such a tile is an edit box as well, which gives users the choice of either manipulating the slider or entering its value directly. If a user enters a value in slider_info, your edit box callback should update the value of the slider as follows: (action_tile "myslider" "(slider_action $value $reason)" ) (action_tile "slider_info" "(ebox_action $value $reason)" ) . . . (defun slider_action(val why) (if (or (= why 2) (= why 1)) ; Check reason code. (set_tile "slider_info" val) ; Show interim result. ) ) (defun ebox_action(val why) (if (or (= why 2) (= why 1)) ; Check reason code. ( set_tile "myslider" val) ; Show interim result. ) ) Gruß Serghei
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
   
 Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 29. Mai. 2004 13:00 <-- editieren / zitieren --> Unities abgeben:         
ja das weiss ich, ich hab aber nach was anderem gefragt. ich möchte aufgrund eines ereignisses ZUR LAUFZEIT den min und max wert verändern können. z.B.: min = 0 : max = 100, aktiviert jetzt der benutzer ein kontrollkästchen , soll sich der max-wert auf 150 ändern ! ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 29. Mai. 2004 14:29 <-- editieren / zitieren -->
Zitat: Original erstellt von fuchsi:
z.B.: min = 0 : max = 100, aktiviert jetzt der benutzer ein kontrollkästchen , soll sich der max-wert auf 150 ändern !
Wo ist das Probem? Wenn Du im DCL-Feld die Min/Max Werte angezeigt haben willst, dann mach' das am besten in einem Textfeld. Die DCL-Werte für Min/Max lässt Du völlig unabhängig immer auf 0 und 100, und rechnest diese erst durch Deine Applikation auf die benötigten Werte um. Nach Betätigen des Häkchens durch den Anwender wird also lediglich dieser Umrechungsfaktor geändert. Gruß Tom Berger ------------------ Architekturwerkzeuge für AutoCAD: http://www.archtools.de |
fuchsi Mitglied Programmierer c#.net Datawarehouse
   
 Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 01. Jun. 2004 11:10 <-- editieren / zitieren --> Unities abgeben:         
@tom.berger ja das wär eine Möglichkeit, das Problem ist dann "nur" das increment, ein click auf den pfeil rechts wäre eine erhähung um 1, würd ich das mit nem umrechnungsfaktor machen, wärs dann z.B.: 1.5 wenn uich vno 0 bis 100 ausgehe, und dann per faktor bis 150 "anzeige" , frage ich mich wie man da dann genau 101 einstellt ?? ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 01. Jun. 2004 11:51 <-- editieren / zitieren -->
Zitat: Original erstellt von fuchsi: wenn uich vno 0 bis 100 ausgehe, und dann per faktor bis 150 "anzeige" , frage ich mich wie man da dann genau 101 einstellt ??
Du hast es doch noch nicht verstanden: der Regler geht immer nur von 0 bis 100, oder von mir aus auch von 0 bis 1. Umgestellt wird nur der Faktor, um daraus den wirklichen Wert zu erhalten, bzw um aus dem wirklichen Wert den Anzeigewert des Reglers zu erhalten. Soll also der Regler nun die wirklichen Werte (WW) von 0 bis 150 anzeigen, so entspricht der Vollausschlag von 100 Anzeigewerten (AW) 150. Allgemein: AW/WW=100/150 Daraus kannst Du Dir immer den wirklichen Wert aus dem Anzeigewert errechnen oder den Anzeigewert für einen WW. Den AW für WW=101 ermittelst Du einfach so: x=100*101/150 Tom Berger ------------------ Architekturwerkzeuge für AutoCAD: http://www.archtools.de |