dcl_Grid_CalcColumnWidth zu kleine Spalte

Started by SpEEDY, January 05, 2010, 01:44:59 AM

Previous topic - Next topic

SpEEDY

Hi Forum. (oder er gesagt Fred  :P )
Habe mal wieder was entdeckt was ich nicht ganz verstehe.

Der Befehl ââ,¬Å¾dcl_Grid_CalcColumnWidthââ,¬Å".
Beschreibung:  Diese Methode berechnet die Spaltenbreite in Pixel, um den angegebenen Text vollständig sichtbar zu machen.

Nur leider ist die errechnete Breite zu gering. Wörter wie ââ,¬Å¾Punktenameââ,¬Å" oder ââ,¬Å¾X-Koordinateââ,¬Å" passen nicht in die Spalte.
Man muss noch mal 15 drauf rechnen um die richtige Spalte zu erhalten. Um es nach vorziehen zu können was ich damit meine.
Bitte ich dich einfach mal das neue Samples Grid zu testen. Und einfach einen neue Spalte mit dem Namen ââ,¬Å¾Punktenameââ,¬Å" einzufügen.
Du wirst sehen, dass die Spalte zu klein ist.
Hoffe man versteht was ich meine.

Mit freundlichen Grüßen

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

Fred Tomke

Hallo,

ja, hab's mit Test und Test1 probiert. Tatsächlich ist die Spalte bei Test1 breiter als bei Test - aber wie Du schon sagtest, immer noch zu schmal.
Müssen wir mal nachfragen.

P.S. Hättest mir aber auch sagen können, dass die Liste der Spaltenausrichtung noch nicht germanisiert ist  ;)

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

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

SpEEDY

Hi Fred.
Ich hätte es dir sagen können, aber ich dachte der Fred der sieht das schon.  ;D 8) 8)
Ich stehle dir an dieser Stelle einfach noch eine Frage.
Ich erkläre dir einfach mal das Problem:
Ich füge in ein Grid Spalten ein. Ich kann so viele einfügen wie ich will. Mein Problem ist das wenn ich mehr Spalten eingefügt habe als die in das Grid passen kommt keine Scrollbar (ich hoffe das Ding heißt so). Erst wenn ich eine Spalte in der Breite ändere erscheint eine Scrollbar.

Letzt zu meiner Frage. Gibt es einen Befehl  womit ich das Erscheinen der Scollbar erzwingen kann?

Mit freundlichen Grüßen

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

Fred Tomke

Hi,

QuoteIch hätte es dir sagen können, aber ich dachte der Fred der sieht das schon.
Na suuuper... Habe neue odcl schon hochgeladen.

Quotewenn ich mehr Spalten eingefügt habe als die in das Grid passen kommt keine Scrollbar
Kann ich unter XP so nicht reproduzieren, sehr wohl aber unter Windows 7.

5.1.2.3: kein Scrollbalken unter XP und Win7
6.0.0.17: Scrollbalken sowohl unter XP als auch Win7

Kannst Du bitte einen Bug-Report schreiben?
Danke!

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

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

SpEEDY

#4
Ich mit meinem Schlechten Englisch. Bist du sicher!!  :P :P
Kann ich später mal probieren.  ;D
Ich verstehe es aber nicht ganz. Habe Vista und die 6.0.0.18 Version.
Also unter XP läuft es oder wie??

Noch einen Frage hätte ich noch.
Kann ich auf den Namen der Spalten abfragen? Also habe ein Programm wo man Spalten selber deferieren kann.
Beim Rausschreiben sollte oben der Name der Spalte angezeigt werden.
Die Spalten sind mit dem Befehl  dcl_Grid_InsertColumn erstellt worden.
Danke im Voraus. Und als letztes bevor ich es vergesse. Ein frohes neues Jahr.   ;D  ;D

Mit freundlichen Grüßen

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

Fred Tomke

Hi, das geht leider (noch) nicht. Siehe hier.
Fred
Fred Tomke
Dipl.-Ing. (FH) Landespflege

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

SpEEDY

Morgen Fred.
Finde ich schade das es die Funktion noch nicht gibt.
Aber egal muss ich halt warten. 8)
Muss ich dann halt anders lösen.

Vielleicht kannst du mir einen AutoLisp frage beantworten.
Was ich will ist einfach. Ich will einen Eintrag in einer Liste löschen.
Mit fällt blos nicht der Befehl an.

Beispiel:
(setq Liste (list ââ,¬Å¾Punktenameââ,¬Å" ââ,¬Å¾X-Koordinateââ,¬Å" ââ,¬Å¾Y-Koordinateââ,¬Å" ââ,¬Å¾Layerââ,¬Å"))
Jetzt möchte ich den Eintrag ââ,¬Å¾Y-Koordinateââ,¬Å" löschen.
Wie mache ich das am bessten?

Ich weiß das gehört nicht hier in das Forum.
Aber mir fällt wirklich nichts ein. ??? ???
Danke noch mal.

Mit freundlichen Grüßen

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

Fred Tomke

Hallo, SpEEDy,

hm, wenn der Wert nur einmal in der Liste vorkommt, würde ich es mit (vl-remove strName lstList) machen. Willst Du das Listenelement einer bestimmten Stelle entfernen, ohne dass Du weißt, ob der Name noch ein weiteres Mal vorkommt, würde ich es in einer Schleife mit while oder repeat lösen:

Code (autolisp) Select

(defun remove_listitem (intPos lstList / lstTemp)
  (if lstList
    (cond
      ((not intPos) lstList)
      ((zerop intPos) (setq lstList (cdr lstList)))
      ((>= (1+ intPos) (length lstList)) (setq lstList (reverse (cdr (reverse lstList)))))
      (T (repeat intPos (setq lstTemp (cons (car lstList) lstTemp) lstList (cdr lstList)))
       (setq lstList (append (reverse lstTemp) (cdr lstList))))
    ); cond
  ); if
  lstList
); remove_listitem


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

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

SpEEDY

Danke Fred für die Mühe.
Habe mein Programm so um geschrieben das ich Letzt genau weiß welchen Eintrag ich Löschen.
Jetzt kommt aber immer noch das Problem, dass ich nicht weiß wie.

Beispiel:
(setq Liste (list ââ,¬Å¾Punktenameââ,¬Å" ââ,¬Å¾X-Koordinateââ,¬Å" ââ,¬Å¾Y-Koordinateââ,¬Å" ââ,¬Å¾Layerââ,¬Å"))
Möchte jetzt den Eintrag 2 ( ââ,¬Å¾Y-Koordinateââ,¬Å") Löschen.

Bitte hilf mir komme einfach nicht weiter.  :'(

Und noch was zu OpenDCL.
Ich weiß ich gehe dir auf die Nerven. Ich weiß aber nicht wo ich das sonst fragen kann.  :'(  :-\

Ich wollte das der Benutzer einen Auswahl mit ssget in AutoCAD erstellen kann. Wenn er auf einen Button auf einer modalen Form Klickt.
Habe es mit close und dann mit show probiert. Leider blitz das Form nur. Es erscheint und ist sofort wieder weg.
Kann mir nicht erklären warum.

Danke schon mal im Voraus. Ich probier es jetzt mal mit hide.  ;D

Mit freundlichen Grüßen

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

Fred Tomke

Quote from: SpEEDY on January 06, 2010, 02:48:12 AM
(setq Liste (list „Punktename“ „X-Koordinate“ „Y-Koordinate“ „Layer“))
Möchte jetzt den Eintrag 2 ( „Y-Koordinate“) Löschen.
Warum probierst Du nicht einfach wie oben beschrieben
Code (autolisp) Select
(setq lstNewList (vl-remove "Y-Koordinate" '("Punktname" "X-Koordinate" "Y-Koordinate" "Layer"))

Quote from: SpEEDY on January 06, 2010, 02:48:12 AM
Ich wollte das der Benutzer einen Auswahl mit ssget in AutoCAD erstellen kann. Wenn er auf einen Button auf einer modalen Form Klickt.

Aus der Ferne kann ich es nicht beurteilen, was Du das evtl falsch machst. Ich empfehle aber das "Auswahl"-Beispiel in den Samples (selection.lsp).

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

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

Fred Tomke

Quote from: SpEEDY on January 05, 2010, 01:44:59 AM
Hi Forum. (oder er gesagt Fred  :P )
Habe mal wieder was entdeckt was ich nicht ganz verstehe.

Der Befehl ââ,¬Å¾dcl_Grid_CalcColumnWidthââ,¬Å".
Beschreibung:  Diese Methode berechnet die Spaltenbreite in Pixel, um den angegebenen Text vollständig sichtbar zu machen.

Nur leider ist die errechnete Breite zu gering. Wörter wie ââ,¬Å¾Punktenameââ,¬Å" oder ââ,¬Å¾X-Koordinateââ,¬Å" passen nicht in die Spalte.
Man muss noch mal 15 drauf rechnen um die richtige Spalte zu erhalten. Um es nach vorziehen zu können was ich damit meine.
Bitte ich dich einfach mal das neue Samples Grid zu testen. Und einfach einen neue Spalte mit dem Namen ââ,¬Å¾Punktenameââ,¬Å" einzufügen.
Du wirst sehen, dass die Spalte zu klein ist.
Hoffe man versteht was ich meine.

Mit freundlichen Grüßen

SpEEDY


Du wirst den Wert 15 hinzufügen müssen. Beachte aber, dass der geneigte Anwender seine Stile umstellt.
Siehe hier.

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

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

SpEEDY

#11
Quote from: Fred Tomke on January 06, 2010, 04:37:48 AM
Quote from: SpEEDY on January 06, 2010, 02:48:12 AM
(setq Liste (list „Punktename“ „X-Koordinate“ „Y-Koordinate“ „Layer“))
Möchte jetzt den Eintrag 2 ( „Y-Koordinate“) Löschen.
Warum probierst Du nicht einfach wie oben beschrieben
Code (autolisp) Select
(setq lstNewList (vl-remove "Y-Koordinate" '("Punktname" "X-Koordinate" "Y-Koordinate" "Layer"))

Quote from: SpEEDY on January 06, 2010, 02:48:12 AM
Ich wollte das der Benutzer einen Auswahl mit ssget in AutoCAD erstellen kann. Wenn er auf einen Button auf einer modalen Form Klickt.

Aus der Ferne kann ich es nicht beurteilen, was Du das evtl falsch machst. Ich empfehle aber das "Auswahl"-Beispiel in den Samples (selection.lsp).

Fred


Hi Fred.
Ich muss noch mal auf das Problem mit der Liste zurück. Habe endlich Zeit weiter zu machen.
Der Befehl den du mir gesagt hast ist schon gut.  Das Problem ist das er mir alle mit den gleichen Namen „rausschmeißt“.
Ich will aber einen bestimmten Wert  an einer Stelle raus nehmen.
Z.b
(setq Liste (list „Punktename“ „X-Koordinate“ „Y-Koordinate“ „Layer“))
Jetzt möchte ich gezielt den 3 Eintrag raus nehmen. In diesen Fall „Y-Koordinate“ wenn sich jetzt in der Liste noch ein Eintrag mit dem gleichen Namen drin ist soll er auch drin bleiben.

Mir fehlt einfach nichts ein wie ich das machen soll.
Kannst du mir helfen.

Mit freundlichen Grüßen

SpEEDY

PS:
Übersetze gerade deine Samples. :-D
Es ist unmöglich etwas Idiotensicher zu machen, weil Idioten so genial sind!

Fred Tomke

Hi, SpEEDY,

durchsuche mal diese Seite hier nach remove_listitem .   ;)

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

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

SpEEDY

Fred was tust du mir bloss wieder an.  ;D ;D

Also ich habe nach remove_listitem gesucht und bekomme nur diesen Beitrag.
Habe nach remove gesucht und bekomme unzählige Beiträge.
Komm schon gib nur noch einen Tipp wo das Steht.  :'(
Habe keinen lust alle Beiträge durchzusuchen.

mfg

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

Fred Tomke

Quote from: SpEEDY on January 21, 2010, 02:05:28 AM
Also ich habe nach remove_listitem gesucht und bekomme nur diesen Beitrag.

Hm, klick mal hier.
Oder Strg-F und remove_listitem eingeben und dieses Topic (das ist vielleicht genauer) durchsuchen.

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

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