Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Blockvoransicht mittels Imageanzeige

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
  
NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung
Autor Thema:  Blockvoransicht mittels Imageanzeige (3850 mal gelesen)
Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

AutoCAD 2021/2022
CAD+T
HP ZBook 15 G4, 64-bit,
WIN 10 Pro

erstellt am: 29. Jun. 2005 09:35    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 Zusammen!

Ich möchte mir eine Blockvoransicht erstellen und hoffe, daß mir von Euch jemand dabei helfen kann.
In einem Verzeichnis zB. C:\Bloecke befinden sich Blöcke und eine jeweilige Bilddatei.

Beispiel:
Hakenteil.dwg
Hakenteil.wmf
RWClip.dwg
RWClip.wmf

Ich möchte mir nun mittels VBA eine Dialogbox (Userform) mit einem Anzeigefeld (Image) und einem comandbutton erstellen, dies ist so weit ja auch kein Problem, hoffe ich!
Beim bestätigen des comandbutton sollen wenn möglich die Bilddateien aus dem Verzeichnis C:\Bloecke als Miniaturansicht in dem Anzeigefeld erscheinen. Klickt man dann mit der Maus auf eines der Bilder, soll der entsprechende Block in die aktuelle Zeichnung geladen werden.

Ist soetwas überhaupt möglich und wenn ja, dann wie?

Für Hilfe, Tipps und Ideen wäre ich wie immer sehr dankbar.

Gruß

Dirk


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

Cadzia
Ehrenmitglied V.I.P. h.c.
CADgestalterin



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

Beiträge: 2922
Registriert: 02.07.2004

erstellt am: 29. Jun. 2005 10:00    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 Nur für Dirk.B 10 Unities + Antwort hilfreich

Hallo Dirk,

mit welcher Autocadversion möchstest Du das machen?

Eine Art Blockbibliothek (mit Bildvoschau) kannst Du auch mit ACad-eigenen Borad mitteln machen.

Stichworte für die Forumsuche oder Acad-Hilfe wären:
- Werkzeugpaletten
- DesignCenter
- Bildkachelmenü

------------------
Grüße Karin

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

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

AutoCAD 2021/2022
CAD+T
HP ZBook 15 G4, 64-bit,
WIN 10 Pro

erstellt am: 29. Jun. 2005 10:58    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 Karin!

Danke für Deine Info, aber ich suche die Möglichkeit dieses mit VBA umzusetzen um dieses dann in meinen Programmen weiterverarbeiten zu können.

Die von Dir angesprochenen Varianten sind mir bekannt.

Trotzdem vielen Dank.

Gruß

Dirk

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

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

erstellt am: 30. Jun. 2005 15:33    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


Block_Voransicht.jpg


VBA_Block_Voransicht.jpg

 
Hallo Zusammen!

Ich habe mal ein kleines Bildchen gemacht von dem was AutoCAD ohne viel Aufwand zur Verfügung stellt.
So etwas möchte ich mit VBA umsetzen. Sieht da jemand eine Möglichkeit.
Ich bin mir ziemlich sicher, daß es geht, hab nur noch nicht den richtigen Faden gefunden.
Auch hierzu hab ich mal ein Bildchen erstellt.
In einer UserForm soll es eine Listbox, CommandButton, einen Frame mit Images entstehen.
Die Bilder (Images) sollen zur Laufzeit aus einem Verzeichnis zB
C:\Bloecke gezogen werden.
Klickt man dann auf eines der Bilder soll der entsprechende Block eingefügt werden.

Gruß

Dirk

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

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

AutoCAD 2021/2022
CAD+T
HP ZBook 15 G4, 64-bit,
WIN 10 Pro

erstellt am: 30. Jun. 2005 21:15    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 Zusammen!

Wie kann man aus einem Verzeichnis zB C:\Bloecke alle *.wmf oder *.bmp Dateien auslesen und in einem ListView1 anzeigen bzw. eintragen lassen.

Gruß

Dirk

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

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

erstellt am: 03. Jul. 2005 19:39    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


Vorschau1.jpg

 
Hallo zusammen!

Ich komme mit meiner Blockvorschau immer ein Stück weiter.
Nun klappt es, daß ich aus einem benannten Verzeichnis die *.wmf Dateien in ein ListView und als Kachelbilder in einem Frame laden kann, siehe Bildchen.

Nun die nächsten Dinge, die ich versuchen möchte zu realisiern.
- Klick ich auf einen der Listeneinträge, soll das entsprechende Bild markiert werden und umgekehrt.
- Geh ich mit einem Doppelklick auf einen Listeneintrag oder ein Bild, soll der entsprechende Block aus dem benannten Verzeichnis eingefügt werden, bzw. wenn ich eines per Mausklick markiere soll der Block nach betätigen eines CommandButton eingefügt werden.

Wäre super, wenn mir auch dabei einer von Euch helfen könnte.

Private Sub cmd1_Click()
End
End Sub

Private Sub cmd2_Click()
Dim NewImage As MSForms.Image
Dim NewLabel As MSForms.Label
LastTop = 10
LastLeft = 10
For i = 1 To ListView1.ListItems.Count

Set NewImage = PreviewFrm.Controls.Add("Forms.Image.1")
NewImage.Height = 40
NewImage.Width = 40
NewImage.PictureSizeMode = fmPictureSizeModeZoom
NewImage.BackColor = Application.Preferences.Display.GraphicsWinModelBackgrndColor
Set NewImage.Picture = LoadPicture("K:\3D_Ladenbau\3D_Bloecke\Hakenteile\" & ListView1.ListItems(i).Text)
NewImage.Left = LastLeft
NewImage.top = LastTop

PreviewFrm.ScrollHeight = LastTop + NewImage.Height + 30
If LastLeft + 50 > PreviewFrm.Width - 20 Then
    LastTop = LastTop + NewImage.Height + 30
    LastLeft = 10
Else
    LastLeft = LastLeft + 50
    LastTop = NewImage.top
End If
Next

End Sub

Private Sub UserForm_Initialize()
    Dim fs, f, f1, fc
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder("K:\3D_Ladenbau\3D_Bloecke\Hakenteile")
    Set fc = f.Files
Dim oItem As ListItem
With UserForm1.ListView1
    .View = lvwReport
    .ColumnHeaders.Clear
    .ListItems.Clear
    .ColumnHeaders.Add , , "Datei Name"
End With
   
For Each f1 In fc
If VBA.Right(f1.Name, 4) = ".wmf" Then
        Set oItem = UserForm1.ListView1.ListItems.Add(, , f1.Name)
    End If
    Next
   
End Sub

Gruß

Dirk

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

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

AutoCAD 2021/2022
CAD+T
HP ZBook 15 G4, 64-bit,
WIN 10 Pro

erstellt am: 19. Jul. 2005 20:38    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 Zusammen!

Leider komme ich erst jetzt wieder dazu mich um mein Programm zu kümmern.

Hat wirklich keiner eine Idee, wie ich es hinbekommen kann, daß wenn ich auf einen der ListView Einträge clicke sich das entsprechnede Image darstellt evtl. durch Änderung der Hintergrundfarbe.

ZB.:
Private Sub ListView1_Click()
If Not ListView1.SelectedItem Is Nothing Then
MsgBox ListView1.SelectedItem.Text
End If
End Sub

Vielen Dank im voraus.

Gruß

Dirk

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

Juergen55
Mitglied
Elektrotechniker


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

Beiträge: 282
Registriert: 08.03.2001

erstellt am: 28. Jul. 2005 22:03    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 Nur für Dirk.B 10 Unities + Antwort hilfreich

Hallo Dirk,

Dein Ansatz sieht doch schon ganz gut aus, ich denke Du kriegst das schon noch hin, es ist ja auch der Lerneffekt der zählt !
Ich programmiere nur in Lisp und hab mir so einen Blockmanager mit SLD-Voransicht bereits erstellt, kannst Du Dir bei Interesse mal anschauen.
Jetzt hab ich mir hier bereits einige Threads angesehen, das VBA scheint ja doch recht leistungsfähig und vielseitig, bin am überlegen ob ich nicht mehr in diese Richtung mache !

Gruß, Jürgen

-------www.pc-ideal.de

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

PG01
Mitglied



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

Beiträge: 22
Registriert: 08.03.2005

erstellt am: 14. Aug. 2005 21:18    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 Nur für Dirk.B 10 Unities + Antwort hilfreich

Hallo Dirk,

wie hast Du eigentlich die WMF-Dateien erzeugt ?

Grüße
P. Günther

------------------
GÜNTHER ENGINEERING
30519 Hannover

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

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

AutoCAD 2021/2022
CAD+T
HP ZBook 15 G4, 64-bit,
WIN 10 Pro

erstellt am: 21. Aug. 2005 18: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


ACAD_Exportieren_WMF.jpg

 
Hallo Günther!

WMF Dateien erzeugst Du übers Menü Datei -> Exportieren und dann den Dateityp *.wmf wählen, siehe Bildchen.

Gruß

Dirk

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1526
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 21. Aug. 2005 18:54    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 Nur für Dirk.B 10 Unities + Antwort hilfreich

Hallo Dirk,

ein Listitem im Listview hat ein "tag" Eigenschaft.
Diese kann den Typ "Object" aufnehmen.
Wenn in der Tag-Eigenschaft jedes Listview Elementes
das passende Image-Object steckt, sollte man so leicht
die Hintergrundfarbe ändern können.

Stelli1

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

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

erstellt am: 21. Aug. 2005 20:40    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 Stelli1!

Erstmal vielen Dank für Deine Info.
Könntest Du mir das mit der Tag - Eigenschaft evtl. mit einem kleinen Beispiel erleutern, da ich bislang damit noch nicht gearbeitet habe.

Gruß

Dirk

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1526
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 22. Aug. 2005 12:18    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 Nur für Dirk.B 10 Unities + Antwort hilfreich


blockvoransicht1.gif


blockvoransicht.gif

 
Hallo Dirk,

anbei ein kleines Beispiel.
Wie du die Bilder genau markierst bleibt deinem Gusto
überlassen. Ich würde ein Image in der Mitte zwischen
Liste und Imageliste plazieren und das Bild dort reinladen.
Dann hat man sich auch die ganzen Farbwechsel gespart.


Code:

Dim MyHighlightOldImage As Image

Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
Dim MyHighlightImage As Image

' alte Markierung zurücksetzen
    MyHighlightOldImage.BorderColor = &H80000006
    MyHighlightOldImage.BackColor = &H80000005
    MyHighlightOldImage.BackStyle = fmBackStyleOpaque
    MyHighlightOldImage.BorderStyle = fmBorderStyleNone

' Neues Markieren
    Set MyHighlightImage = Item.Tag
    MyHighlightImage.BackColor = vbRed
    MyHighlightImage.BorderColor = vbRed
    MyHighlightImage.BackStyle = fmBackStyleTransparent
    MyHighlightImage.BorderStyle = fmBorderStyleSingle

' Markierung zwischenspeichern
    Set MyHighlightOldImage = Item.Tag
End Sub

Private Sub UserForm_Initialize()
Dim MyBlockListItem As ListItem

Dim NewImage As Image
Dim Rechts As Integer
Dim Hoch As Integer

' Test Bilder einfügen

' Erstes Image
    Set NewImage = Me.Frame1.Controls.Add("Forms.Image.1")
    NewImage.Height = 40
    NewImage.Width = 40
    NewImage.PictureSizeMode = fmPictureSizeModeZoom
    NewImage.BackStyle = fmBackStyleOpaque
    NewImage.BorderStyle = fmBorderStyleNone
    NewImage.BackColor = Application.Preferences.Display.GraphicsWinModelBackgrndColor
    Set NewImage.Picture = LoadPicture("E:\Projekte\Entw\vb6\actool2004\BOE_dw.bmp")
    Rechts = 5
    Hoch = 10
    NewImage.Left = Rechts
    NewImage.top = Hoch
' Erster Eintrag in Listview zum ersten Image
    Set MyBlockListItem = Me.ListView1.ListItems.Add(, , "Test1")
    Set MyBlockListItem.Tag = NewImage

' Erstes Element zwischenspeichern
    Set MyHighlightOldImage = NewImage
    ' Erstes Element in Listview wählen
    ListView1.SelectedItem = MyBlockListItem
    ' Markierung in Imageliste erzwingen
    ListView1_ItemClick MyBlockListItem

' Zweites Image
    Set NewImage = Me.Frame1.Controls.Add("Forms.Image.1")
    NewImage.Height = 40
    NewImage.Width = 40
    NewImage.PictureSizeMode = fmPictureSizeModeZoom
    NewImage.BackStyle = fmBackStyleOpaque
    NewImage.BorderStyle = fmBorderStyleNone
    NewImage.BackColor = Application.Preferences.Display.GraphicsWinModelBackgrndColor
    Set NewImage.Picture = LoadPicture("E:\Projekte\Entw\vb6\actool2004\BOE_up.bmp")
    Rechts = 50
    Hoch = 10
    NewImage.Left = Rechts
    NewImage.top = Hoch
' Zweiter Eintrag in Listview zum ersten Image
    Set MyBlockListItem = Me.ListView1.ListItems.Add(, , "Test2")
    Set MyBlockListItem.Tag = NewImage

' ....

End Sub


Viel Erfolg
Stelli1

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1526
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 22. Aug. 2005 12:32    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 Nur für Dirk.B 10 Unities + Antwort hilfreich


blockvoransicht2.gif

 
Hallo Dirk,


Hier noch die Variante nur mit Voranzeige


Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)

' oder nur in Voranzeige
  Me.Image1.Picture = Item.Tag.Picture
   
End Sub

Private Sub UserForm_Initialize()
Dim MyBlockListItem As ListItem

Dim NewImage As Image
Dim Rechts As Integer
Dim Hoch As Integer

' Test Bilder einfügen

' Erstes Image
    Set NewImage = Me.Frame1.Controls.Add("Forms.Image.1")
    NewImage.Height = 40
    NewImage.Width = 40
    NewImage.PictureSizeMode = fmPictureSizeModeZoom
    NewImage.BackColor = Application.Preferences.Display.GraphicsWinModelBackgrndColor
    Set NewImage.Picture = LoadPicture("E:\Projekte\Entw\vb6\actool2004\BOE_dw.bmp")
    Rechts = 5
    Hoch = 10
    NewImage.Left = Rechts
    NewImage.top = Hoch
' Erster Eintrag in Listview zum ersten Image
    Set MyBlockListItem = Me.ListView1.ListItems.Add(, , "Test1")
    Set MyBlockListItem.Tag = NewImage

    ' Erstes Element in Listview wählen
    ListView1.SelectedItem = MyBlockListItem
    ' Markierung in Imageliste erzwingen
    ListView1_ItemClick MyBlockListItem

' Zweites Image
    Set NewImage = Me.Frame1.Controls.Add("Forms.Image.1")
    NewImage.Height = 40
    NewImage.Width = 40
    NewImage.PictureSizeMode = fmPictureSizeModeZoom
    NewImage.BackColor = Application.Preferences.Display.GraphicsWinModelBackgrndColor
    Set NewImage.Picture = LoadPicture("E:\Projekte\Entw\vb6\actool2004\BOE_up.bmp")
    Rechts = 50
    Hoch = 10
    NewImage.Left = Rechts
    NewImage.top = Hoch
' Zweiter Eintrag in Listview zum ersten Image
    Set MyBlockListItem = Me.ListView1.ListItems.Add(, , "Test2")
    Set MyBlockListItem.Tag = NewImage

' ....

End Sub

Stelli1

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1526
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 22. Aug. 2005 16:22    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 Nur für Dirk.B 10 Unities + Antwort hilfreich


UserForm2.zip


Auswahl.gif

 
Hallo Dirk,

für mein Plotprojekt werde ich folgende Form benutzen.
Im Anhang ist die Form als Zip

Private Sub CommandButton1_Click()
    Me.ListView1.View = lvwReport
End Sub

Private Sub CommandButton2_Click()
    Me.ListView1.View = lvwList
End Sub

Private Sub CommandButton3_Click()
    Me.ListView1.View = lvwSmallIcon
End Sub

Private Sub CommandButton4_Click()
    Me.ListView1.View = lvwIcon
End Sub

Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
    Me.Image1.Picture = Me.ImageList1.ListImages(Item.index).Picture
End Sub

Private Sub UserForm_Initialize()
Dim MyBlockListItem As ListItem
Dim Anzahl As Integer


Me.ListView1.View = lvwReport
Me.ListView1.ColumnHeaders.Add , , "Bild"


' Test Bilder einfügen
Pfad = "E:\Projekte\Entw\vb6\actool2004\"
Datei = Dir$(Pfad & "*.bmp")

' Anfangswerte
Anzahl = 0
' Für alle Dateien *.bmp
While Datei <> ""
    Anzahl = Anzahl + 1
    ' Image aus Datei
    Me.Image1.Picture = LoadPicture(Pfad & Datei)
    ' Image zu den Imagelisten
    Me.ImageList1.ListImages.Add Anzahl, Datei, Image1.Picture
    Me.ImageList2.ListImages.Add Anzahl, Datei, Image1.Picture
   
    ' Zuordung zu Listview
    Me.ListView1.SmallIcons = Me.ImageList1
    Me.ListView1.Icons = Me.ImageList2
   
    ' Listview erzeugen
    Set MyBlockListItem = Me.ListView1.ListItems.Add(Anzahl, Datei, Datei, Anzahl, Anzahl)

    ' nächste Datei
    Datei = Dir
Wend

ListView1.SelectedItem = ListView1.ListItems(1)
ListView1_ItemClick ListView1.SelectedItem

End Sub

Und noch eine Frage:
Wie willst du denn auf einen Click in deine Bildliste reagieren.
Wie kann man in VBA ein Handler für das Klickereignis von dynamisch
geladenen COntrols schaffen ?

Gruß
Stelli1

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

PG01
Mitglied



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

Beiträge: 22
Registriert: 08.03.2005

erstellt am: 22. Aug. 2005 21:23    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 Nur für Dirk.B 10 Unities + Antwort hilfreich

Hallo Dirk,

bezüglich der Erzeugung von WMF-Dateien als Blockvorschau habe ich noch einen Nachtrag. Was ich meinte ist nicht manuell von jedem Block einzeln eine WMF-Datei zu erstellen, sondern aus einer ganzen Blocksammlung (die in einer Datei vorhanden sind), die einzelnen Voransichten automatisch zu erstellen. So ähnlich wie die Cache-Datei für das Design-Center, daß AutoCAD automatisch in jeden Pfad erstellt.

Hast Du dafür so eine Lösung gefunden ?

Grüße
P. Günther

------------------
GÜNTHER ENGINEERING
30519 Hannover

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

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

AutoCAD 2021/2022
CAD+T
HP ZBook 15 G4, 64-bit,
WIN 10 Pro

erstellt am: 24. Aug. 2005 21:00    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 Stelli1!
Hallo P. Günther!

Da ich im Moment beruflich fast in Arbeit umkomme, komme ich leider nicht dazu mich um diese Dinge näher zu kümmern.
Ich dank Euch aber schon einmal für Euer Interesse bzw. Eure Hilfe.

Bis dann.

Gruß

Dirk

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

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

erstellt am: 01. Okt. 2005 11: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 Stelli1!

Hab entlich mal etwas Zeit gefunden mich mit Deinen Beispiel zu befassen.
Nicht schlecht, daß mit dem anklicken im ListView, so das sich das entsprechende Image darstellt, nur leider müßte ich ja so jedes Bildchen einzeln laden und benennen.
Gibt es nicht doch die Möglichkeit wie bei meinem Versuch eine Verbindung zwischen ListVieweintrag und Image herzustellen, so daß es wie in Deinem Beispiel funktioniert.
In meinem Versuch wird ja ein Verzeichnis ausgelesen.

Wäre schön, wenn Du mir noch weiterhin helfen könntest.

Erst einmal vielen Dank.

Gruß

Dirk

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

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

AutoCAD 2021/2022
CAD+T
HP ZBook 15 G4, 64-bit,
WIN 10 Pro

erstellt am: 12. Okt. 2005 20:42    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


BL_Fehler.jpg

 
Hallo Zusammen!

Ich will einfach noch nicht aufgeben, da ich glaube, daß es eine Lösung für mein Problem gibt.
Noch hab ich keine Lösung, da das Programm beim laden der Images hängen bleibt (siehe Bildchen).

Hier nochmal der aktuelle Code:

Private Sub cmd1_Click()
  End
End Sub

Private Sub cmd2_Click()

  Dim NewImage As MSForms.Image
  On Error Resume Next

'==bei LastTop =10 bleibt das Programm hängen===?
  LastTop = 10
  LastLeft = 10
  For i = 1 To ListView1.ListItems.Count
    Set NewImage = PreviewFrm.Frame1.Controls.Add("Forms.Image.1")
    NewImage.Height = 30
    NewImage.Width = 30
    NewImage.PictureSizeMode = fmPictureSizeModeZoom
    NewImage.BackColor = Application.Preferences.Display.GraphicsWinModelBackgrndColor
    Set NewImage.Picture = LoadPicture("C:\Temp\" & ListView1.ListItems(i).Text & ".wmf")
    NewImage.Left = LastLeft
    NewImage.top = LastTop
    NewImage.Tag = i

    PreviewFrm.Frame1.ScrollHeight = LastTop + NewImage.Height + 30
    If LastLeft + 50 > PreviewFrm.Frame1.Width - 20 Then
      LastTop = LastTop + NewImage.Height + 30
      LastLeft = 10
    Else
      LastLeft = LastLeft + 50
      LastTop = NewImage.top
    End If
  Next
End Sub


Private Sub UserForm_Initialize()
  Dim fs, f, f1, fc
  Set fs = CreateObject("Scripting.FileSystemObject")
  Set f = fs.GetFolder("C:\Temp\")
  Set fc = f.Files
  Dim oItem As ListItem
  With UserForm1.ListView1
    .View = lvwReport
    .ColumnHeaders.Clear
    .ListItems.Clear
    .ColumnHeaders.Add , , "Datei Name"
  End With

  For Each f1 In fc
    If VBA.Right(f1.Name, 4) = ".wmf" Then
      Set oItem = UserForm1.ListView1.ListItems.Add(, , f1.Name)
    End If
  Next
End Sub

'==wie bekommt man ein Clickereignis auf eines der Imagecontrols===?
'UserForm1.ListView1.ListItems(NewImage(Index).Tag).Selected = True

Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
Dim i As Integer
For i = NewImage.LBound To NewImage.Ubound
  If NewImage(i).Tag = ListView1.SelectedItem.Index Then
    NewImage(i).Selected = True
  End If
Next
End Sub


Vielleicht hat ja doch noch jemand eine Lösung und Lust mir zu helfen.

Gruß

Dirk

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1526
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 16. Okt. 2005 17:54    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 Nur für Dirk.B 10 Unities + Antwort hilfreich

Hallo Dirk,

hatte den Computer mal 2 Wochen aus.

Grundsätzlich läuftst wie unter
http://ww3.cad.de/foren/ubb/Forum259/HTML/000634.shtml#000012
Die Bilder werden als Tag Property im Listview gespeichert.

Wenn du ein Verzeichnis auslesen willst
http://ww3.cad.de/foren/ubb/Forum259/HTML/000634.shtml#000014

Die Bilder kannst du erzeugen mit
http://ww3.cad.de/foren/ubb/Forum259/HTML/000684.shtml#000004

Häng doch mal deine DVB an.

Stelli

------------------
Warum lisp'eln wenn's auch anders geht.

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

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

erstellt am: 01. Nov. 2005 19:57    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


VABlock01.zip

 
Hallo Stelli!

Ich hab mal die *.dvb Datei angehangen.
Leider komme ich damit nicht weiter. Ich hatte mir dieses leichter vorgestellt.
Vielleicht siehst Du ja doch noch eine Möglichkeit dieses oder etwas ähnliches auf die Beine zu stellen.
Ich habe auch schon mal darüber nachgedacht, es wie in Deinem Beispiel mit dem ListView inkl. Bildchen umzusetzen.

Gruß

Dirk

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)2025 CAD.de | Impressum | Datenschutz