Autor
|
Thema: Userform mit Bild wiederverwenden (1955 mal gelesen)
|
Gepetto Mitglied Diplomand auf Arbeitssuche
Beiträge: 32 Registriert: 04.03.2009
|
erstellt am: 25. Mai. 2009 11:09 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, ich würde gerne eine Userform wiederverwenden. Das ganze läuft wie folgt ab: - Erstelle Bild von Einzelteil in Baugruppe. - Userform wird mit dem erstellten Bild als Ansicht gestartet. Show - Interaktion wird durch Userform ausgeführt. - Userform wird ausgeblendet. Hide - Erstelle 2. Bild von nächstem Einzelteil in Baugruppe. - Userform wird mit dem erstellten Bild als Ansicht gestartet. Show - Interaktion wird durch Userform ausgeführt. - Userform wird ausgeblendet. Hide und so weiter... Problem ist, das die Userform nur beim ersten Mal das richtige Bild zum richtigen Einzelteil anzeigt. Danach wird immer nur das Bild vom vorherigen Einzelteil angezeigt! Ich hoffe Ihr könnt mir helfen! MfG Jan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 25. Mai. 2009 11:25 <-- editieren / zitieren --> Unities abgeben: Nur für Gepetto
Hallo, hast du es mal mit einen UF1.refresh(bzw. UF1.repaint ist es glaub ich in VB.NET) vor dem erneuten Anzeigen versucht? ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gepetto Mitglied Diplomand auf Arbeitssuche
Beiträge: 32 Registriert: 04.03.2009
|
erstellt am: 25. Mai. 2009 14:39 <-- editieren / zitieren --> Unities abgeben:
Hallo Daniel, Danke für deine schnelle Antwort, aber leider funktioniert auch kein Userform.repaint! Ich habe das Bild, auf das sich die Userform bezieht, sogar nach Gebrauch gelöscht, dann das neue mit dem gleichen Namen erstellt und dann ein repaint gemacht. Trotzdem läd die Userform das alte! erst wenn die Userform durchgelaufen ist, läd er sich das Bild und dann brauche ich das Bild nicht mehr sonder schon ein neues von einem dritten Einzelteil! Hoffentlich gibt´s noch mehr Ideen!! MfG Jan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 25. Mai. 2009 15:04 <-- editieren / zitieren --> Unities abgeben: Nur für Gepetto
Hallo Jan, na und wenn du gleich das Steuerelement dynamisch hinzufügst? Dann könntest du den Focus abfragen (hat ja keinen wenn die UF im NoShow steht). Kurz bevor die UF wieder ein Focus bekommt löscht du das alte Steuerelement (mitsamt altem Bild) raus und fügst ein neuens Steuerelement mitsamt neuem Bild hinzu. Leider hab ich gerade weder CATIA noch VB am laufen werd´s aber heut abend mal kurz testen und dann nochmal ein Feedback geben ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gepetto Mitglied Diplomand auf Arbeitssuche
Beiträge: 32 Registriert: 04.03.2009
|
erstellt am: 26. Mai. 2009 07:45 <-- editieren / zitieren --> Unities abgeben:
Hallo Daniel, Hört sich ganz gut an. Ich verstehe noch nicht ganz was Du mit Steuerelement meinst? Vorallem wie ich das lösche oder neu hinzufüge! Vielleicht hast Du es gestern Abend schon getestet und kannst mir heute erläutern wie es funktioniert! MfG Jan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 26. Mai. 2009 08:24 <-- editieren / zitieren --> Unities abgeben: Nur für Gepetto
Hallo, sorry erst mal, bin gestern Abend nicht mehr dazu gekommen (Verabschiedungsvideo meines Chefes noch zusammengeschnitten und das hat gedauert ). Jetzt zu den Steuerelementen: Du hast ja eine UserForm. Auf dieser Form fügst du das Steuerelement "Picture" ein. In dieses Steuerelement lädst du dein Bild. Jede UserForm hat somit auch eine Steuerelement-Collection (in der sich alle auf der UserForm vorhandenen Steuerelemente befinden). Löschst du aus dieser Collection dein Picture-Steuerelement ist es weg. Andererseits kannst du natürlich ein Steuerelement während der Laufzeit zur Collection hinzufügen. Ein kleines anschauliches Beispiel: Du hast eine UserForm mit einem Button drauf (Der Count deiner Steuerelement-Collection ist somit = 1). Klickst du auf den Button willst du einen weiteren Button auf der UserForm anzeigen (der Count erhöht sich auf 2). D.h. in der Klick-Ereigniss des ersten Buttons musst du die Collection um einen Button erweitern. Damit ist es dynamisch. Das ganze kann man mit allen Steuerelementen machen die zur Verfügung stehen. ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gepetto Mitglied Diplomand auf Arbeitssuche
Beiträge: 32 Registriert: 04.03.2009
|
erstellt am: 26. Mai. 2009 11:27 <-- editieren / zitieren --> Unities abgeben:
Hallo Daniel, mein erster Ansatz hat leider einen Fehler ergeben: Sub ansprechen() Ansichtsauswahl.Show Ansichtsauswahl.Hide Ansichtsauswahl.Controls.Remove "Vorschau" End Sub Vielleicht kannst Du mir kurz erklären wie ich das Steuerelement löschen oder ersetzen kann. Das wäre prima Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 26. Mai. 2009 21:03 <-- editieren / zitieren --> Unities abgeben: Nur für Gepetto
Hallo Jan, dieser Fehler tritt auf wenn du versuchst ein Steuerelement aus der Controls-Collection zu enfernen das während des Entwurfmodi erstellt wurde. Soll heißen man kann während der Laufzeit nur Steuerelemente entfernen wenn man sie auch während der Laufzeit erstellt hat. Hab dir gerade mal ein kleines Beispiel zusammengebastelt. Importiert dir das mal und schau dir das mal an. Hier wird einem Steuerelement (Image) ein neues Bild während der Laufzeit zugewiesen OHNE das Steuereelement zu löschen. Die Eigenschaft ist Picture und die Methode das LoadPicture.
------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gepetto Mitglied Diplomand auf Arbeitssuche
Beiträge: 32 Registriert: 04.03.2009
|
erstellt am: 27. Mai. 2009 10:53 <-- editieren / zitieren --> Unities abgeben:
Sorry, aber ich kann deine Userform nicht öffnen! Ich bekomme immer wieder mehrere Fehler. Kannst Du mir einfach den Quellcode als Text.datei hierreinstellen, damit werde ich wohl auch zurecht kommen! Danke! MfG Jan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 27. Mai. 2009 11:21 <-- editieren / zitieren --> Unities abgeben: Nur für Gepetto
Hallo, kann ich machen das Problem ist dann hast du nur den Quellcode und nicht gleich die UserForm. Ich kann dir aber auch die ganze catvba anhängen wenn ich zugriff darauf habe (außer Haus unterwegs). Öffnen kannst du die *.fm Datei so und so nicht. Du musst dir erst ein neues CATVba-Projekt erzeugen und dann die *.fm datei importieren (File -> Import war das glaub ich ) ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gepetto Mitglied Diplomand auf Arbeitssuche
Beiträge: 32 Registriert: 04.03.2009
|
erstellt am: 27. Mai. 2009 11:51 <-- editieren / zitieren --> Unities abgeben:
Moin, entschuldige bitte das ich mich falsch ausgedrückt habe. Ich habe natürlich ein CATvba-Projekt gestartet und die *.frm versucht zu importieren. Dabei sind dann die Fehler gekommen! Wenn Du mir bei Gelegenheit, das CATvba-Projekt zuschicken kannst, wäre das super! MfG Jan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 28. Mai. 2009 06:11 <-- editieren / zitieren --> Unities abgeben: Nur für Gepetto
Guten Morgen Jan , ich habe gerade gesehen das es vermutlich mein Fehler war. Beim exportieren des Projekt´s hat CATIA 2 Dateien geschrieben ich hab dir aber nur eine gepackt . Naja in diesem *.zip-File sind jetzt beide Dateien und zusätzlich die *.catvba-Datei.
------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gepetto Mitglied Diplomand auf Arbeitssuche
Beiträge: 32 Registriert: 04.03.2009
|
erstellt am: 28. Mai. 2009 07:46 <-- editieren / zitieren --> Unities abgeben:
Moin Daniel, Du bist anscheinend auch recht früh am Arbeiten?! Ich hab gerade deine Userform importiert und das hat auch geklappt. Außerdem hab ich mir deinen Quelltext angeguckt und ich habe jetzt das Steuerelement wie folgt erstellt: '***Bild hinzufügen 'Variablen deklarieren Dim myPictureBox As MSForms.Image 'Box hinzufügen mit den entsprechenden Eigenschaften Set myPictureBox = Me.Controls.Add("Forms.Image.1", "Vorschaubild", True) With myPictureBox .Left = 336 .Top = 18 .Width = 390 .Height = 312 .Picture = LoadPicture(Name) .PictureAlignment = fmPictureAlignmentCenter .PictureSizeMode = fmPictureSizeModeStretch End With Dann habe ich über einen Counter in der Schleife beim nächsten Bild vor dem Laden der Userform die neue Vorschau erstellt und diese dann über: '***Bild hinzufügen 'Variablen deklarieren Dim myPictureBox As MSForms.Image 'Box hinzufügen mit den entsprechenden Eigenschaften Set myPictureBox = Me.Controls.Add("Forms.Image.1", "Vorschaubild", True) With myPictureBox .Left = 336 .Top = 18 .Width = 390 .Height = 312 .Picture = LoadPicture(Name) .PictureAlignment = fmPictureAlignmentCenter .PictureSizeMode = fmPictureSizeModeStretch End With an die gleiche Stelle hinzugefügt wie das erste Bild. Jetzt läuft alles so wie ich es wollte!!! Tausenddank!!! Aber eine Frage habe ich noch. Ist es nötig das alte Steuerelement zu löschen, weil es sonst zu viel Speicher frist und evtl. ein Absturz droht wenn ca. 50 Vorschauen erstellt werden? MfG Jan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |