MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 13.09.2019, 08:02   #1
markusxy
MOF Meister
MOF Meister
Standard Sonstiges - Treeview per VBA

Da die Frage bezüglich 64 Bit immer wieder aufkommt, überlege ich mir grade wie es wäre per VBA ein Treeview zu erstellen.

Wie konzeptionell umsetzen?
Vielleicht habt ihr da ein paar Ideen dazu.

Die Grundidee.
Der Treeview wird innerhalb eines Memory HDC gezeichnet.
Hab da etwas Erfahrung mit GDI.
Wie ich sehe brauche ich aber um .png Files zu laden zumindest GDI+ - damit habe ich noch keine Erfahrung.
Das Laden selbst scheint aber nicht die große Herausforderung zu sein.

Hätte wer einen Vorschlag bezüglich einer anderen DLL für die grafische Aufbereitung aus VBA heraus, oder sind Probleme mit GDI/+ bekannt?

Funktionalitäten:
Da denke ich an die Auswertung des Klicks auf Symbol und Text.
Klick auf das Symbol -> einblenden/ausblenden der Ebenen
Klick auf Text -> Kontextmenü, eventuell Bearbeitung des Textes.

Für die Anzeige braucht man dann ein Steuerelement, was ein Bild darstellen kann mit einer steuerbaren Bildlaufleiste.
Eventuell ein Formular mit einem UserForm Frame.
Damit wäre das problemlos möglich.
Da könnte man auch die Bildlaufleisten entsprechend steuern.

Vielleicht habt ihr noch Ideen, was das Treeview unbedingt können sollte, oder welche Möglichkeiten von Vorteil wären.

Vielleicht gäbe es konzeptionell auch eine ganz andere Idee.
markusxy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.09.2019, 09:47   #2
sonic8
MOF Koryphäe
MOF Koryphäe
Standard

Zitat: von markusxy Beitrag anzeigen

Vielleicht gäbe es konzeptionell auch eine ganz andere Idee.

Es gab mal eine TreeView-Implementierung für Access rein auf Basis von Windows-API-Funktionen. D.h. es wurde schon das in Windows integrierte TreeView verwendet, aber eben ohne OCX/DLL, sondern alles komplett mit API und somit unabhängig von irgendwelchen registrierten Bibliotheken, deren unberechenbaren Versionssprüngen und damit verbundenen Inkompatibilitäten.

Leider scheint der Anbieter nicht mehr zu existieren und ich kann mich auch nicht mehr an dessen Namen erinnern. - Es war IIRC ein Österreicher und das TreeView war Bestandteil einer "Programmers Library", die man, IIRC inkl. Source Code, für einen moderaten Preis erwerben konnte.

__________________

Office / Access 2019: Rückkehr der Symbolleiste?
sonic8 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.09.2019, 09:48   #3
ebs17
MOF Guru
MOF Guru
Standard

Wenn man auf den Spaß des Selberentwickelns verzichten könnte, wäre eine fertige Variante durchaus eine Alternative: Der picoware Treeview für Microsoft Access

Zitat:

ich kann mich auch nicht mehr an dessen Namen erinnern

Johann Pumhösl. Eine Spur: Baumstruktur darstellen

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}:{11}:{12} <= geklammerte Zahlen sind Einzelthemen
Dein Dankeschön: DBWiki => Spende

Geändert von ebs17 (13.09.2019 um 09:57 Uhr).
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.09.2019, 10:00   #4
sonic8
MOF Koryphäe
MOF Koryphäe
Standard

Zitat: von markusxy Beitrag anzeigen

Da die Frage bezüglich 64 Bit immer wieder aufkommt, überlege ich mir grade wie es wäre per VBA ein Treeview zu erstellen.

Nur mal dumm gefragt: Was hat es hier mit den Hinweis auf 64Bit auf sich? Welche konkreten Probleme gibt es mit dem 64Bit-OCX von Microsoft? - Es wäre vielleicht eine gute Idee diese Probleme (wenn vorhanden) mal konkret zu benennen, bevor man viel Aufwand investiert.

Zitat: von sonic8 Beitrag anzeigen

Es gab mal eine TreeView-Implementierung für Access rein auf Basis von Windows-API-Funktionen.
[...]
Leider scheint der Anbieter nicht mehr zu existieren und ich kann mich auch nicht mehr an dessen Namen erinnern.

Mein Archiv hat zum Glück ein besseres Gedächtnis als ich:
"VBA - Entwicklerpaket - PROGRAMMER’s LIBRARIES VOLUME I + II" von Johann Pumhösl - http://members.aon.at/millpartner (Dies war die URL im Jahr 2003, heute ist sie nicht mehr erreichbar.)

__________________

Office / Access 2019: Rückkehr der Symbolleiste?
sonic8 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.09.2019, 10:36   #5
markusxy
Threadstarter Threadstarter
MOF Meister
MOF Meister
Standard

@ebs17,
danke.
Ich habs mir jetzt kurz angesehen.
Schaut schon recht gut aus.

So wie der Bildaufbau funktioniert, werden da im Hintergrund Controls verwendet. Damit ist kein flacker-freier Bildaufbau zu machen.
Und du hast recht - es geht auch um den Spaß dabei.

@sonic8,
ich möchte einfach mal testen und schauen was raus kommt.
In dem Falle würde ich kein existierendes Treeview verwenden, sondern mittels API ein Bild erstellen, dass ich Anzeige.
Also im Prinzip wird einfach das Control übersprungen, und direkt das Bild erzeugt, was das Control erzeugen würde.
Grundsätzlich habe ich damit schon etwas Test-Erfahrung gesammelt.
Der Bildaufbau ist dabei einfach um Welten besser, wie beim Arbeiten mit vielen einzelnen Controls wie im Beispiel von picoware. (Hab den Code aber nicht gesehen - reine Annahme aufgrund des Ergebnisses).

Es geht mir also um Ideen bezüglich der möglichen Umsetzung (welche Windows DLL für die Erzeugung des Bildes) und der Funktionalitäten.
markusxy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.09.2019, 15:35   #6
ebs17
MOF Guru
MOF Guru
Standard

Zitat:

direkt das Bild erzeugt

Die Arbeit an Einzelknoten dürfte aber an einem Bild unmöglich sein ...?

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}:{11}:{12} <= geklammerte Zahlen sind Einzelthemen
Dein Dankeschön: DBWiki => Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.09.2019, 16:00   #7
markusxy
Threadstarter Threadstarter
MOF Meister
MOF Meister
Standard

Zitat: von ebs17 Beitrag anzeigen

Die Arbeit an Einzelknoten dürfte aber an einem Bild unmöglich sein ...?

Daher muss man das programmieren, damit man zum Selben Ergebnis kommt.
Dafür hat man dann auch ein ruckelfreies Ergebnis, das schneller reagiert und nur einen Bruchteil an Speicher verbraucht.

Edit: Der große Vorteil beim freien Zeichnen: Man hat viel mehr gestalterische Möglichkeiten, im Vergleich zu den Controls.

Geändert von markusxy (13.09.2019 um 16:03 Uhr).
markusxy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.09.2019, 17:26   #8
daolix
MOF User
MOF User
Standard

Hallo

Ideen hab ich jetzt keine, aber auf jeden Fall klingt dein Vorhaben spannend. Ich hatte vor langer Zeit selbst GDIP verwendet und konnte keine Probleme feststellen, sind zwar sehr viele Funktionen aber irgendwie logisch (GDI selbst sind mir Böhmische Dörfer, mit dem ganzen SelectObject ... zzzzzz). Ob man DX/Vulkan ebenfalls verwenden kann weiß ich jetzt nicht, andere wie z.b. Cairo oder so müssten ja erstmal installiert werden und willst du ja wahrscheinlich nicht, weil sonst könntest du ja gleich ne dll mit nem ActivX in Delphi/Pascal programieren.

__________________

(K)ein Plan von nix
daolix ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.09.2019, 19:24   #9
markusxy
Threadstarter Threadstarter
MOF Meister
MOF Meister
Standard

@daolix,
schön zu hören, dass du mit GDI+ schon Erfahrung hast.
GDI habe ich auch einen Zeit gebraucht um reinzukommen.
Habe da auch schon ein paar VBA Klassen erstellt, die das nutzen.

Vom Prinzip her erstelle ich in einem Memory DC eine Vorlage mit den verschiedenen Elementen.
Je nach Bedarf werden die dann im DC nur noch kopiert.
Das geht dann extrem schnell.
Wenn man im Form dann doublebuffer verwendet, ist das Ergebnis beeindruckend.

Aus dem DC heraus erstelle ich dann ein StdPicture, dass ich einem MSForms Frame Objekt (Auch beim Bild, Label, Commandbutton, Register und Form möglich) direkt zuweisen kann. Für die "Bearbeitung" eines Textes wird dann mittels Klick Event ein TextControl an die Stelle positioniert.

Mit Delphi habe ich auch vor kurzem angefangen zu arbeiten und einige normale DLL erstellt. Mir taugt das Arbeiten mit den Pointern bei Records und normalen Datentypen.
Allerdings mit den Grafik Klassen habe ich noch nichts gemacht (scheint aber sehr einfach zu sein), auch noch keine COM/ActiveX Erfahrung.

Hast du Erfahrung was Delphi und COM angeht und kannst du ein Forum empfehlen? (Bis jetzt bin ich bei delphipraxis.net)
Irgendwie habe ich das Gefühl, dass man mit Delphi genau so schnell entwicklen kann wie mit Access, nur hat man 100x mehr Möglichkeiten.
markusxy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.