Windows-Programmierung mit dem C++ Builder 3 von Borland

Slides:



Advertisements
Ähnliche Präsentationen
Microsoft® Office Excel® 2007-Schulung
Advertisements

Die Installation von Windows 95 erfordert etwas Vorarbeit: Als erstes müssen Sie mit einer Windows 95 Startdiskette den Computer booten.... Dabei wird.
Bankverbindungen und Beiträge in bestehende Personendaten übertragen
Windows-Programmierung
Anleitung Autosketch Tutorial.
Dateihandles Um in Perl eine bestimmte Datei zum Lesen, Schreiben oder Anhängen zu öffnen, benötigt man so genannte Dateihandles. Ein Dateihandle ist der.
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
Windows Explorer.
Installationsanleitung 1.02 Hausverwaltung.
Excel Kurs Teil I Excel starten, Verknüpfungen auf dem Desktop anlegen. F. Bäumer.
Einführung in Visual C++
WINDOWS-Programmen Mit der Hilfe Microsoft Visual C++. Vortrag: Alexandra Werner 7. Und
Wir müssen also überlegen: Implementierung der Knoten, Implementierung der Kanten, daraus: Implementierung des Graphen insgesamt. Annahme: die Knoteninhalte.
Briefkopfbogen anpassen
Rechnungserstellung Wenn Sie diese Präsentation (Rechnungserstellung.html) im Internet-Explorer ablaufen lassen wollen, so klicken Sie bitte auf das Leinwandsymbol.
Ehrungen im eigenen Verein
Beiträge erheben Im Internet-Explorer müssen Sie zum Start der Präsentation Beitraege erheben.html auf das Leinwandsymbol unten rechts klicken. Mit einem.
Bankdatei erstellen Im Internet-Explorer müssen Sie zum Start der Präsentation Bankdatei erstellen.html auf das Leinwandsymbol unten rechts klicken. Mit.
Etikettendruck Wenn Sie diese Präsentation im Internet-Explorer ablaufen lassen wollen, so klicken Sie bitte auf das Leinwandsymbol unten rechts. Mit einem.
Verdienstmedaillen Wenn Sie diese Präsentation im Internet-Explorer ablaufen lassen wollen, so klicken Sie bitte auf das Leinwandsymbol unten rechts. Mit.
Delphi Eine objektorientierte Programmiersprache © Beushausen 2000.
Tipps und Tricks für Word 2000 Aytac, Felix, Steffen 04/05.
Ein Computerprogramm zur Erstellung von Concept Maps
Empfangene s Neue schreiben Textfenster für empfangene s Adressbuch
Eine Bewerbung schreiben
Eine Bewerbung schreiben
Kapitel 1 – Erste Schritte
Anlegen von Ordnern, speichern und Öffnen von Bildern und Briefen
Ich möchte gerne mehrere Bilder auf ein Folie
In dem Login-Bereich können lektorat.de-Kunden ihren Datensatz eigenständig pflegen und aktualisieren. Wie gelangen Sie in diesen Bereich? Der Zugang zum.
PowerPoint.
Wie man eine einfache Präsentation erstellt...
Unter Start => Geräte und Drucker öffnen – dieses Bild erscheint. Hardware (in diesem Falle PhoenixRC V6.0 (Dongle) sollte angezeigt werden. Dort mit der.
Hallo! Ich zeige dir, wie du eine eigene Präsentation gestalten kannst! Beginne eine neue Präsentation mit einer leeren Folie. Wie das geht, steht auf.
Auf Wunsch einer einzelnen Dame
1.) Programmaufruf und Einloggen:
Microsoft Outlook Express zur Einführung von Microsoft Outlook Express. Willkommen Erstellt von IT-Intern.
Zum verständlich machen, wozu die Trigger-Funktion geeignet ist,
Excel 97 Einführung - Start -.
Übungsaufgaben für Microsoft Excel
Powerpoint 2010 Start Funker Panorama: Zuschauer auf der Elbbrücke beim Weinfest 2011 in Meißen.
Klicken Sie in der Meldungsleiste auf Bearbeitung aktivieren,
wenn ich auf eine bestimmte Stelle auf einer Folie klicke
Anlegen von Ordnern, speichern und Öffnen von Bildern und Briefen
Einführung in das Programm
Wie man eine einfache Präsentation erstellt...
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
Grundlagen von Objekt-Pascal Erstellt von J. Rudolf überarbeitet von H.Brehm.
die Auftragsbearbeitung für den Kleinbetrieb
Bestandsmeldung erstellen Im Programm Powerpoint wird die Präsentation mit F5 gestartet und mit Esc beendet. Mit einem Klick der linken Maustaste oder.
Autor: Peter Pfeiffer Seite: Peter Pfeiffer Memeler Str Bad Oeynhausen Datentransfer Zwischen dem Eingabemodul und den mitgelieferten.
Einführung. Steuerelemente Hier erstellt man das Fenster, mit dem der Anwender später arbeiten soll: Werte eingibt Buttons klickt Auswahlen trifft.
Herbers Excel-Server - der Workshop
Ehrennadeln ermitteln Wenn Sie diese Präsentation im Internet-Explorer ablaufen lassen wollen, so klicken Sie bitte auf das Leinwandsymbol unten rechts.
Herbers Excel-Server - der Workshop
Erste Schritte in DELPHI
Dokumente meistern Dokumente anlegen Dokumente speichern
Die Vereinsverwaltung unter Windows 2000 Anhand der folgenden Präsentation werden Sie mit der Verwaltung des Vereins unter Windows 2000 vertraut gemacht.
Lektion 1 - Lektion 2 - Lektion 3 - Lektion 4
Installation, Konfiguration, Online stellen, Zugriff © by Lars Koschinski 2003.
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
Datenaustausch Wenn Sie diese Präsentation im Internet-Explorer ablaufen lassen wollen, so klicken Sie bitte auf das Leinwandsymbol unten rechts. Mit.
Beständiger Chat Lync Kurzübersicht
Pool Informatik, Sj 11/12 GZG FN W.Seyboldt 1 Pool Informatik 5 GZG FN Sj. 11/12 Kopieren, Daten, Programme.
Der Taskmanager ist Bestandteil des Betriebssystems, der als Prozessmanager Prozessmanager unter anderem die aktuell laufenden Programme und Prozesse.
Arbeiten mit WordSmith 4. Inhalt 1. Arbeiten mit der Funktion Wortliste (im getaggten Korpus) 1. Arbeiten mit der Funktion Wortliste (im getaggten Korpus)
Um einen Serienbrief zu erstellen, sind im Wesentlichen 3 Schritte erforderlich: 1.Das Dokument in Word erstellen und im Serienbrief-Ordner ablegen 2.Die.
J. Nürnberger2007 / 081 Tabellenkalkulation (3) Arbeiten mit Formeln am Beispiel von OpenOffice.org Calc.
 Präsentation transkript:

Windows-Programmierung mit dem C++ Builder 3 von Borland Prof. Dr. W. Voigt CES-Löbau

Windows-Programmierung Reihenfolge der Programmabarbeitung durch Reihenfolge der Prozeduren festgelegt Kommandozeilen-Programme verhalten sich prozedurorientiert Der Nutzer legt die Reihenfolge der Programmabarbeitung fest. Windows-Programme verhalten sich ereignisorientiert Windows-Programme teilen sich den Bildschirm den Speicher die Rechenzeit Sie bestehen aus Fenstern. Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Messages (Nachrichten) Konzeption der Nachrichten: Zu jedem Ereignis wird eine Nachricht erzeugt Das kann sein: Tastendruck, Mausbewegung, Menübefehl. Die Nachrichten werden in Warteschlangen gestellt. Aus den Warteschlangen werden die Nachrichten verteilt, weitergeleitet oder abgeholt (hängt vom Betriebssystem ab) Schlussfolgerung: Von Windows-Programmen sind Fenster und Nachrichten zu verwalten. Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Inhalt einer Nachricht Kennziffer (Handle) des Fensters, welches die Nachricht empfangen soll. typedef struct { HWND hwnd; UINT message; WPARAM wparam; LPARAM lparam; DWORD time; POINT pt; } meldung; Nummer der Nachricht Spezifizierung der Nachricht. Uhrzeit der Nachricht Mausposition zur Zeit der Erzeugung der Nachricht Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Inhalt einer Nachricht Gesendet bei einer Mausbewegung Einige Nachrichten: WM_MOUSEMOVE WM_LBUTTONDBLCLK WM_PAINT WM_DESTROY Gesendet bei Doppelklick mit der linken Maustaste Gesendet als Aufforderung zum Neuzeichnen des Fensters Gesendet zum Beenden des Programms Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Prof. Dr. W. Voigt CES-Löbau Benötigte Funktionen Die „Hauptfunktion“ wird mit WinMain bezeichnet. Sie: füllt eine Fensterstruktur mit Attributen. registriert das Fenster bei Windows (Anmeldung) erschafft das Fenster und zeigt es erzeugt eine Nachrichtenschleife mit Übersetzung und Verteilung der Nachrichten WNDCLASS wc; RegisterClass(&wc); Hauptfenster = CreateWindow(... TranslateMessage(&meldung); DispatchMessage(&meldung); Diese Funktionen sind in einer Bibliothek enthalten. Sie werden API-Funktionen genannt (Application Programming Interface) Die Prototypen befinden sich in „windows.h“. Eine weitere Funktion „Fensterfunktion“ empfängt die Nachrichten von WinMain und wertet sie aus. Entsprechend dem Typ und Inhalt der Nachricht sorgt der Programmierer dafür, dass als Reaktion auf die Nachricht Aktionen erfolgen Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Prof. Dr. W. Voigt CES-Löbau Beispiel „Zeichne“ Die wichtigsten Bestandteile des Programms wurden in den vorigen Folien angegeben Funktionalität: Bei Programmstart wird ein leeres Fenster mit weißem Hintergrund erzeugt. Mit der linken Maustaste kann im Fenster beliebig gemalt werden. Doppelklick mit der linken Maustaste beseitigt das Gemalte, der Hintergrund wird wieder weiß. Nachrichten Funktionen Erzeugung eines Projektes mit dem Quelltext „Zeichne.cpp“: DateiNeuAnwendung Fenster „Projektverwaltung“ öffnen Unit1 entfernen Projekt als „zeichne.bpr“ speichern. Datei „Zeichne.cpp“ schließen Originaldatei mit komplettem Quelltext „Zeichne.cpp“ in das Projektverzeichnis kopieren Programm starten Kompletter Quelltext Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Aufgabe 1 Das Programm „Zeichne“ soll um folgende Funktionalität erweitert werden: Bei Klick mit der rechten Maustaste soll eine Dialogbox mit der Meldung „Klick mit der rechten Maustaste“ erscheinen (In der Titelleiste soll stehen: „Meldung“). Syntax (für unsere Zwecke): MessageBox(NULL, „<Text der Nachricht>“, „<Titel des Dialogs>“, MB_OK); MB_OK ist eine Konstante, die zu MessageBox gehört. Als Nachricht sollte WM_RBUTTONUP benutzt werden. Warum nicht WM_RBUTTONDOWN? Programm starten Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Prof. Dr. W. Voigt CES-Löbau Aufgabe 2 Der Hintergrund des Programms soll Grau sein (GRAY). An Stelle des Kreuzkursors soll ein Pfeilkursor benutzt werden (ARROW). Der Text in der Titelzeile soll lauten: Zeichenprogramm für Anfänger Programm starten Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Prof. Dr. W. Voigt CES-Löbau Nothing is perfect ... Um das Neuzeichnen bei Programmwechsel müssen wir uns also selbst kümmern, während das Neuzeichnen bei Messageboxen durch das Betriebssystem erfolgt. Das Neuzeichnen durch den Programmierer ist aber ein relativ komplexer Mechanismus! Funktionalität mal aus anderer Perspektive: Wir malen ein bisschen in unserem Programm. Dann wechseln wir mit Alt + Tab in ein anderes Programm (etwa den Explorer). Danach kehren wir mit Alt+Tab in das Zeichenprogramm zurück. Die Zeichnung ist verschwunden (zumindest der Teil, der verdeckt war). Das Programm ist also noch nicht gerade für den Verkauf geeignet. Nun zeichnen wir wieder und öffnen dann die Messagebox. Wenn sie geschlossen ist, ist die Zeichnung dahinter noch vorhanden. Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Prof. Dr. W. Voigt CES-Löbau Ressourcen In einem extra Bereich des Programms werden Materialien gespeichert, auf die das Programm bei Bedarf zurückgreifen kann (Ressourcen). Das sind Menüs Dialogboxen Bitmaps Ikonen Tastenkombinationen für beschleunigten Zugriff Zeichenketten Versionsinformationen Diese Ressourcen werden bei der Programmierung in einer extra Datei verwaltet (Ressourcen-Datei .RC). Sie werden durch einen extra Compiler compiliert und erst beim Linken der EXE zugefügt. Aber: Die Einbindung von Ressourcen in klassischem Windows ist ziemlich ungemütlich, und wir wollen darauf verzichten. Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Prof. Dr. W. Voigt CES-Löbau Experten und Zauberer ... ... erleichtern die Arbeit des Windows-Programmierers ungemein. Beherrschen muss er jetzt: C++-Programmierung Die mit der Entwicklungsumgebung mitgelieferten Klassenbibliotheken. Auch ohne Zauberer hat der Windows-Programmierer nicht jedes Programm von Anfang an neu geschrieben, sondern vorhandene Programmgerüste benutzt. Trotzdem war das Programmieren mühselig. Nun geht man davon aus, daß der Rahmen für ein Windows-Programm im wesentlichen immer der gleiche ist: Eine MDI-Anwendung (MDI - Multiple Document Interface). Eine SDI-Anwendung (SDI - Single Document Interface). Eine Dialogbox. Der Experte oder Zauberer erzeugt das lauffähige Basisprogramm. verwaltet neu hinzukommende Klassen. kümmert sich um die Verbindung zwischen Ressourcen und Programmcode. Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Prof. Dr. W. Voigt CES-Löbau Experten und Zauberer 2 Zauberer werden von Visual C++ (Microsoft) benutzt: Application Wizard - zaubert eine neue Anwendung Class Wizard - verwaltet Klassen und verbindet Ressourcen mit Klassen. Experten werden von Borland C++ (Borland Corp.) benutzt: Application Expert - erzeugt eine neue Anwendung Class Expert - verwaltet Klassen und verbindet Ressourcen mit Klassen. Der Weg zu einer neuen Anwendung im Borland C++Builder: Menü DateiNeuProjekteSDI-Anwendung Wählen Sie das Verzeichnis und den Namen für das neue Projekt. Der Name sei „Test“. Das Projekt kann sofort erstellt werden. Man erhält ein Programm, welches bereits Datei-Mechanismen kennt, aber keine weitere Funktionalität besitzt. Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Der Experte ist am Wirken. Aufgaben Führen Sie die gleichen Prozesse noch einmal durch, aber mit folgenden Abwandlungen: Fenstermodell MDI anstelle SDI Fenstermodell „Dialogbox“ Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Prof. Dr. W. Voigt CES-Löbau Wir modifizieren ... Vorarbeit: Öffnen Sie die Dialogbox „About“ mittels Klick auf den kleinen Dialog im Dateibaum. Schalten Sie im Objektinspektor auf „Eigenschaften“. Wir ändern die Dialogbox: Selektieren Sie jeweils die Texte und ändern Sie im Objektinspektor die Captions Produktname: „Mein Computerprogramm“ Version: „Version 1.0.27“ Copyright: „Copyright Firma xyz“ Kommentare: „Dieses Programm ist durch zahlreiche internationale Verträge geschützt.“ Titelzeile: „Informationen zum Programm“ Erstellen Sie neu und prüfen Sie das Ergebnis! Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Wir erweitern das Menü ... „Action“ ist gefordert! Vorarbeit: Menü suchen Klicken Sie im Dateibaum auf die AppForm. Man erhält den „Rahmen“ des Programms. Im gepunkteten Bereich befinden sich drei Symbole, die das Menü symbolisieren, das Hauptmenü und die beiden Menübefehle. Wir erweitern das Menü: Selektieren Sie das Symbol für das Hauptmenü Wählen Sie „Eigenschaften“ im Objektinspektor. Klicken Sie unter Items auf die rechte Spalte mit „Menü“ Klick auf die drei Punkte rechts öffnet das Editierfenster. Selektieren Sie ganz unten den freien Platz und schreiben Sie im Objektmanager unter Caption „Eigener &Dialog“. Ziehen Sie den neuen Eintrag nach oben unter „Speichern“ „Action“ ist gefordert! Der Befehl lässt sich anwählen, aber es passiert – nichts! Erstellen Sie neu und prüfen Sie das Ergebnis! Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Der Befehl zeigt Wirkung! Unser Ziel: Bei Auswahl des Menübefehls soll eine Messagebox erscheinen mit der Mitteilung: „Menübefehl wurde erfolgreich ausgeführt!“ Wie bereits einmal durchgeführt, öffnen Sie das Menü mit selektiertem „Eigener &Dialog“. Wählen Sie im Objektinspektor „Ereignisse“. Dann steht ganz oben „Eigener Dialog1: TMenuItem“ Schreiben Sie rechts von OnClick „MessageZeigen“. Es wird eine neue Funktion erzeugt, der Rahmen ist komplett vorhanden. Wie eine MessageBox aufgerufen wird, ist bereits bekannt. Tragen Sie den Aufruf in den Funktionskörper ein! Erstellen Sie neu und prüfen Sie das Ergebnis! Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Prof. Dr. W. Voigt CES-Löbau Was ist passiert? Ein weitere Experte war am Wirken ... Der Eintrag in das Feld OnClick des Objektmanagers hat eine Reihe von Wirkungen gezeigt. Der Programmierer wird nur noch mit dem Ende der Kette konfrontiert: Das ist eine Funktion, die mit dem Auslösen des Menübefehls aufgerufen wird. Alles übrige bleibt verborgen. Es wird durch den Klassenexperten an den erforderlichen Stellen eingetragen. Möglich wurde dieses Vorgehen durch das Prinzip der objektorientierten Programmierung. Klassenbibliotheken enthalten allen Quellcode, der von Anwendungsexperten und Klassenexperten verarbeitet werden kann. Der Programmierer programmiert nur das, was er tatsächlich einstellen oder verändern kann. Daraus folgt aber nicht, dass der Programmierer jetzt weniger Kenntnisse benötigt. Das Gegenteil ist der Fall. Er muss die klassische Programmierung beherrschen, dazu die Methoden der Objektorientierung, und schließlich muss er die Klasssenbibliotheken der Entwicklungsumgebung kennen. Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Programm „Quadrat“ Ziel: Das Programm „Quadrat“. Es berechnet Quadrate und dritte Potenzen einer Zahl So soll das Ergebnis aussehen: Sie benötigen eine neue Anwendung des AppExpert, aber diesmal in der Form einer Dialogbox. Mit den Voreinstellungen kann etwas experimentiert werden. Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Prof. Dr. W. Voigt CES-Löbau Dialogbox erstellen ... Der Anwendungsexperte erzeugt eine Dialogbox (nötige und unnötige Vorarbeiten): Möglicherweise knirscht hier etwas im Builder. Ein reines Dialogprojekt erhält man, wenn der Projektbuilder neu geöffnet wird. Man erhält es (möglicherweise) nicht über das Dateimenü. Das neue Projekt wird in einem Verzeichnis „Quadrat“ gespeichert. Namensänderungen führen zu Fehlern (Programmierfehler im Builder!). Dann wird der alte Projektbaum geöffnet und das neue Projekt eingehängt. Erstellen und Starten zeigen uns eine leere Dialogbox. Ihre Arbeitsfläche kann sofort verkleinert werden. Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Wir füllen die Dialogbox Zunächst brauchen wir zwei Schalter: Einen zum Berechnen von Quadrat und dritter Potenz, einen zum Schließen. Klicken Sie den Schalter in der Standardleiste der Ressourcen an. Klick danach auf die Form bildet sie dort ab. Für die Vergabe von Namen usw. wird ständig der Objektmanager benutzt. Vergeben Sie Caption „&Berechnen“, Name „BBerechnen“ Caption „Sch&ließen“, Name „BSchliess“ Titel des Dialogs „Berechnung von Quadrat und dritter Potenz“ Erstellen Sie neu und prüfen Sie das Ergebnis! Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Die Schalter beschäftigen uns weiter ... Berechnen-Schalter Default auf true Hint „Neuberechnung der Werte“ ShowHint auf true Ereignis OnClick „Berechnen“ Schließen-Schalter Default auf false Hint „Das Programm wird beendet“ ShowHint auf true Ereignis OnClick „Beenden“ Die erzeugte Funktion ruft Close(); Damit wird das Programm beendet. Erstellen Sie neu und prüfen Sie das Ergebnis! Das Programm lässt sich jetzt vernünftig schließen. Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Prof. Dr. W. Voigt CES-Löbau Schreiben von Zahlen Eingabe der Zahl Die Zahl wird in einem sogenannten Editfeld eingeben. Wir holen es aus der Standardleiste und plazieren es geeignet. Über das Editfeld setzen wir ein Label mit der Caption „Zahl eingeben:“ Hint zum Editfeld: „Zahl eingeben, die potenziert werden soll ShowHint auf true Text werde auf 1 gesetzt Ausgabe der Zahlen Zwei Labels und zwei Editfelder. Bei beiden Editfeldern wird ReadOnly auf true gesetzt, damit ein Editieren nicht möglich ist. Erstellen Sie neu und prüfen Sie das Ergebnis! Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Das eigentliche Rechnen Klassische Nostalgie Ein klassisches Konsolenprogramm würde sinngemäß nur diese wenigen Zeilen enthalten. So ist eben die Entwicklung. Die Funktion „Berechnen“ Ist auf OnClick des Schalters bereits erzeugt worden. Sie wird nun gefüllt. Der Text des Edit1 steht über Edit1->Text zur Verfügung. Er wird in einen Puffer geschrieben. Dann wird der Text mittels atoi in eine Zahl konvertiert. Die Zahl wird quadriert und zur dritten Potenz erhoben. Das Ergebnis wird in Zeichenketten umgewandelt und in die Editfelder geschrieben. void __fastcall TForm1::Berechnen(TObject *Sender) { int Size = Edit1->GetTextLen(); Size++; char *Buffer = new char[Size]; Edit1->GetTextBuf(Buffer,Size); int n = atoi(Buffer); itoa(n * n, Buffer, 10); Edit2->Text = Buffer; itoa(n * n * n, Buffer, 10); Edit3->Text = Buffer; delete Buffer; } Erstellen Sie neu und prüfen Sie das Ergebnis! Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau

Prof. Dr. W. Voigt CES-Löbau Ende Vielen Dank dafür, dass Sie so gut mitgespielt haben! Mögen Sie zukünftig ein bisschen Spaß am Programmieren haben. wünscht Ihnen Windows-Programmierung Prof. Dr. W. Voigt CES-Löbau