dcl_Grid_SetCurCell frage.

Started by SpEEDY, October 09, 2009, 02:01:15 AM

Previous topic - Next topic

SpEEDY

Hallo Forum.
Habe einen lange zeit nicht mit Open DCL gearbeitet.
Sitze jetzt an einem Projekt mit Grip Bearbeitung.
Komme da nicht mehr weiter, vielleicht kann mir jemand von euch helfen.
Und zwar fühle ich die Zeilen einer Grip mit den Befehl.

(defun listefuehlen ()

  (setq listezeile (nth 0 zeile))
  (dcl_Grid_Insertrow BGR-Tool_FB_BGR_ERSTELLEN_Liste listeldfnrzaehler (rtos listeldfnrzaehler 2 0) listezeile)
  (setq listeldfnrzaehler (+ listeldfnrzaehler 1))
 
)

Dies funktioniert auch.
Was ich jetzt aber möchte ist.
Das wenn ich irgend wo auf einen Zeile klicke. Diese mit OnSelChanged ausgelöst wird.
Habe das Problem, wenn ich auch die erste Zeile klicke wird der Befehl OnSelChanged zweimal ausführt. Weil er jede Zeile durchgeht.
Wie kann ich das machen das der Befehl sich nur einmal ausführt.

Habe in der Demo Datei geschaut und den Befehl dcl_Grid_SetCurCell gefunden.
Mit dem komme ich aber nicht ganz zurecht.
Wo muss ich den hinein schreiben. In den OnSelChanged oder Insertrow Befehl?

Hoffe man kann das Problem verstehen und mir jemand helfen.

Danke im voraus.

Speedy

Es ist unmöglich etwas Idiotensicher zu machen, weil Idioten so genial sind!

Fred Tomke

#1
Hi, SpEEDY,

hm, ich hoffe ich habs verstanden. Vielleicht würde ich folgendes probieren:

Code (autolisp) Select
(defun c:BGR-Tool_FB_BGR_ERSTELLEN_Liste_OnSelChanged (intRow intCol)
  (if (or (not intLastRow) (/= intLastRow intRow))  ; intLastRow ist global zu diesem Event
    (progn
      (setq intLastRow intRow)
      (machwat)
    ); progn
  ); if
); BGR-Tool_FB_BGR_ERSTELLEN_Liste


Ansonsten könnte ein kleines Beispiel Deinerseits helfen.  ;)

Fred
Fred Tomke
Dipl.-Ing. (FH) Landespflege

[ landscaper - landscape developer - digital landscape and urban design]

SpEEDY

Hi Fred,
danke für die Schnelle Hilfe.
Leider habe ich das Problem schlecht erklärt.
Der Code den du mir geschickt hast geht leider nicht. :P

Habe dir ein Video gemacht.
Da sieht man es besser.
Man sieht das wenn ich auf die zweite Spalte klicke der OnSelChanged befehl sich einmal auslöst. Wenn ich aber auf die erste Spalte klicke löst sich der Befehl zwei mal aus.
Dies möchte ich gerne verhindern. Aber weiß nicht wie ich das machen kann.

Danke noch mal für die mühe.


SpEEDY
Es ist unmöglich etwas Idiotensicher zu machen, weil Idioten so genial sind!

Fred Tomke

Hm, da kom es vielleicht auch darauf an, was im Event so passiert bzw. welche weiteren Events ausgelöst werden und was darin passiert. Für den Fall, dass andere Events aktiv sind, deaktiviere alle Events des Grid (bis auf OnSelChanged), speichere die ODCL und lade die ODCL erneut (dcl_project_load MyProj T). Bleibt es dabei, könnte es ein Bug sein. Welche Runtime-Version verwendest Du?

Bestünde die Möglichkeit, sich per Fernwartung zuzuschalten und gemeinsam in den Code zu schauen?

Wir nutzen den TeamViewer (www.teamviewer.de).

VG,
Fred
Fred Tomke
Dipl.-Ing. (FH) Landespflege

[ landscaper - landscape developer - digital landscape and urban design]

SpEEDY

Hi Fred,
habe mir gerade das neue Open DCL Studio [6.0.0.7] runtergeladen.
Da mein Projekt recht groß ist und auch schlecht geschrieben will ich dir das nich antun.
Daher habe ich auf die schnelle ein Testprojekt gemacht.
Dort passiert leider das gleiche.  :-\

Mit freundlichen Grüßen

SpEEDY
Es ist unmöglich etwas Idiotensicher zu machen, weil Idioten so genial sind!

Fred Tomke

Hi, ich hau mir das heute abend an. Ich will noch schnell etwas abschließen.

QuoteDa mein Projekt recht groß ist und auch schlecht geschrieben will ich dir das nich antun.
Für solche Fälle und für Fälle, wo besondere Lizenzen und Systemumgebungen dahinterliegen, biete ich dann Unterstützung via TeamViewer an.

VG, Fred
Fred Tomke
Dipl.-Ing. (FH) Landespflege

[ landscaper - landscape developer - digital landscape and urban design]

Fred Tomke

Hi, das ist vielleicht ein Bug. Aber es gibt einen Workaround: setze die Eigenschaft RowHeader auf False. Dann wirds nur einmal ausgelöst.
Ich werde das mal erfragen und als Bug-Report anlegen.

VG, Fred
Fred Tomke
Dipl.-Ing. (FH) Landespflege

[ landscaper - landscape developer - digital landscape and urban design]

Fred Tomke

Hi ein weiterer Workaround wäre dennoch, abzufangen, ob sich Spalten- und/oder Zeilennummer geändert hat. Ist beides gleich, dann soll er nichts tun.

VG, Fred
Fred Tomke
Dipl.-Ing. (FH) Landespflege

[ landscaper - landscape developer - digital landscape and urban design]

Fred Tomke

Hallo,

das war ein Bug. Ist in Alpha 8 behoben.

VG, Fred
Fred Tomke
Dipl.-Ing. (FH) Landespflege

[ landscaper - landscape developer - digital landscape and urban design]

SpEEDY

Fred, danke für die Antworten.
Die Alpha 8 kann ich die schon runterladen oder muss ich noch warten?

mfg

SpEEDY
Es ist unmöglich etwas Idiotensicher zu machen, weil Idioten so genial sind!

Fred Tomke

Hi Speedy,

bitte beobachte einfach diese Seite: https://sourceforge.net/projects/opendcl/files/

Meistens stehen zum Wochenbeginn neue Versionen zum Testen bereit. Bitte beachte: Alpha-Versionen dienen zum Testen und sind nicht für die Produktivumgebung gedacht. Bitte zunächst in Kopien deiner ODCL-Dateien testen.

Alpha 8 steht zum Download bereit.

Fred
Fred Tomke
Dipl.-Ing. (FH) Landespflege

[ landscaper - landscape developer - digital landscape and urban design]

SpEEDY

Hi, Fred.
Kannst du mir vielleicht noch mal helfen.
Sitze zur zeit an einem anderen Rechner.
Wollte mein Projekt weiter machen. Aber habe irgendwas falsch gemacht.
Wenn ich jetzt ein Opendcl projekt starte kommt der Fehler.

Nicht behandelter Ausnahmefehler 7CFF627 (Accress Violation Reading Oxc7adc2f) bei Adresse 7C947453h

Was kann ich da machen?

Habe jetzt die alpha 8 bei meinem alten Rechner getestet.
Musste leider feststellen, dass sich meine Projekte nicht mehr öffnen lassen.
Suche da noch nach dem Fehler. Oder liegt das an der alpha?

Muss vielleicht noch auf die neue Alpha warten.  :P

Mit freundlichen Grüßen

SpEEDY


Es ist unmöglich etwas Idiotensicher zu machen, weil Idioten so genial sind!

Fred Tomke

Hm, ich habe Alpha 8 noch nicht getestet. Der Ausnahmefehler könnte aber auftreten, wenn Du eine Projektdatei, die Du in einer jüngeren ODCL-Version gespeichert hat (z.B. auf Rechner 1 mit Alpha 8) auf einem anderen Rechner lädst, auf dem eine ältere Runtime (z.B. auf Rechner 2 mit Alpha 7) installiert ist. Eine in Alpha 8 gespeicherte ODCL kann u.U. in einer älteren Studio-Version z.B. Alpha 7 nicht geöffnet werden.

VG, Fred

Fred Tomke
Dipl.-Ing. (FH) Landespflege

[ landscaper - landscape developer - digital landscape and urban design]

SpEEDY

#13
Guten Morgen Fred,
ich hoffe ich gehe dir nicht auf die Nerven mit der ganzen Fragerei.

Also habe folgendes herausgefunden. Du hattest recht mit den unterschiedlichen Versionen.
Nur war es bei mir so das ich das Projekt in einer alten Version gespeichert habe. Und dieses nicht mit der Neuen Version öffnen konnte.  Nach dem ich das Projekt in der alpha 8 gespeichert habe. Kamm der Fehler nicht mehr. Dafür öffnet sich das Projekt nicht in ACAD. Man für den Befehl aus. Aber es geschieht nicht. Weder einen Fehler Meldung noch was. Habe es mit einem ganz neuen Projekt probiert. Leider das selbe Spiel.
Gibt es vielleicht einen neuen Befehl für das Öffnen des Projekt?

Das war Kurz  8) die Beschreibung was ich herausgefunden habe.
Wollte dich fragen ob du vielleicht noch eine Stabile Version 6 hast.

Wollte nicht auf die 5er Version zurück gehen.

Mit freundlichen Grüßen

SpEEDY

:Edit

Ich musste grade feststellen das auch die Samples nicht gehen. Ich vermute mal es ist die version.
Na, egal werde mit einer alten 5 Version weiter arbeiten. Bis die neue apha da ist.

mfg
Es ist unmöglich etwas Idiotensicher zu machen, weil Idioten so genial sind!

Fred Tomke

Hi, SpEEDY,

hm, was mich irritiert, dass bisher noch kein anderer das Problem hatte. Und auch ich kann meine alten ODCL5-Projekte im ODCL6 öffnen. Kannst Du eine ODCL-Datei hochladen oder an f.tomke@opendcl.de senden, bitte? Hast Du da ein ActiveX-Control drin (also ein nicht OpenDCL-internes Control).

Ich bin grad in München und düse heute nachmittag zurück nach Berlin. Bin dann wieder im Büro.

VG, Fred
Fred Tomke
Dipl.-Ing. (FH) Landespflege

[ landscaper - landscape developer - digital landscape and urban design]