| |
 | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: lineto(x,y) - Grafik in Userform (6532 mal gelesen)
|
Wyndorps Ehrenmitglied V.I.P. h.c. Ingenieur

 Beiträge: 4588 Registriert: 21.07.2005 Creo 10 Genius Tools 10.0 Windchill 12.0.2.0
|
erstellt am: 30. Nov. 2011 20:13 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, ich habe hier ein uraltes selbst geschriebenes Pascal-Programm, dass unter WIN 7 nicht mehr läuft und ich daher auf EXCEL-VBA umgeschreiben will. In diesem Programm werden Grafiken benötigt, bei denen Linien segmentweise verschiedene Farben erhalten. Die Linien werden kontinuerlich durch Ändern verschiedener Parameter über Tastatureingaben verändert und so das Ergebnis optisch otimiert. In Pascal war das in Schleifen mit setcolor, moveto(x,y) und lineto(x,y) sowie einer Tastaturabfrage am Ende der Schleifen leicht zu realisieren. Am liebsten würde ich genau dasselbe in EXCEL wieder umsetzen. Bisher habe ich aber keine Möglichkeit gefunden, programmierte Grafiken anders als als Chart-Objekte zu verwenden. Diese Chartobjekte sind aber gar nicht in der Programmumgebung (Userform), sondern in der Tabellenumgebung angelegt und damit eigentlich während des Programmablaufs gar nicht dirket sichtbar. Außerdem lassen sich (soweit ich bisher weiß) Farbzuordnungen nur auf Datenreihen beziehen, nicht auf beliebige Linienelement. Ich suche also im Prinzip die Möglichkeit auf einem weißen Rahmen in einer Userform beliebig farbige Linien Schritt für Schritt von x1,y1 nach x2,y2 bezogen auf die linke untere Rahmenecke zu erstellen und bei Änderung der Parameter wieder zu löschen. Geht so etwas?
------------------ ---------------- "Ich stimme mit der Mathematik nicht überein. Ich meine, daß die Summe von Nullen eine gefährliche Zahl ist." (Stanislaw Jerzy Lec) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
U_Suess Ehrenmitglied V.I.P. h.c. CAD-Admin / manchmal Konstrukteur

 Beiträge: 10696 Registriert: 14.11.2001 Windows 7 Excel 2010
|
erstellt am: 30. Nov. 2011 23:29 <-- editieren / zitieren --> Unities abgeben:          Nur für Wyndorps
Hallo Paul, Du gehst ja ganz schön fremd! Aber ich weiß ja, welches Dein Lieblingsbrett ist. Keine Ahnung, ob ich die Frage richtig verstanden habe. Aber da ich doch recht viel in Newslettern lese, wird man doch auf einige Programme aufmerksam. GeoGebra ist eines davon. Vielleicht ist es auch dazu geeignet, den Studenten etwas behilflich zu sein. (Jetzt kann ich nur hoffen, dass ich wegen dieses Hinweises kein Brettverbot bekommen oder ruebe deswegen schmollt) ------------------ Gruß Udo Keine Panik, Du arbeitest mit Pro/E! Und Du hast cad.de gefunden! Neu hier? Verwundert über die Antworten? Dann schnell nachfolgende Links durchlesen.  • Richtig Fragen • Nettiquette • Suchfunktion • System-Info • Pro/E-Konfig • 7er-Regel • Unities Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThoMay Ehrenmitglied V.I.P. h.c. Konstrukteur

 Beiträge: 5260 Registriert: 15.04.2007
|
erstellt am: 01. Dez. 2011 05:16 <-- editieren / zitieren --> Unities abgeben:          Nur für Wyndorps
|
Wyndorps Ehrenmitglied V.I.P. h.c. Ingenieur

 Beiträge: 4588 Registriert: 21.07.2005 Creo 10 Genius Tools 10.0 Windchill 12.0.2.0
|
erstellt am: 01. Dez. 2011 08:32 <-- editieren / zitieren --> Unities abgeben:         
Einen schönen guten Morgen. Nein, das ist alle nicht das, was ich suche. In VB6 gab es für so etwas das Steuerelement Linie, das in der Userform angewendet werden konnte. [OT] Mann ist das schrecklich, wenn alle Programmiersprachen, die man gelernt und einigermaßen beherrscht hat (FORTRAN, QuickBasic, TurboPascal, BorlandPascal, VisualBasic 6) einfach nach und nach in der Tonne landen und man wieder dasteht, wie der letzte Anfänger.
------------------ ---------------- "Ich stimme mit der Mathematik nicht überein. Ich meine, daß die Summe von Nullen eine gefährliche Zahl ist." (Stanislaw Jerzy Lec) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pablo Mitglied Techniker
 
 Beiträge: 453 Registriert: 23.01.2002
|
erstellt am: 01. Dez. 2011 09:18 <-- editieren / zitieren --> Unities abgeben:          Nur für Wyndorps
|
Wyndorps Ehrenmitglied V.I.P. h.c. Ingenieur

 Beiträge: 4588 Registriert: 21.07.2005 Creo 10 Genius Tools 10.0 Windchill 12.0.2.0
|
erstellt am: 01. Dez. 2011 09:35 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von pablo: ... die Möglichkeit mit Shapes ...
Im Prinzip ja. Was mich daran stört ist, dass die Grafik dann auf Tabellenebene und nicht auf Programmebene (userform) erstellt wird. Das weitere Vorgehen nach dem Erstellen der Grafik ist, dass im Programmmodus Parameter verändert werden sollen, die dann jeweils die Grafik aktualisieren, wobei die Grafik immer im Programmfenster (Vordergrund) stehen soll. Die Farben und Linien werden für eine optische Optimierung gebraucht. Wenn ich mit Shapes arbeite, dann muss ich versuchen die Grafik von der Tabellenebene in die Userform-Eben zu holen. Das wüsste ich jetzt aber auch nicht auf Anhieb zu realisieren.
------------------ ---------------- "Ich stimme mit der Mathematik nicht überein. Ich meine, daß die Summe von Nullen eine gefährliche Zahl ist." (Stanislaw Jerzy Lec) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pablo Mitglied Techniker
 
 Beiträge: 453 Registriert: 23.01.2002
|
erstellt am: 01. Dez. 2011 10:03 <-- editieren / zitieren --> Unities abgeben:          Nur für Wyndorps
Zitat: Original erstellt von Wyndorps:
Wenn ich mit Shapes arbeite, dann muss ich versuchen die Grafik von der Tabellenebene in die Userform-Eben zu holen. Das wüsste ich jetzt aber auch nicht auf Anhieb zu realisieren.
Die Steuerelemente in die Tabellenebene holen? Oder gleich in VB...? pablo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Wyndorps Ehrenmitglied V.I.P. h.c. Ingenieur

 Beiträge: 4588 Registriert: 21.07.2005 Creo 10 Genius Tools 10.0 Windchill 12.0.2.0
|
erstellt am: 01. Dez. 2011 10:43 <-- editieren / zitieren --> Unities abgeben:         
Vielleicht denke ich einfach zu kompliziert oder bin zu blöd es auszudrücken. Als Beispiel soll ein Programm, bei dem auf der Basis einer Berechnung und veränderlichen Eingaben ein Ergebnis (Biege- und Beanspruchungsverlauf) eines Profils im Programm (nicht in einer Tabelle) dargestellt werden soll. Mir ist klar, dass ich so etwas auf Tabellenebene relativ leicht erreichen kann, aber es soll wirklich VBA unter EXCEL als Programmiersprache genutzt werden. Die wirkliche Aufgabe ist leider weitaus komplexer und vielschichtiger als das Beispiel. Gesucht ist also eine frei programmierbare Grafik im Programmfenster. [Edit: Anhang vergessen.] ------------------ ---------------- "Ich stimme mit der Mathematik nicht überein. Ich meine, daß die Summe von Nullen eine gefährliche Zahl ist." (Stanislaw Jerzy Lec) [Diese Nachricht wurde von Wyndorps am 01. Dez. 2011 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: 01. Dez. 2011 11:15 <-- editieren / zitieren --> Unities abgeben:          Nur für Wyndorps
|
Wyndorps Ehrenmitglied V.I.P. h.c. Ingenieur

 Beiträge: 4588 Registriert: 21.07.2005
|
erstellt am: 01. Dez. 2011 11:38 <-- editieren / zitieren --> Unities abgeben:         
Super! Dieser Link von Thomas Harmening enthält genau das, was ich suche. Nur habe ich leider überhaupt keine Ahnung warum und wie das funktioniert und ob ich mich trauen kann, dasd zu verwenden. Ich habe keine Lust beim nächsten Office-Paket wieder neu programmieren zu müssen. Sollte ich dann besser die Finger davon lassen, oder ist so etwas weitgehend aufwärtskompatibel? Immerhin ist das Ganze aus 1998 und funktioniert immer noch! ------------------ ---------------- "Ich stimme mit der Mathematik nicht überein. Ich meine, daß die Summe von Nullen eine gefährliche Zahl ist." (Stanislaw Jerzy Lec) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Wyndorps Ehrenmitglied V.I.P. h.c. Ingenieur

 Beiträge: 4588 Registriert: 21.07.2005 Creo 10 Genius Tools 10.0 Windchill 12.0.2.0
|
erstellt am: 01. Dez. 2011 16:07 <-- editieren / zitieren --> Unities abgeben:         
Nachtrag: Die verlinkte Methode funktioniert zwar, ist aber so langsam, dass ein vernünftiges arbeiten damit leider nicht sinnvoll ist. Grund dafür scheint zu sein, dass jede Änderung an der Grafik als Image in die userform geladen werden muss. Mit jedem Liniensegment schläft das dann mehr ein. ------------------ ---------------- "Ich stimme mit der Mathematik nicht überein. Ich meine, daß die Summe von Nullen eine gefährliche Zahl ist." (Stanislaw Jerzy Lec) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pablo Mitglied Techniker
 
 Beiträge: 453 Registriert: 23.01.2002
|
erstellt am: 01. Dez. 2011 16:39 <-- editieren / zitieren --> Unities abgeben:          Nur für Wyndorps
|
Wyndorps Ehrenmitglied V.I.P. h.c. Ingenieur

 Beiträge: 4588 Registriert: 21.07.2005 Creo 10 Genius Tools 10.0 Windchill 12.0.2.0
|
erstellt am: 01. Dez. 2011 18:12 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von pablo: ... worum es eine Userform sein muss...
Wahrscheinlich liegt der Wunsch in meiner Programmier-Unfähigkeit begründet. Während ein Programm in EXCEL abläuft kommt man an die Grafiken auf den Tabellen nicht heran. Die Userform liegt immer im Vordergrund, die Tabelle mit Grafik dahinter. Jetzt könnte man das Programm beenden, um die Grafik bildschirmfüllend zu betrachten, aber dann sind alle im Programm dyynamisch angelegten Variablen und Datenwerte weg. Also vorher alles (ist aber viel) in irgendwelchen Tabellenblättern oder Files speichern (langsam). Dann müssen die Daten programmtechnisch weiter bearbeitet werden, also neues Makro-Programm starten alle Daten wieder einlesen. Bei mehrfachen Optimierungsschritten auf unterschiedlichen Ebenen und einer großen Datenmenge dauert das dann alles in allem richtig lang. Eigentlich will ich ein klassisches Auslegungsprogramm mit grafischen Ausgaben realisieren. EXCEL-VBA will ich dabei nur als Programmierumgebung nutzen (wie früher VB6). Diesbezüglich sind aber die Einschränkungen scheinbar doch recht massiv. Aber vielleicht gibt es ja einen banalen Trock, wie man eine Tabellengrafik (Shadeobjekt) aus dem Programm heraus bildschirmfüllend angezeigt bekommt ohne das Programm zu beenden, d. h. auf Tastendruck oder Mausklick geht es danach im Programm weiter? ------------------ ---------------- "Ich stimme mit der Mathematik nicht überein. Ich meine, daß die Summe von Nullen eine gefährliche Zahl ist." (Stanislaw Jerzy Lec) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
       

 Beiträge: 8086 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 01. Dez. 2011 19:12 <-- editieren / zitieren --> Unities abgeben:          Nur für Wyndorps
Zitat: Original erstellt von Wyndorps: [...] Aber vielleicht gibt es ja einen banalen Trock, wie man eine Tabellengrafik (Shadeobjekt) aus dem Programm heraus bildschirmfüllend angezeigt bekommt ohne das Programm zu beenden, d. h. auf Tastendruck oder Mausklick geht es danach im Programm weiter?
Und die ShowModal-Eigenschaft hilft Dir dabei nicht? Ich hätte gern an dieser Stelle die onlinehilfe von microsoft verlinkt, aber die scheint irgendwie abhanden gekommen zu sein offline unter F1 steht aber alles.------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Wyndorps Ehrenmitglied V.I.P. h.c. Ingenieur

 Beiträge: 4588 Registriert: 21.07.2005
|
erstellt am: 04. Dez. 2011 11:10 <-- editieren / zitieren --> Unities abgeben:         
ShowModal !!! Das war's! Und sooooo einfach! Ihr seit einfach super! Herzlichsten Dank! ------------------ ---------------- "Ich stimme mit der Mathematik nicht überein. Ich meine, daß die Summe von Nullen eine gefährliche Zahl ist." (Stanislaw Jerzy Lec) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |