Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Suche Hilfe / Programmcode

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
  
Von Digital Twins bis Hochleistungs-Computing: PNY präsentiert seine Zukunftstechnologien für die Industrie von morgen, eine Pressemitteilung
Autor Thema:  Suche Hilfe / Programmcode (1238 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: 08. Mrz. 2009 18: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


Test_01.jpg

 
Hallo zusammen!

Dank der Hilfe aus dem Forum, hatte ich mir vor längerer Zeit mal eine eigene kleine Blockverwaltung mit Vorschaubildern geschrieben.

Nun bin ich dabei mal einige andere Dinge zu testen.
Dazu habe ich die Maske (siehe Bildchen) geändert, so das ich links eine Listbox habe in der die Namen der Bildchen aus einem Verzeichs erscheinen und rechts einen Rahmen in dem automatisch die entsprechende Anzahl an Images geladen wird.

Die Images möchte ich nun nicht mit einem Scrollbalken hoch und runterschalten, sondern über die beiden Pfeile rechts.

Ferner soll eine Abhängigkeit zwischen dem Listboxeintrag und dem entsprechenden Bildchen möglich sein, so das wenn ich einen Eintrag auswähle das Bildchen z.B einen roten Rahmen bekommt.

Code:

Private Sub AnzahlBloecke()
ListBoxBlock.Clear
Zaehler = 0
Dim NewImage As MSForms.Image
Dim LastTop As Double
Dim LastLeft As Double
Dim color1 As Variant
color1 = RGB(247, 247, 247)  'hellblau
Dim BlockFile As String
Dim Blocks As String
Dim i As Variant

BlockFile = StatusBar1.Panels(2).Text & "\"

Blocks = Dir(BlockFile & "*.wmf")  'Alle Bilddateien  im ausgewählten
' Verzeichnis

On Error Resume Next

LastTop = 10
LastLeft = 15

Do While Blocks <> ""              'Wiederholen bis Blocks=""
    Zaehler = Zaehler + 1          'Anzahl der Bilder im ausgewählten
    ' Verzeichnis
    With ListBoxBlock
        .AddItem (Blocks)
    End With
    Set NewImage = PreviewFrm.Controls.Add("Forms.Image.1")
    With NewImage
        .Height = 70
        .Width = 70
        .PictureSizeMode = fmPictureSizeModeZoom
        .BackColor = color1
    Set .Picture = LoadPicture(BlockFile & Blocks)
        .Enabled = False
        .Name = Blocks
        .Left = LastLeft
        .top = LastTop
    End With

    If LastLeft + 5 > PreviewFrm.Width - 125 Then
        LastTop = LastTop + NewImage.Height + 10
        LastLeft = 15
    Else
        LastLeft = LastLeft + 80
        LastTop = NewImage.top
    End If

    Blocks = Dir
Loop


Hätte da jemand einen Lösungsansatz für?

Vielen Dank im voraus.

Gruß

Dirk

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1360
Registriert: 24.07.2002

erstellt am: 08. Mrz. 2009 18: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 Nur für Dirk.B 10 Unities + Antwort hilfreich

Hi Dirk,

lade doch mal die Form hoch, dann braucht man nicht alles nachstellen, was du bis jetzt gemacht hast. Kannst ja alles überflüssige rauswerfen.

Das Picture-Objekt hat doch eine Tag-Eigenschaft, gib dieser doch den Dateinamen mit, dann kannst du dir darüber das passende wieder herausfiltern und dann einen Rahmen drum herum machen. Dafür kannst du ja ein GIF mit transparentem Hintergrund nehmen.

Gruß, Carsten

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: 09. Mrz. 2009 19:44    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,

ohne es nachgeschaut zu haben würde ich mal mit der Eigenschaft
    ScrollTop
deines Frames (PreviewFrm) probieren. Die kannst du (hoffentlich) mit deinen Buttons einstellen.

Zugriff auf deine Bilder hast du über die Controls Auflistung in deinem Frame.

Code:
Set SelImage = PreviewFrm.Controls(Me.listbox1.listindex)

Da kannst du doch den Rahmen an- oder ausschalten. Oder das Bild ein wenig vergrößern. .Top-5 , .Left-5 , .Width+10, + Height+10

Wenn du dir in einer Variablen merkst welches du vorher angeklickt hast, kannst du diese Einstellungen bei der Auswahl eines neuen Blockes in der Lstbox wieder zurücksetzen.


Wilfried Stelberg


------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

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: 09. Mrz. 2009 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 Carsten!
Hallo Wilfried!

Vielen Dank für Eure Tipps.
Das hört sich bei Euch immer so wunderbar einfach an.
Ich werde es mal ausprobieren.

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: 11. Mrz. 2009 13:26    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 Wilfried!

Ich benötige hierzu doch noch Deine Hilfe

Zitat:

ohne es nachgeschaut zu haben würde ich mal mit der Eigenschaft
    ScrollTop
deines Frames (PreviewFrm) probieren. Die kannst du (hoffentlich) mit deinen Buttons einstellen.

Dieses habe ich bislang dazu:
Festlegung der ScrollHeight

Code:

PreviewFrm.ScrollHeight = LastTop + NewImage.Height + 7

Beim Klick auf den nach oben Pfeil verschiebt sich der Frameinhalt
um den genannten Wert.

Code:

Private Sub cmdPlus_Click()
Me.PreviewFrm.ScrollTop = 308
End Sub

zurück

Code:

Private Sub cmdMinus_Click()
Me.PreviewFrm.ScrollTop = 0
End Sub

Um mir aber per ButtonClick der Reihe nach den Inhalt anschauen zu können, müßte ich mir den letzten ScrollTop Wert ja speichern und um diesen Stepp 308 erhöhen, oder?

Wie könnte ich das lösen?

Gruß

Dirk

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


Ex-Mitglied

erstellt am: 11. Mrz. 2009 15:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat


20090311_VB6_SymbolAnsicht.zip

 
Hi Dirk,

sorry, dass ich nicht auf Deine aktuellen Fragen hinkomme (ich hab's nicht im Detail verfolgt und daher eher zu große Lücken und jetzt mitzukommen). Mir wäre nur eine Idee gekommen, die Dich von der ganzen Scroll-Geschichte, Image-Paint, ... loslöst und damit wahrscheinlich einfacher wird:

Mach auf Deiner rechten Seite ein ActiveX-Objekt des Internet-Explorers (wenn nicht vorhanden, dann Komponente hinzufügen ==> 'Microsoft Internet Controls')

Beim Start Deines Forms z.B.
Me.WebBrowser1.Navigate("C:\Daten\Symbole") ==> macht Dir im Explorer aus den DWG-Dateien die Voransicht, Du hast mit der rechten Maustaste die Möglichkeit, den Ansichtstyp einzustellen (Details, Miniaturansicht, ...), brauchst nicht Programmieren.

Und mit der Event-Überwachung 'BeforeNavigate2' bekommst Du jeden Doppelklick mit und kannst Detailinformationen direkt aus der Datei dann links anzeigen.

Ev. erleichtert dieser Weg Deine Arbeit, wenn nicht, dann hab ich halt ein bisschen gedichtet   

- alfred -

------------------
www.hollaus.at

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: 15. Mrz. 2009 17:04    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


wmf_preview.jpg


wmf_preview.zip

 
Hallo Dirk,

meintes du so was ?
    
Schau dir mal die Userform2 an.

Wilfried Stelberg

------------------
Warum lisp'eln wenn's auch anders geht.  
www.ib-stelberg.de

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: 15. Mrz. 2009 18:36    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


Test_02.jpg

 
Hallo Wilfried!

Genau das meinte ich.
Das mit den Bildchen markieren in dem Frame bzw. in der ListBox hatte ich heute Mogen so ähnlich hinbekommen.
Was bei mir noch nicht funktioniert ist das mit dem Frame - Inhalt über die beiden Button hoch.- bzw. runterschalten.
An Deine Zip Datei komme ich leider nicht ran, das sich das Bild von der UserForm2 davorsetzt.
Könntest Du die Zip - Datei nochmal hochsalten?

So habe ich es bislang gemacht:

Code:

'###Mouseklick auf ein Image - Control------
Private Sub PreviewFrm_MouseDown( _
    ByVal Button As Integer, _
    ByVal Shift As Integer, _
    ByVal X As Single, _
    ByVal Y As Single)
Dim i As Integer
For Each c In PreviewFrm.Controls
    If X >= c.Left And X <= c.Left + c.Width And Y >= c.top And Y <= c.top + c.Height Then
        With c
            .BackColor = color2
        End With
        StatusBar1.Panels(1).Text = c.Name
        For i = 0 To ListBoxBlock.ListCount - 1
            If ListBoxBlock.List(i) = c.Name Then
                ListBoxBlock.Selected(i) = True
            End If
        Next i
    Else
        With c
            .BackColor = color1
        End With
    End If
Next c
End Sub
'--------------------


Code:

'###--ListBox - Eintrag auswählen und Image markieren--------
Private Sub ListBoxBlock_Click()
    StatusBar1.Panels(1).Text = ListBoxBlock.Text
Dim lc As Control
For Each lc In Me.PreviewFrm.Controls
    If lc.Name = ListBoxBlock.Text Then
        lc.BackColor = color2
        If lc.top > Me.PreviewFrm.ScrollTop Or lc.top < Me.PreviewFrm.ScrollTop Then
            Me.PreviewFrm.ScrollTop = lc.top - 89
        End If
    Else
        lc.BackColor = color1
    End If
Next lc
End Sub
'-------------------------------------------------------------

Scrollen per ButtonClick.
Da bin ich heute Morgen an dieser Stelle hängengeblieben:

Code:

Private Sub cmdPlus_Click()
    If LastPoint <= 0 Then
        Me.PreviewFrm.ScrollTop = 308
            If LastPoint > 0 Then
                Me.PreviewFrm.ScrollTop = LastPoint + 308
            End If
    End If
End Sub

Ich schätze, daß Deine Variante eleganter gelöst ist?

Danke für Deine Hilfe.

Gruß

Dirk

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1360
Registriert: 24.07.2002

AutoCAD ACA 2024
Solidworks 2022 Sp5
Enterprise PDM 2022 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell Precision 3660
Intel Core i9-12900K
32 GB Arbeitsspeicher
2x Dell U2415

erstellt am: 15. Mrz. 2009 18:44    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

Hi Drik,

Was für einen Browser nutzt du denn, das der Link nicht sichtbar bzw. verdeckt ist?!

Link

Gruß, Carsten

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: 15. Mrz. 2009 19: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 Carsten!

Danke für den Link.
Ich nutze den Win Internet Explorer!
!!merkwürdig!!

Gruß

Dirk

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


Ex-Mitglied

erstellt am: 15. Mrz. 2009 19:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,  
Zitat:
Link nicht sichtbar bzw. verdeckt
Internet-Explorer hätte ich auch, ich nehme aber an, dass das IE-Fenster nur nicht breit genug aufgezogen ist (oder die Bildschirmauflösung es nicht zuläßt   ), damit schieben sich die Dateianhangsicons nach rechts und bei großem eingebetteten Bild eben darunter.

[EDIT]..natürlich nach links!!! (wenn man links und rechts nicht unterscheiden kann, sollte man mit CAD gar nicht erst anfangen  )[/EDIT]

- alfred -


------------------
www.hollaus.at

[Diese Nachricht wurde von a.n. am 15. Mrz. 2009 editiert.]



Anzeige:Infos zum Werbeplatz >>

LAYOUT CAD APP für AEC - Architektur-, Ingenieur- und Bauwesen

LAYOUT = ein Werkzeug für die Erstellung von Signallageplänen

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: 15. Mrz. 2009 19:53    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
 
Zitat:
Original erstellt von a.n.:
...Internet-Explorer hätte ich auch, ich nehme aber an, dass das IE-Fenster nur nicht breit genug aufgezogen ist
..
glaub ich auch    
Jetzt hast du den Link ja.

Wilfried Stelberg


------------------
Warum lisp'eln wenn's auch anders geht. 
www.ib-stelberg.de

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