Die Community zu .NET und Classic VB.
Menü

Weihnachtsausschreibung 2004

 von 

Beschreibung  

Einleitung

Wie im letzten Jahr weihnachtet es auch dieses Jahr wieder bei ActiveVB. Und genau deshalb hat sich das Team dazu entschlossen erneut eine Weihnachtsausschreibung ins Leben zu rufen. So gibt es auch diesesmal wieder Aufgaben über die Feiertage, welche mit Bücher- und CD-Preisen entlohnt werden.

Unser Hauptgewinn Das VB6 Kochbuch wird freundlicherweise von der Firma Terrashop bereitgestellt. Den zweiten Preis Visual Basic .NET - einfach klipp & klar hat Microsoft Deutschland zur Verfügung gestellt.

Kurzinfo

Aufgabenstellungen

Es stehen mehrere Aufgabenstellungen zur Auswahl, wobei nur eine davon bearbeitet werden muss. Die Lösungen dürfen für die Weihnachtsglocke und die Musikanimation in VB/6 oder VB.NET erfolgen. Für die POP3-Klasse und das Addin für die VB6-IDE sind nur Einsendungen in VB5/6 erwünscht.

Da die Einsendungen möglichst kreativ sein sollen, wollen wir die Aufgaben nicht zu sehr einschränken. Zwischen den folgenden Aufgabenstellungen kann gewählt werden:

  • Weihnachtsglocke
  • POP3-Klasse
  • Addin für VB6-IDE
  • Musikanimation/Visualisierung

Im Folgenden die Details zu den unterschiedlichen Aufgaben:

Weihnachtsglocke

Da wir im letzten Jahr keine entsprechende Einsendung erhielten, würden wir uns auch dieses Jahr wieder über eine physikalisch korrekt schwingende Weihnachtsglocke freuen. Ein zur Glocke passender Glockenschlag wäre natürlich schön, auch wenn dieser nicht zwingend erforderlich ist. Hierfür könnte man z.B. das SoundGen.ocx einsetzen. Und wer sich mehr Punkte holen will, kann ja ein kleines Konzert veranstallten.

POP3-Klasse

Mit madmax' ESMTP-Klasse haben wir eine leistungsfähige Klasse zum Versenden von E-Mails für VB5/6. Selbiges wünschen wir uns nun auch zum Empfang von E-Mails. Geboten werden sollte eine korrekte Implementierung des POP3-Protokolls, aktuelle Authentifizierungsmechanismen und die Decodierung von unterschiedlich kodierten Dateianhängen. Natürlich dürfen auch aktuelle Erweiterungen des POP3-Protokolls implementiert sein.

Addin für VB6-IDE

Die Addin-Programmierung ist für viele immernoch ein Buch mit sieben Siegeln. Und das obwohl man sich durch Addins für die VB6-IDE das Leben hier und da noch ein wenig mehr erleichtern kann. Wir hätten ein paar Vorschläge für Addins. Das eingesandte Addin sollte mindestens einen dieser Vorschläge umsetzen.

  • Eine Schaltfläche, welche nach der Kompilierung eines Programmes das gerade kompilierte Programm startet, so dass man nicht immer in den Explorer wechseln muss, um das Programm zu starten.
  • Erkennung, wenn der Benutzer im Run-Modus aufs Debug- oder ein Sourcecode-Fenster klickt, um dadurch den Break-Modus auszulösen.
    Hintergrund: Mancher tappt beim Programmieren immer wieder in die Falle, dass er zur Laufzeit etwas ins Debugfenster eingeben will und VB sich einfach verweigert, bis man Strg+Pause gedrückt hat.
  • Schaltfläche und/oder Hotkey um jederzeit (also im Design-, Break- und Run-Modus) das Debugfenster zu löschen. Strg+A und anschließend Entf ist zu umständlich.
  • Schaltfläche und/oder Hotkey um alle Quellcodefenster zu schließen.
  • Eine kumulative Zwischenablage, also eine Kopierfunktion, die den zu kopierenden Text zum Zwischenablageinhalt hinzufügt, anstatt ihn zu ersetzen. Die Kopierfunktion sollte, damit man auch Texte aus fremden Anwendungen übernehmen bzw. hinzufügen kann, über einen globalen Hotkey (vgl. Tips 'n Tricks) realisiert werden.
  • Eine Funktion, die bei der Aktivierung von Subclassing die Stop-Schaltfläche der IDE deaktiviert.

Musikanimation/Visualisierung

Musikanimation/Visualisierung wie man sie von Winamp oder dem Windows Media Player kennt. Also nicht die Darstellung des Frequenzspektrums, sondern eine ansprechende Animation.

Da das Auslesen der Wav-Daten nicht einfach ist und da dieses Thema hier nicht im Vordergrund stehen soll, ist die Verwendung des Soundprocesser.ocx oder auch anderer Komponenten oder DLLs (z.B. fmod oder BASS) zulässig. Diese Komponenten sollen jedoch ausschließlich zum Einlesen der Musikdaten als Audiodaten oder Frequenzspektrum verwendet werden. Eigene Routinen zum Lesen der Daten sind ebenfalls zulässig. Da Letzteres jedoch nicht Thema der Ausschreibung ist, wird der entsprechende Programmteil nicht gewertet.

Als kleine Starthilfe zum Umgang mit dem Soundprocessor.ocx stellen wir ein kleines Beispielprojekt bereit, in dem auch die ersten Schritte zu einer Visualisierung gezeigt werden. In diesem befindet sich auch das Programm Butterflies.exe, welches als Anregung für eine anspruchsvollere Animation dienen könnte.

Soundprocessor.ocx 

Beispielprojekt 

Um die Animation ansprechender zu gestalten, ist hier auch der Einsatz von DirectX sowie OpenGL gestattet!

Bedingungen

Abgesehen von oben genannten Ausnahmen, dürfen nur Standard-VB-Komponenten und API-Aufrufe verwendet werden. Zur Lösung dürfen Auszüge aus unseren Tipps oder aus dem weiteren Angebot von ActiveVB eingesetzt werden, sofern die Quellen genannt werden.

Das Programm sollte unter allen gängigen Windows-Versionen ab Windows 98 laufen.

Ermittlung der Gewinner

Es werden alle Einsendungen ausgewertet, die bis Einsendeschluss eingegangen sind. Die Gewinner werden durch die Vergabe von Punkten ermittelt. Jedes der drei Jurymitglieder vergibt 0-50 Punkte. Einsendungen, die nicht auf allen Testsystemen laufen, erhalten einen Punktabzug. 10 Punkte werden auf "Kreativität" vergeben. Hier werden z.B. spezielle Features oder gute Ideen bewertet.

Strukturierung10 Punkte
Verständlichkeit10 Punkte
Eleganz10 Punkte
Kommentierung10 Punkte
Kreativität10 Punkte

Weitere Regelungen

Einsendungen müssen per Email an gesandt werden.

Die Themen dürfen im Forum diskutiert werden, Einsendungen werden jedoch bis zum Einsendeschluß geheimgehalten.

Preise

Das VB6 Kochbuch* von Doberenz & Kowalski sollte bei keinem (werdenden) VB5/6-Profi im Regal fehlen. Einer der Gewinner erhält eine Ausgabe dieses 1000 Seiten starken Buches.

Visual Basic .NET - einfach klipp & klar ist ein Buch für all jene die bisher noch nicht mit VB.NET gearbeitet haben und dies nun ändern wollen.

Die 10 besten Einsendungen erhalten jeweils eine Ausgabe der ActiveVB Archiv CD (Frühjahr 2004), deren Bestand sich so langsam dem Ende neigt.

Die Einsender werden gebeten mit ihrer Einsendung gleich die Lieferadresse und den gewünschten Preis anzugeben.

Wir danken unseren Sponsoren Terrashop und Microsoft Deutschland für die Bereitstellung der Buchpreise.

Der Rechtsweg ist ausgeschlossen!

Anmerkung

Alle Einsendungen dürfen nach Einsendeschluß von ActiveVB veröffentlicht werden.

*) Auf Wunsch kann auch ein anderes Buch gleichen Wertes geliefert werden.

Lösung  

Zur Freude des gesamten Teams erreichten uns insgesamt 14 Einsendungen bis die Sektkorken knallten. 4 Glocken, 2 Visualisierungen, 5 Addins und 3 POP3-Klassen.

Generell haben wir, die Juroren, anzumerken, dass viele Projekte nur durch Modifikationen zum Laufen zu bringen waren. So fehlte etwa beim Projekt von Stefan Schulte die Bibliothek DirectX 8 for Visual Basic Type Library dx8vb.dll. Jonas Webers Projekt enthält einen Verweis auf die Bibliothek Microsoft Connection Designer Instance 1.0, die auf keinem unserer Systeme mit dem Visual Studio 6 Professional bzw. Enterprise verfügbar war. Die Scrollrad-Unterstützung von Alfred Koppold brachte auf jedem unserer Testsysteme die IDE dazu sich zu verabschieden.

Aber es gab nicht nur negatives, sondern auch sehr gute Lösungen. Ich freute mich z.B. als eines der Addins das Löschen des Debug-Fensters per Hotkey ermöglichte und dies auch bei einem laufenden Projekt korrekt funktionierte. Die Glocke mit DirectX war ebenfalls sehr schön anzusehen, wenn sie auch nicht gewonnen hat.

Merkwürdig fanden wird, dass ein Teil der Addins nur Quellcodefenster, nicht aber Formulardesignerfenster schlossen. Und das Funktinsmerkmal des Startens der kompilierten EXE aus der IDE heraus war in vielen Fällen eher schnell dahin geschrieben. Anders kann ich es mir nicht erklären, dass meine IDE abstürzte, als ich ein solches Addin auf sein eigenes Projekt anwandte. Es kompilierte seine eigene Addin-DLL, benannte die Endung in EXE um und starte dann diese EXE per Shell-Befehl, sodass sich meine IDE in den Speicherhimmel verabschiedete.

Genug der vielen Worte. Gewonnen haben Matthias May (POP3-Klasse) und Philipp Burch (Weihnachtsglocke). Wir gratulieren beiden zu ihren Einsendungen. Matthias May erhält das Das VB6 Kochbuch und an Philipp Burch geht Visual Basic .NET - einfach klipp & klar.

Die CDs für die 10 besten Einsendungen gehen an (in alphabetischer Reihenfolge):

  • Samuel Bergen
  • Claus v.d. Burchard
  • Philipp Burch
  • Jonathan Haas
  • Alfred Koppold
  • Matthias May
  • Achim Neubauer
  • Stefan Schulte
  • Georg Wächter
  • Thomas

Einsendungen zur Weihnachtsausschreibung 2004