Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  layer in Arrays

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  layer in Arrays (620 mal gelesen)
startrek
Moderator
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 06. Jan. 2005 19:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Leute,

hab' grade mal was probiert und hätte dazu mal paar Fragen:

1: war ich der Annahme, dass er bei laycolor _ohne_ Wertübergabe automatisch _alle_ Layer nimmt?
Naja, geht nicht, wo liegt denn da meinTrugschluss?

2: numerische Angaben als Parameterübergabe funktionieren zwar, aber - wohl als item(Nummer) je nach Erstellungszeit?
Sortiert sind die Layer [lt. Anzeige jedenfalls] alphabetisch, kann man das nicht entsprechend v.o.n.u. auch numerisch ansprechen, analog Anzeige halt?

3: Auskommentiert - ein Traum wärs ja, die Layer im Array auf einen Schlag zu colorieren, also ohne explicite Schleife in der subroutine.
Ich mein, das Array ist doch da, aber wie übergeben? Geht wohl eher nicht - oder?

Gruss Nancy
--

Code:

Option Explicit
Public i
Sub layColor(ParamArray mylayer())
  Dim x
  For Each x In mylayer()
      ThisDrawing.Layers(x).Color = i
  Next
  '3: mydream - ohne Schleife:
  'thisdrawing.layers(mylayer).color=i
End Sub

Sub layer_test()
  i = 255: layColor  ' ohne Angabe == alle, oder ?? geht nicht
  i = 50: layColor 1, 3 'geht, aber die Reihenfolge?
  i = 60: layColor 2, 4 'dito
  i = 70: layColor "Layer5", "Layer6" 'Reihenfolge egal, da String
End Sub



Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Moderator
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 06. Jan. 2005 22:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Nachtrag:

um zB Punkt 3 nochmal zu verdeutlichen, worauf ich hinaus will ist folgendes:
ich muss ja erstmal das Array erstellen, indem ich es in Form von Zahlen oder
Strings tippse:
layColor "Layer5", "Layer6"
oder laycolor 1,2,5,6

m.e. dasselbe wie ein arr = array(1,2,5,6) zum Beispiel ...

Grundsatzfrage 3 also konkreter:

Wozu erst ein Array step by step tippsen müssen,
um es nachher doch wieder nur über ne schleife step by step umrubeln zu können?
Ist doch doppelt gemoppelt und würde genauso über ne einmalige for each schleife mit if-then-else laufen?
Wozu also ein array, wenn ichs doch nicht auf einen Hieb umsetzen kann?

Hab also mal meine [wirren?] Gedankengänge näher ausgeführt,
was mir also irgendwie vorschwebt ;-))
Möglicherweise isses auch reines Utopie/Idealismus- Denken von mir, keine Ahnung ...

Ich mein, das Ding ist ja nicht unbedingt nur auf die Problematik Layer/Color
bezogen, sondern dazu gibts eigentlich X-ähnliche Beispiele:
Ich sammle gleiche Objekte in einer Collection/Array, um diesen dann,
mit einem mal irgendeine Eigenschaft verpassen zu können.
Irgendwie glaube ich halt: Das muss doch irgendwie gehen! ;-)               

thx your's , Nancy 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Moderator
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 07. Jan. 2005 13:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Neuer Tag, neues Glück - hat sich erledigt das ganze ...
Hab das vorerst viel simpler gelöst, trotzdem Danke fürs Lesen.

Gruss Nancy

Code:

Sub col_layer()
  byletter "a_", 5
End Sub

Sub byletter(ByRef letter As String, farbe As Integer)
  Dim i%
  With ThisDrawing
      For i = 0 To .Layers.Count - 1
        If LCase(.Layers(i).Name) Like letter & "*" Then _
        .Layers(i).Color = farbe
      Next
  End With
End Sub


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz