Gruß aus Bad Ischl !
Wir fahren im Vermessungsbüro vorläufig noch mit AutoCAD 2005 und planen heuer ein gröberes Upgrade, auch bei unseren selbstgeschnitzten LISP-Tools. Für eine feinere Oberfläche dieser Makros habe ich mir eben OpenDCL 6 heruntergeladen und installiert.
Der Editor, Support und Übersetzung sind sehr ansprechend, die Muster-Dialoge überzeugend.
Beim ersten neu erstellten Projekt funktionierte aber die Weiterleitung von Maus-Klicks an die entsprechenden Lisp-Funktionen nicht. Diese selbst sind aber OK (bei statischem Dialog in der Commando-Zeile eingegeben). Bei der Fehlersuche habe ich das Beispiel "Modeless" (das ja korrekt arbeitet) umgebaut und habe den EXIT-Button geklont. Der funktioniert jetzt wie sein Original, obwohl gar keine LIsp-Funktion für ihn existiert. Dafür reagiert aber ein neuer Button samt Funktion überhaupt nicht. Bei den Objekt-Eigenschaften kann ich keine Ursache finden.
Zur Demo hätte ich 4 Files vorbereitet.
Danke
Hallo, Arcuso,
herzlich willkommen im OpenDCL-Forum.
Zunächst was Administratorisches: gehe mal in Dein
Profil.
In den
Profil-Einstellungen findest Du einen Menüpunkt
Benutzerkonto. Dort gibt es eine Auswahlliste
Sprachdatei. In der Liste findest Du zweimal German. Bitte wähle das untere German aus, um die Umlaute korrekt anzuzeigen.
Um Dein Problem zu lösen, wäre tatsächlich ein Beispiel sinnvoll - denn mir fallen ad hoc jede Menge Gründe ein, die ein Funktionieren scheinbar unmöglich machen.
QuoteZur Demo h�tte ich 4 Files vorbereitet.
Dann freue ich mich auf die Demos. ;)
VG, Fred
Hallo Arcuso und Willkommen im Forum
Endlich kommt hier ein wenig Leben rein. Aber nur ein wenig.
Wie Fred schon sagt einen Demo wer am besten um dir einen gezielte Lösung zu nennen.
Mir ist aber gerade Langweilig und ich nenne dir schon ein Paar Sachen die du in OpenDCL Studio beachten solltest um zum richtigen Ergebnis zu kommen.
Wenn es um das klicken einer Schaltfläche geht muss folgendes beachtet werden.
Fred korrigiere mich wenn ich Falsch liege.
1.
Beim dem Register Karte "Ereignisse". Muss eine haken bei "Clicked" gemacht werden.
Falls der Button Kopiert ist und schon ein Haken dir ist. Sollte man ihn einmal raus nehmen und wieder rein tun. Den so Aktualisiert sich der Name des Befehls in der Lisp-Routine.
(http://www.imgbox.de/users/public/thumbnails/x18008x250_t.gif) (http://www.imgbox.de/?img=x18008x250.png)
2.
Nach dem Haken muss auf jedenfall das ODCL Pojekt gespeichert werden.
3.
In der Lisp-Routine muss folgender Code ausgeführt werden.
(defun c:Unbenannt_Dialog1_Textschaltfläche1_OnClicked (/);hier muss natürlich der Name deines Form und der Name deine Button stehen. Einfach auf Kopieren in den "Ereignissen" klicken.
(dcl_MessageBox "OK");nur zum testen
)
Wenn du alles richtig gemacht hast sollte es funktionieren.
Vergiss aber nicht das laden deinen ODCL-Projektes und der ODCL befehle. Am Anfang deiner Routine.
(command "OpenDCL")
(dcl_Project_Load "name deines Projektes" T)
(dcl_Form_show Erst eder names des Prokektes dann der Name des Forms)
Hoffe du kannst damit was anfangen. Wenn du die Demo zu Verfügung stellst kann man mehr sagen.
Mfg
SpEEDY
Hi SpEEDY, vielen Dank für Deine Unterstützung.
Quote from: SpEEDY on January 12, 2010, 12:19:14 PM
Mir ist aber gerade Langweilig [...]
Da kann ich aber Abhilfe schaffen: schau mal hier (http://www.opendcl.com/forum/index.php?topic=1092.msg5794#msg5794). ;D
Hi, Arcuso,
neben der Idee von SpEEDY gäbe es da noch das Detail, dass in nicht-modalen Dialogen Ereignisse synchron oder asynchron ausgeführt werden. Das könnte am Ende zu dem scheinbaren Effekt führen, dass ein Ereignis nicht ausgeführt wird. Eine kleine Erklärung findest Du hier (http://www.opendcl.com/forum/index.php?topic=1092.msg5866#msg5866).
VG,
Fred
Morgen Fred.
Ich kann nur sagen du und deinen Samples. ;D
Ich weiß nicht um ich zu dem ÃÅ"bersetzen komme.
Vielleicht ende nächster Woche. Kann ich dir aber nicht an dieser Stelle Versprechen.
Was wir aber auch noch ÃÅ"bersetzen sollten bzw. neu schreiben. Wäre das Beginner Tutorial auf der Hauptseite.
Aber dazu später mehr.
Erstmal muss Arcuso geholfen werden. ;D
Mit freundlichen Grüßen
SpEEDY
Quote from: SpEEDY on January 13, 2010, 12:31:49 AM
Was wir aber auch noch ÃÅ"bersetzen sollten bzw. neu schreiben. Wäre das Beginner Tutorial auf der Hauptseite.
Gute Idee!
Aaaalso, Arcuso sandte mir zwischenzeitlich seine Demos.
1.: Kopie-von-Schließen-Schaltfläche: entspricht genau dem Problem, das SpEEDY schilderte. Copy&Paste eines Steuerelements kopiert zunächst auch die Ereignisfunktionsnamen. Beim ersten Aktivieren eines Ereignisses wird aus dem Steuerelementvariablennamen und dem Ereignisnamen ein Befehlsname definiert und im Eingabefeld unter der Liste der Ereignisse ergänzt. Es wird also der Funktionsname nicht automatisch verändert, wenn das Steuerelement umbenannt oder kopiert wird, denn es kann gewollt sein, dass verschiedene Auslöser die gleiche Ereignisfunktion auslösen (siehe OnKillFocus oder OnReturnPressed in einem Eingabefeld oder Entf-Taste innerhalb eines ListView und Löschen-Schaltfläche). Lösung von SpEEDY ist demnach anzuwenden.
2. Neuer Knopf-Schaltfläche. Hier hast Du das Ereignis OnClicked noch nicht aktiviert!
Soweit fürs erste.
VG, Fred
Ja und zum zweiten Beispiel, Arcuso, kann ich folgendes sagen:
Du kannst nur Ereignisse verwenden, die auch existieren. Du versuchst beim Doppelklick in ein Eingabefeld die Vordergrundfarbe zu ändern. Das wird nicht so funktionieren, weil es für ein Textfeld kein OnDblClick-Ereignis gibt. Man könnte aber ein OnSetFocus und ein OnKillFocus abfangen.
Es gibt zwar ein onMouseMove, damit aber ein Doppelklick-Ereignis abzufangen, halte ich für aufwändig. Außerdem wird damit sehr viel Traffic generiert.
Ich habe mal ein Beispiel angehangen.
Fred