| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
|
Autor
|
Thema: Probleme bei mehrspaltiger Listbox (5003 mal gelesen)
|
kiltswitch Mitglied
 
 Beiträge: 189 Registriert: 27.10.2004 Windows 98 (Version 4.10.1998) AutoCAD 2000i
|
erstellt am: 30. Nov. 2004 08:12 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich will Daten in einer Listbox mehrspaltig darstellen lassen, aber irgendwie klappt das nicht. Habe schon einiges getestet, die Hilfe bemüht, im Forum gesucht usw. Vielleicht hat jemand einen Tipp, was an meinem Code falsch ist?
Code:
Private Sub cmdAuslesen_Click() Open "Blockauslesung" For Output As #1 'Öffnen der Datei zur Ausgabe 'Variablendeklaration Dim elem As AcadEntity lstBlockdaten.ColumnCount = 2 'Festlegung von 2 Spalten 'Schleife für jedes Element im Modellbereich For Each elem In ThisDrawing.ModelSpace 'If wird ausgeführt, wenn Element eine Blockreferenz ist If TypeOf elem Is IAcadBlockReference Then 'Ausgabe der Zeilen mit den Werten Write #1, "Blockname", elem.Name lstBlockdaten.Column (0,0) = elem.Name 'hier gibts die Probleme - ergibt den Wert nicht in Spalte 0 und Zeile 0 aus, sondern bringt die Fehlermeldung "Laufzeitfehler 381 - Eigenschaft Column konnte nicht gesetzt werden - Index des Eigenschaftenfeldes ungültig" Write #1, "Block-ID", elem.ObjectID End If Next Close #1 'Datei schließen End Sub
[Diese Nachricht wurde von kiltswitch am 30. Nov. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BloodyMess Mitglied Applicationingenieur
  
 Beiträge: 604 Registriert: 06.06.2002 AutoCAD Map 3D 2005 Win XP pro
|
erstellt am: 30. Nov. 2004 12:02 <-- editieren / zitieren --> Unities abgeben:          Nur für kiltswitch
Es gibt keine Eigenschaft 'Column'. Im Überwachungsfenster kannst Du sehen, auf welche Du Zugriff hast und das sind bei einem Listfeld. BackColor BorderColor BordersSuppress BorderStyle BoundColumn BoundValue Cancel ColumnCount ColumnHeads ControlSource ControlTipText Default DisplayStyle Enabled Font FontBold FontItalic FontName FontSize FontStrikethru FontUnderline FontWeight ForeColor Height HelpContextID IMEMode IntegralHeight Left ListCursor ListStyle ListWidth Locked MatchEntry MouseIcon MousePointer MultiSelect Name RowSource RowSourceType SpecialEffect TabIndex TabStop Tag Text TextAlign TextColumn Top TopIndex Valid Value Visible Width Gruß TP
------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kiltswitch Mitglied
 
 Beiträge: 189 Registriert: 27.10.2004 Windows 98 (Version 4.10.1998) AutoCAD 2000i
|
erstellt am: 30. Nov. 2004 12:52 <-- editieren / zitieren --> Unities abgeben:         
|
BloodyMess Mitglied Applicationingenieur
  
 Beiträge: 604 Registriert: 06.06.2002 AutoCAD Map 3D 2005 Win XP pro
|
erstellt am: 30. Nov. 2004 14:25 <-- editieren / zitieren --> Unities abgeben:          Nur für kiltswitch
|
kiltswitch Mitglied
 
 Beiträge: 189 Registriert: 27.10.2004 Windows 98 (Version 4.10.1998) AutoCAD 2000i
|
erstellt am: 30. Nov. 2004 14:59 <-- editieren / zitieren --> Unities abgeben:         
Meinst Du das Beispiel? Dim MyArray(6,3) Private Sub UserForm_Initialize() Dim i As Single 'The 1-st list box contains 3 data columns ListBox1.ColumnCount = 3 'The 2nd box contains 6 data columns ListBox2.ColumnCount = 6 'Load integer values into first column of MyArray For i = 0 To 5 MyArray(i, 0) = i Next i 'Load columns 2 and three of MyArray MyArray(0, 1) = "Zero" MyArray(1, 1) = "One" MyArray(2, 1) = "Two" MyArray(3, 1) = "Three" MyArray(4, 1) = "Four" MyArray(5, 1) = "Five" MyArray(0, 2) = "Zero" MyArray(1, 2) = "Un ou Une" MyArray(2, 2) = "Deux" MyArray(3, 2) = "Trois" MyArray(4, 2) = "Quatre" MyArray(5, 2) = "Cinq" 'Load data into ListBox1 and ListBox2 ListBox1.List() = MyArray ListBox2.Column() = MyArray End Sub ----------- Das habe ich mir bereits angesehen und auch ausprobiert. Nur wie Du sehen kannst, ist das Array auf 6 Spalten und 3 Zeilen begrenzt. Bei mir weiß ich jedoch nicht, wieviel Zeilen auftreten werden, weil es ja davon abhängt, wieviel in meiner Zeichnung Blockreferenzen vorhanden sind, von denen ich die gewünschten Daten auslesen möchte. Das wird ja von Zeichnung zu Zeichnung unterschiedlich sein, ist also dynamisch. Daher habe ich probiert, dem Array eine Variable als Begrenzung zuzuweisen, alos z.B. so: MyArray (2, n). 2 Spalten und n Zeilen (dass ich nur 2 Spalten benötige, weiß ich). Das n wollte ich dann in der For-Schleife immer erhöhen lassen: n = n + 1, damit immer eine neue Zeile geschrieben wird. Das Problem ist nur, dass Variablen in Feldern durch VBA nicht akzeptiert werden... :-( Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 30. Nov. 2004 19:06 <-- editieren / zitieren --> Unities abgeben:          Nur für kiltswitch
Show must go on - wir dachten Premiere sei am Donnerstag, Dienstags ist nämlich immer nur Generalprobe.;-) Du verwechselst hier 'tuesday' mit 'thursday', genauso wie Du Spalten mit Zeilen verwechselst ... Das Zauberwort heisst ReDim, schau mal danach in der Hilfe. Bei einem reinen Redim musste aber trotzdem wissen wieviele Blöcke es sind, funktioniert also nur, wenn Du vorher die betreffenden Dinger zählst und in einer Variablen speicherst. Dann hiesse es redim myarr(n,2) Wie du's jetzt hast dim myarr(2,n) == 2 Zeilen und n Spalten - diese Konstellation ist aber vermutlich ein Denkfehler von Dir. Wenn doch nicht, könntest Du mit redim preserve myarr(2,n) arbeiten, ohne vorher n zählen zu müssen, aber ein 'Preserve' geht eben nur bei der letzten Dimension eines Feldes. Such mal nach den genannten Schlüsselwörtern, lies dich etwas ein und spiel mal kreativ mit den gefundenen Beispielen rum, und wenns nicht geht, versuch was andres, vielleicht geht's dann [oder auch nicht] Nancy -- "Karen has her own i, and she is not going to let Frank put his data into it." - F. D. Boswell [Diese Nachricht wurde von startrek am 01. Dez. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kiltswitch Mitglied
 
 Beiträge: 189 Registriert: 27.10.2004 Windows 98 (Version 4.10.1998) AutoCAD 2000i
|
erstellt am: 01. Dez. 2004 09:41 <-- editieren / zitieren --> Unities abgeben:         
Danke für Deine Hilfe. Ich schaue mir das dann mal näher an und probiere das aus. Aber z.Zt. sitze ich vor einem anderen Problem, wozu die Lösung zunächst wichtiger ist. Siehe meinen neuen Thread... Kilt P.S.: Du kannst ja noch bis morgen mit Deiner Antwort auf meinen neuen Thread warten, wenn erst Donnerstag wieder Aufführung ist. ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 02. Dez. 2004 02:39 <-- editieren / zitieren --> Unities abgeben:          Nur für kiltswitch
verdammt Tobias, das war kein joke. Fakt ist, du veranstaltest hier eine Odyssee ... Die begann damit, Blockdaten in ein Textfile zu schreiben, ging über Excel bis hin zu Listviews. Ich frag mich was als nächtes kommt, die Zwischenablage? Okay, ich will ja keinen hier fertig machen, aber so langsam solltest Du dir [oder dein cheffe] mal darüber im klaren werden, worauf der ganze 'Blockzauber' eigentlich hinauslaufen soll. Holger und Axel haben alles bereits gesagt, mit dem Konzept steht und fällt alles, und die Grundlagen sollten bekannt & geläufig sein. Vorher lohnt es sich nicht auch nur eine einzige Zeile zu coden, es sei denn man übt grade mal;-) Nancy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kiltswitch Mitglied
 
 Beiträge: 189 Registriert: 27.10.2004 Windows 98 (Version 4.10.1998) AutoCAD 2000i
|
erstellt am: 02. Dez. 2004 08:36 <-- editieren / zitieren --> Unities abgeben:         
Hallo Nancy, ich mache nur das, was man mir hier im Unternehmen sagt! Zunächst konnte sich mein Chef nicht genau ausdrücken, was er will, was kann ich dafür?! Also habe ich - auch in meiner Unwissenheit - versucht, herauszubekommen, was es für Möglichkeiten mit den Blöcken gibt. Er erzählte mir etwas von Konzept - ergo habe ich hier im Forum nachgefragt, wie das geht und was man beachten muß. Dann meinte er, Excel wäre vielleicht eine Lösung - ergo habe ich das mit Excel probiert. Und nun meint er eben, sequentielle Dateien möchte er haben. Und deshalb bin ich jetzt auf diesen Zug aufgesprungen. Also wie gesagt, ich setze nur das um, was sich mein Chef so alles in den Kopf gesetzt hat - mehr nicht! Ich hoffe ja selber, dass das nun die endgültige Variante ist... ------------------ Gruß Tobias Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH

 Beiträge: 4191 Registriert: 17.05.2001 ACAD20XX, defun-tools
|
erstellt am: 02. Dez. 2004 10:37 <-- editieren / zitieren --> Unities abgeben:          Nur für kiltswitch
Zitat: Original erstellt von kiltswitch: ...Also wie gesagt, ich setze nur das um, was sich mein Chef so alles in den Kopf gesetzt hat - mehr nicht!...
Wenn das deine Grundeinstellung ist, das zu machen, was der Chef sagt, dann solltest du dich auf harte Zeiten einstellen. In aller Regel bist du für das Ergebnis verantwortlich, und es weiß später keiner mehr, dass Chef gesagt hat, das so zu tun. Deshalb ist es deine Aufgabe, dem Chef sinnvolle Lösungen und Wege vorzuschlagen. Mal abgesehen davon, würde es mich verdammt nerven, wenn meine Mitarbeiter alles das machen, was ich sage, denn dieses Verhalten hilft dem Unternehmen überhaupt nicht, es schadet!Damit sind wir aber wieder beim Thema Konzept ... Ein Satz noch: Du studierst doch. Sollte man nach/während einer Ausbildung nicht auch in der Lage sein, eine eigene Meinung zu entwickeln, diese auch zu vertreten? Ich denke dafür sollten/werden die Akademiker auch bezahlt. Holger ------------------ Holger Brischke (defun - Lisp over night! Autodesk User Group Central Europe AutoLISP-Programmierung für AutoCAD AUGCE Manager Deutschland Da weiß man, wann man's hat! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kiltswitch Mitglied
 
 Beiträge: 189 Registriert: 27.10.2004 Windows 98 (Version 4.10.1998) AutoCAD 2000i
|
erstellt am: 02. Dez. 2004 11:35 <-- editieren / zitieren --> Unities abgeben:         
@Holger: Das Thema Konzept steht momentan einfach nicht zur Debatte. Mein Chef hat klare Vorstellungen, was er gern geklärt haben möchte. Und ich soll das rausbekommen. Natürlich spreche ich auch mit ihm und versuche ihm zu verdeutlichen, worauf noch geachtet werden muß, aber letzendlich entscheidet ER doch, was getan wird. Und er hat mir eben die Aufgabe gegeben, das mit den sequentiellen Dateien zu probieren... ------------------ Gruß Tobias [Diese Nachricht wurde von kiltswitch am 02. Dez. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 03. Dez. 2004 19:15 <-- editieren / zitieren --> Unities abgeben:          Nur für kiltswitch
Two programmers went on a fishing vacation on the west coast. They each went off in separate boats to try their luck. When they returned, the first programmer had great luck, bagging six huge coho salmon while the other came back empty. The second programmer says to the first, "Did you mark the spot where you caught the fish?" "I sure did", replied the lucky programmer, "I drew an X right here in the bottom of the boat. The second shook his head in disbelief and groaned "That's not very bright. How do you know you'll get the same boat tomorrow?" -- naja - dachte so als Schlusswort ... ;;-)) Gruss Nancy [Diese Nachricht wurde von startrek am 03. Dez. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kiltswitch Mitglied
 
 Beiträge: 189 Registriert: 27.10.2004 Windows 98 (Version 4.10.1998) AutoCAD 2000i
|
erstellt am: 06. Dez. 2004 08:08 <-- editieren / zitieren --> Unities abgeben:         
Jetzt setze ich nochmal das allerletzte Schlußwort in diesen Thread hier rein :-) Ich verstehe eure Meinungen, besonders die von Holger, sehr gut. Und glaubt mir, ich bringe das im Unternehmen und bei meinem Chef auch zur Rede. Bloß ich kann an seiner Einstellung nicht viel ändern. Er hat sich das, was man mir hier als Ratschläge gegeben hat, angehört. Aber es interessiert ihn derzeit eben noch nicht. Ich kann daran nicht viel ändern. Aber ich werde versuchen, alles einzubringen, was zum guten Gelingen meines Konzeptes notwendig ist.
------------------ Gruß Tobias Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |