Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Codeschnippsel verwalten

Begonnen von Optiplex, November 29, 2010, 12:02:58

⏪ vorheriges - nächstes ⏩

Optiplex

Hallo Josef,
bin wieder da, zwar noch nicht ganz der Alte aber es geht wieder. Deine Beispieldatenbank ist sehr gut, da sieht man was man alles mit den Klassenmodulen möglich ist. Ich habe mir vorgenommen die AEK durchzuarbeiten, denn da kann man viel lernen. Ich hätte natürlich noch sehr viele Fragen, aber ich möchte jetzt erst mal einiges selbst austesten, sonst gehe ich dir vielleicht doch noch auf den Geist mit meiner vielen Fragerei. ich hoffe,dass ich mich wieder bei dir melden darf wenn ich nicht weiterkomme. Dein "ACLib Import Wizard" ist ganz schön kompliziert aber auch sehr mächtig, was das nachladen von abhängigen Modulen betrifft .Trotzdem habe ich es bis jetzt noch nicht installiert. Mir fehlen einfach die Erklärungen zu dem jeweiligen Codeschnipsel, denn eine Odnerstrucktur habe ich bereits, nur mir fehlt der Durchblick welches Modul was macht, oden muss man dafür dieses Doxygen noch zusätzlich installieren, denn das schein ja was für die Dokumentation zu sein. Wie gesagt sehr kompliziert.

In der Hoffnung dass du diesen Beitrag noch im Auge hast.
Dieter

Josef P.

Hallo!

ZitatDein "ACLib Import Wizard" ist ganz schön kompliziert
Ja, da wäre ein Refactoring angebracht, damit der Code übersichtlicher wird. ... da es aber trotzdem läuft, finde ich einfach "keine Zeit" dafür. ;)

ZitatMir fehlen einfach die Erklärungen zu dem jeweiligen Codeschnipsel ... oder muss man dafür dieses Doxygen noch zusätzlich installieren
Doxygen ist nur für das Erstellen einer Code-Dokumentation zuständig.
Beispiel: http://source.access-codelib.net/doc/draft/class_code_module_reader.html

Für den Import-Wizard ist der Block <codelib>...</codelib> in den Modulen erforderlich.
Beschreibung: http://wiki.access-codelib.net/ACLib-Import-Wizard

Ein Beispiel:
Option Compare Database
Option Explicit

'<codelib>
'  <file>xyz/Modulname.bas</file>
'  <use>abc/EinAnderesModul.bas</use>
'</codelib>

Public Sub MachWas()
'...
End Sub


Sobald ein codelib-Bock in einem Modul vorhanden ist, wird das Modul beim Exportieren unter StandardPfad\xyz\Modulname.bas (aus File-Tag) gespeichert.
Wenn du das Modul mit dem Import-Wizard in eine leere Anwendung importierst, wird auch das Modul StandardPfad\abc\EinAnderesModul.bas eingefügt.
Wären in diesem anderen Modul wieder use-Zeilen definiert, würden auch diese Module importiert werden.

Anm.: der ImportWizard ist für wiederverwendbare Codemodule vorgesehen und nicht für Code-Schnippsel im Sinne von Code-Mustern u. ä.

mfg
Josef


Optiplex

Hallo Josef,
daß ACLib nur Für Module ist, ist schon ok. Ich finde es auch ganz toll, dass man sich nicht um das nachladen der weiteren benötigten Modulen kümmern muß. Aber was mir fehlt ist schon der erwähnte Dokumentationsblock im Wizard. Für Module die man in fast jede Datenbank einbindet ist das OK, für selten benutze Module, muss man immer wieder nachschauen was macht was wann und da wäre eine solcher Dokumentationsanzeige im Wizard von Vorteil. Aber jetzt mal Butter bei den Fischen, so wie ich das sehe sind sowohl der Doxygen als auch der ACLib Wizard aus deinem Geist entsprungen, deshalb mal die Frage, sind denn die ganzen Routinen und Klassen die du auf der Seite bereitstellst zu freien Benutzung oder ist da irgendetwas zu beachten?

Gruß Dieter

Josef P.

#18
Hallo!

ZitatAber was mir fehlt ist schon der erwähnte Dokumentationsblock im Wizard.

Ah! Ich glaube, jetzt verstehe ich erst was du meinst. Wenn du nach einem bestimmten Code suchst, würdest du gerne zuerst den Kommentar im Modul-Kopf lesen bevor du das Modul importierst, um nicht das falsche Modul zu importieren. Liege ich mit dieser Vermutung einigermaßen richtig?

Die Lösung könnte sein, dass man vom Import-Dialog aus entweder in einem zusätzlichen Fenster den Code aus dem Modulkopf anzeigt oder die Textdatei mit dem Standard-Texteditor öffnet.

Eine weitere Variante wäre eventuell auch interessant: die Klassen, Standardmodule und deren öffentlichen Prozeduren in einer Datenbank ablegen, damit nach deren Namen gesucht werden kann. Eine ähnliche (vielleicht sogar umfangreichere) Suchmöglichkeit erhält man, wenn man eine Doxygen-Doku erstellt, da man dann in der Html-Doku (oder bei Bedarf auch in einer chm-Datei) suchen kann. Die Datenbanksuche hätte allerdings den Vorteil, dass man die Suche direkt in die Import-Maske einbauen könnte.

Die eifnachste Lösung wäre: das CodeModul so zu benennen, dass daraus erkenntlich wird, wofür es benötigt wird. (Ich muss allerdings gestehen, dass mir das auch nur selten gelingt, einen Namen zu finden, den jeder sofort versteht. :))

Zitatso wie ich das sehe sind sowohl der Doxygen als auch der ACLib Wizard aus deinem Geist entsprungen, deshalb mal die Frage, sind denn die ganzen Routinen und Klassen die du auf der Seite bereitstellst zu freien Benutzung oder ist da irgendetwas zu beachten?

Doxygen ist nicht von mir. Ich schrieb nur einen kleinen Assistenten für Access, der bei der Erstellung der Doxygen-Doku hilft.
Der Code im öffentlichen Teil von access-codelib.net steht frei zur Verwendung (BSD-Lizenz) - dabei aber bitte beachten, ob nicht auch Rechte Dritter im Spiel sind.
Im Sinne des Open-Source-Gedankens würde es mich freuen, wenn Verbesserungen nicht nur im stillen Kämmerchen ablaufen, sondern wieder offen zur Verfügung gestellt werden. Für die CodeLib würde eine Subversion-Quellcodeverwaltung zur Verfügung stehen, um den verbesserten Code einzuchecken.

Falls du detaillierte Fragen zu access-codelib.net hast, könntet du sie auch im dortigen Forum stellen. Ich beantworte die Fragen zwar auch gerne hier, weiß aber nicht, ob solche Fragen hier gerne gesehen werden, da es sich nicht mehr um Access-Fragen handelt.

/edit: Import-Wizard angepasst: Ein Doppelklick (oder {F2}) auf den in der Listbox ausgewählten Eintrag öffnet nun die Datei im Verzeichnis mit dem Standardprogramm für die jeweilige Datei-Erweiterung (bei Bedarf muss man noch den passenden Texteditor/viewer für frm, cls und bas einstellen).

mfg
Josef

Optiplex

#19
Hallo Josef,
genauso habe ich das gemeint, dass wenn man auf die Datei geht, einen Text in einem anderen Fenster oder direkt im Wizard angezeigt bekommt.

Zitat
/edit: Import-Wizard angepasst: Ein Doppelklick (oder {F2}) auf den in der Listbox ausgewählten Eintrag öffnet nun die Datei im Verzeichnis mit dem Standardprogramm für die jeweilige Datei-Erweiterung (bei Bedarf muss man noch den passenden Texteditor/viewer für frm, cls und bas einstellen).

Dies ist eine Lösung, eine andere wäre in dem <codelib> Bereich einen Tag z.B. <doc> einzuführen und diese Zeilen dann im Wizard direkt anzuzeigen, aber das ist deine Sache, (nur ein Vorschlag) ich will dir da nicht reinreden. mit der Lösung die du jetzt hast kann man natürlich auch leben.

Zitat
(bei Bedarf muss man noch den passenden Texteditor/viewer für frm, cls und bas einstellen).

Wie in aller Welt stellt man sowas ein? Ich bin noch nicht so bewandert wie du in Access oder in VBA.

Gruß Dieter

Josef P.

Hallo!

ZitatDies ist eine Lösung, eine andere wäre in dem <codelib> Bereich einen Tag z.B. <doc> einzuführen und diese Zeilen dann im Wizard direkt anzuzeigen, aber das ist deine Sache, (nur ein Vorschlag) ich will dir da nicht reinreden.
Ich lasse mir gerne mit Vorschlägen "reinreden". ;)
Ein Tag "<description>" kann sicher nicht schaden.  <doc> klingt für mich etwas zu umfangreich. Es sollte eigentlich nur eine kurze Beschreibung und keine vollständige Code-Dokumentation im Add-In-Fenster zu sehen sein, oder?

Zitat
Zitat(bei Bedarf muss man noch den passenden Texteditor/viewer für frm, cls und bas einstellen).
Wie in aller Welt stellt man sowas ein? Ich bin noch nicht so bewandert wie du in Access oder in VBA.
Damit meinte ich die Windows-Einstellung. Du musst dich aber nicht weiter darum kümmern. Sollte im Assistenten kein passendes Programm für die Dateierweiterung gefunden werden, kommt sowieso das übliche Windows-Fenster, in dem man das Programm auswählen kann. (Das ist der gleiche Dialog, der kommt, wenn du im Windows-Explorer auf eine Datei doppelklickst und Windows nicht weiß, mit welchem Programm es die Datei öffnen soll.)

mfg
Josef

Optiplex

Hallo Josef,

Zitat
Es sollte eigentlich nur eine kurze Beschreibung und keine vollständige Code-Dokumentation im Add-In-Fenster zu sehen sein, oder?

Genau so habe ich das gemeint. Es freut mich, dass du für Vorschläge offen bist. Andere hätte das mit einer mehr oder weniger guten Begründung angeschmettert, weil es für sie arbeit bedeutet hätte.

Ich muss nun allerdings weg, bis morgen Gruß Dieter

Josef P.

Hallo!

Die Version 1.0.2 hat nun beide Funktionalitäten eingebaut.
1. Doppelklick auf den Eintrag öffnet die Text-Datei.
2. Falls ein <description>-Tag vorhanden ist, kann man den Beschreibungstext in der Import-Maske zum ausgewählten Eintrag des Listenfeldes anzeigen lassen.

mfg
Josef

Optiplex

Hallo Josef,
ich muss sagen, dass du schnell bist, aber extra eine Nachtschicht hättest du nicht einlegen müssen. Ok ich lade mir diese Version herunter und probiere sie aus. Gebe dir Bescheid wenn ich sie durchgetestet habe. Ich hoffe sie läuft unter Win 7.

Gruß Dieter

Optiplex

Hallo Josef,
ich nochmal. Von welcher Seite muss ich den die neue Version runterladen? oder hast du sie schon auf der
http://wiki.access-codelib.net/ACLib-Import-Wizard
in den Download reingestellt?

Gruß Dieter

Josef P.

Hallo!

Zitatoder hast du sie schon auf der http://wiki.access-codelib.net/ACLib-Import-Wizard in den Download reingestellt?
Genau das machte ich. :)
Die Versionsnummer sollte eigentlich in der Titelleiste der Maske zu sehen sein. Im Code steht sie im Modul "_config_Application".

mfg
Josef

Optiplex

Hallo Josef,
sorry dass ich mich erst jetzt wieder melde, aber ich hatte die letzten Tage einfach keine Zeit.

Also das Teil ist einwandfrei habe bis jetzt keine Probleme damit und es arbeitet super. Als Addin für die Verwaltung von Modulen, ist es für mich nun komplett, mehr ausbauen sollte man es nicht. Ich habe mir die Seite zu meinen Favoriten abgelegt falls es dochmal noch ein Update gibt. Danke dass du auf alle meine Fragen eingegangen bist und für das schöne Tool. Wenn ich  Fragen zu einem Klassenmodulen habe werde ich mich wieder bei dir melden, denn du scheinst da echt Ahnung davon zu haben.

Bis die Tage und ein schönes Weihnachtsfest für dich und deine Familie

Dieter

Josef P.

#27
Hallo!

Einen Tipp bezüglich Code-Sammlung hätte ich noch:
Wenn du die Codemodule bereits als Text in einer Verzeichnisstruktur liegen hast, könntest du diese Struktur in ein Versionsverwaltungssystem einbinden, damit du bei Problemen auf den Inhalt der vorherigen Versionen eines Moduls zugreifen kannst ohne umständlich in irgendwelchen Archiven/Backups suchen zu müssen.

Mein Lieblingsspruch zum Thema Versionsverwaltung stammt aus http://www.clean-code-developer.de/:
ZitatAngst vor Beschädigung eines "running system" lähmt die Softwareentwicklung. Mit einer Versionsverwaltung ist solche Angst unbegründet. Die Entwicklung kann schnell und mutig voranschreiten.
Zitat aus http://www.clean-code-developer.de/Roter-Grad.ashx#Ein_Versionskontrollsystem_einsetzen_6


ZitatBis die Tage und ein schönes Weihnachtsfest für dich und deine Familie
Danke, das wünsche ich dir auch - und lass dich von Access nicht zu viel ärgern. :)

mfg
Josef