Windows-Programmierung mit C++ Ein Crash-Kurs



Ähnliche Dokumente
Delphi eine Einführung

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Erstellen von x-y-diagrammen in OpenOffice.calc

Lehrer: Einschreibemethoden

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Einrichtung HBCI-Schlüsseldatei in VR-NetWorld-Software

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Kurzanleitung zur Bereitstellung von Sachverhalten und Lösungen zum Universitätsrepetitorium auf dem Server unirep.rewi.hu-berlin.

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Professionelle Seminare im Bereich MS-Office

teamsync Kurzanleitung

Ein Projekt mit JavaFX erstellen

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Einrichtung HBCI mit PIN/TAN in VR-NetWorld-Software

Vorgehensweise bei Lastschriftverfahren

Erstellen einer digitalen Signatur für Adobe-Formulare

Informatik Kurs 12 André Hoffmann. Delphi. Einführung in die Windows- Programmierung

2. Im Admin Bereich drücken Sie bitte auf den Button Mediathek unter der Rubrik Erweiterungen.

Bilder zum Upload verkleinern

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen.

Konvertieren von Settingsdateien

TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE!

Urlaubsregel in David

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Inhaltsverzeichnis Dokumentverwaltung Organisation von Dokumenten Ordner erstellen Dokumente im Dateisystem behandeln...

Textgestaltung mit dem Editor TinyMCE Schritt für Schritt

Stand: Adressnummern ändern Modulbeschreibung

Zwischenablage (Bilder, Texte,...)

Erstellen einer GoTalk-Auflage

Diese Anleitung wurde erstellt von Niclas Lüchau und Daniel Scherer. Erste Anmeldung. Schritt 1: Anmeldung..2. Schritt 2: Passwort setzen 3

Abwesenheitsnotiz im Exchange Server 2010

Zählen von Objekten einer bestimmten Klasse

Arbeiten mit UMLed und Delphi

inviu routes Installation und Erstellung einer ENAiKOON id

Updatebeschreibung JAVA Version 3.6 und Internet Version 1.2

Die Textvorlagen in Microsoft WORD und LibreOffice Writer

Die elektronische Rechnung als Fortsetzung der elektronischen Beauftragung so einfach geht es:

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Starten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace.

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Ein Bild in den Text einfügen

Aufklappelemente anlegen

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Gimp Kurzanleitung. Offizielle Gimp Seite:

GEONET Anleitung für Web-Autoren

Outlook-Daten komplett sichern

Bedienung des Web-Portales der Sportbergbetriebe

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Access Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli inkl. zusätzlichem Übungsanhang ACC2010-UA

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Zahlen auf einen Blick

Ihr Ideen- & Projektmanagement-Tool

Print2CAD 2017, 8th Generation. Netzwerkversionen

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Funktion «Formulare» in educanet²

ecaros2 - Accountmanager

DELFI. Benutzeranleitung Dateiversand für unsere Kunden. Grontmij GmbH. Postfach Bremen. Friedrich-Mißler-Straße Bremen

Teaser-Bilder erstellen mit GIMP. Bildbearbeitung mit GIMP 1

Wie halte ich Ordnung auf meiner Festplatte?

Datei Erweiterungen Anzeigen!

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

Installation von Druckern auf dem ZOVAS-Notebook. 1. Der Drucker ist direkt mit dem Notebook verbunden

Erstellen eines Screenshot

STRATO Mail Einrichtung Mozilla Thunderbird

FORUM HANDREICHUNG (STAND: AUGUST 2013)

CodeSaver. Vorwort. Seite 1 von 6

Einführungskurs MOODLE Themen:

PowerPoint: Text. Text

1 BEDIENUNGSANLEITUNG

Hinweise zum Übungsblatt Formatierung von Text:

Step by Step-Anleitung Version 1.00 vom 03. März 2009 Christian Schnettelker,

Elexis-BlueEvidence-Connector

teischl.com Software Design & Services e.u. office@teischl.com

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Die YouTube-Anmeldung

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

Tutorial: Gnumeric installieren und Jahres-Kostenübersicht erstellen mit Diagramm

MARCANT - File Delivery System

Handbuch für Redakteure

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

Kapitel 3 Bilder farblich verändern - Arbeiten mit Objekten

Windows 7 Ordner und Dateien in die Taskleiste einfügen

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

Anleitung über den Umgang mit Schildern

Microsoft Access 2010 Navigationsformular (Musterlösung)

Einrichten der konten

BackMeUp. Benutzerhandbuch. CeQuadrat

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Bitte wenden. Name: KURSARBEIT NR. 4 (10 DIFF GA) Seite 1

Process4.biz Release Features Übersicht. Repository. Das Schützen von Diagrammen wurde optimiert (check-in, check-out)

(C)opyright 2009 by Jochen Vajda

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

NoClick. Eine kurze Anleitung. Kommhelp e.v Vereinsregister. Spendenkonto kommhelp e. V. Konto Horstweg 25

Handbuch ECDL 2003 Basic Modul 6: Präsentation Diagramm auf einer Folie erstellen

Transkript:

Windows-Programmierung mit C++ Ein Crash-Kurs Einleitung Literaturempfehlungen: Charles Petzold Windows-Programmierung (Microsoft Press-Verlag) Richard Kaiser C++ mit dem Borland C++ Builder (Springer-Verlag)

Bisher: Konsolenprogrammierung (textbasiertes Fenster) (Anwendung lief als single-task, DOS-Basis) Jetzt: Windows-Programme (C, C++, C#, Java, VB, Delphi,...) (Anwendungen teilen sich Systemressourcen und sind interaktiv) Was brauchen wir dazu? IDE (Integrated Development Enviroment) Microsoft Visual C++ Borland C++ Builder! Unter VC und BCB geschriebene Programme sind nicht 100% kompatibel. Bei beiden Vertretern wird visuell programmiert.

Es gibt zwei verschiedene Arten/Konzepte der Vorgehensweise bei der Programmentwicklung in C: C und WinAPI (application programming interface) Sammlung fertiger Klassen in der Master-Header-Datei windows.h; Programmierung erfordert relativ viel Handarbeit, fördert aber das Verständnis interner Abläufe und Zusammenhänge) C++ und MFC (Microsoft foundation classes) (rein objektorientierter Entwurf mit speziellen Assistenten, speziell für den Entwurf komplexer Anwendungen geeignet)! Die WinAPI (auch API oder API32) wird im BCB unter der Bezeichnung VCL (Visual component library) verwaltet. Demzufolge sind die notwendigen Operationen und der Bezeichnung VCL zu suchen! Es gibt zwei Arten von Programmen: SDI (single documents interface) MDI (multiple documents interface) Dabei muss dann noch unterschieden werden, ob z.b. eine Anwendung (exe) oder eine Klassenbibliothek (dll) erstellt werden soll.

Nach dem Kompilieren, Linken und Ausführen mit F9 wird BCB stets mehrere Dateien erzeugen: mak Projektdatei cpp Quelltext der Unit (Eintrittsdatei mit WinMain-Aufruf) dfm Formulardatei exe ausführbare Datei res Ressourcendatei (Bilder, Sounds) Hinweise Die Projektdatei und der Quelltext dürfen nicht den gleichen Dateinamen bekommen! Die Dateien mit der Endung obj, tds, il* und exe können gelöscht werden. Sie werden beim nächsten Start wieder erzeugt! Die mit Tilde ~ beginnenden Dateitypen sind Backupdateien. Hierzu ist ex ratsam sich eine.bat-datei anzulegen mit folgendem Inhalt: del *.~* del *.obj del *.tds del *.il? Nach ihrem Aufruf werden die unnötigen Dateien automatisch gelöscht.

Jedes weitere Formular erzeugt eine.cpp, eine.dfm und eine.h-datei! Eine vom C++Builder automatisch erzeugte Funktion sollte man nicht manuell löschen. Der C++Builder entfernt eine solche Funktion beim nächsten Kompilieren automatisch, wenn zwischen den geschweiften Klammern kein Text steht. Interessant auch die Tastenkombination STRG+SHIFT+I (bzw. U) zum Ein-bzw. Ausrücken markierter Textblöcke! In BCB existiert eine kontextsensitive Hilfe, die nach dem Anklicken der zu hinterfragenden Komponente/Anweisung mittels F1 abgerufen werden kann.

Ein erstes Projekt (versuch0proj.mak) void fastcall TForm1::Knopf1Click(TObject *Sender) { if (Label1->Caption=="") Label1->Caption = "HUHU HIER BIN ICH!"; else Label1->Caption = ""; } if (Knopf1->Caption == "AN") Knopf1->Caption = "AUS"; else Knopf1->Caption = "AN"; Benötigt wird ein Button (Knopf1) und ein Label (Label1). Hier wird demonstriert, wie man Attribute manipuliert und wie man Ereignissen (hier: Knopf1Click) eine bestimmte Aktion (Methode) zuordnet. (Wenn auf den Button geklickt wird und das Label keinen Text enthält, bekommt es einen Text, sonst wird sein Text gelöscht. Außerdem wird die Beschriftung (Caption) des Buttons gewechselt)

Die Klassen der VCL Vergleich VCL vs. MFC

Hierarchie innerhalb der VCL (Ausschnitt)

Die wichtigsten Komponenten eines Formulars: (Komponenten=Bausteine, das Formular ist auch eine Komponente!) Komponente Ziel Wichtige Attribute Label zeigt Text auf Formular an, auch zur Ausgabe AutoSize, Caption, Visible, WordWrap Edit Button RadioButton CheckBox einzeiliges Eingabefeld, dient auch für Ausgaben; Markierung und Zwischenablage möglich; Inhalte sind Strings!! Schaltfläche zur Ausführung von Aktionen (BitButton kann zusätzlich Grafiken aufnehmen) Optionsfelder, Auswahl verschiedener Möglichkeiten (beachte: teilweise Gruppierung mittels GrouBox oder RadioGroupBox nötig) Kontrollfeld, stellt Option bereit, diese kann aus und angeschalten werden AutoSelect, ReadOnly, Text (kann auch leer sein) Caption, Name Caption, Checked Caption, Checked

GroupBox, RadioGroupBox Memo ListBox ComboBox MainMenu PopupMenu Windows-Gruppenfeld, wenn ein Steuerelement innerhalb einer Gruppe platziert wird, ist das Gruppenfeld das übergeordnete Objekt dieser Komponente. mehrzeiliges Eingabefeld Listenfeld für Auswahl von Optionen Kombination aus einem Eingabefeld und einem bildlauffähigen Listenfeld (Auswahl eines Elementes) Hauptmenü mit Menüleiste erscheint, wenn der Benutzer die Komponente markiert und mit der rechten Maustaste klickt Caption, (Columns, Items zus. bei RadioGroupBox) Lines, ScrollBars, WantReturns (Enter zum Zeilenwechsel erlaubt) Columns, Items, MultiSelect, Sorted DropDownCount, Items, Sorted Items Items

Alle Komponenten habe das Attribut Name, welches die Bezeichnung für das Objekt darstellt. Neben den Attributen können jeder Komponente auch Ereignisse (Events) zugeordnet werden. Alle oben genannten Komponenten sind visuelle Komponenten. Darüber hinaus gibt es auch nichtvisuelle Komponenten (z.b. Timer, Open, Save,...). Diese erzeugen kein sichtbares Objekt während der Laufzeit, sondern dienen Steuerfunktionen.

Behandeln von Laufzeit-Fehlern try { //kritische Anweisungen (z.b. Öffnen einer Datei, Typkonvertierungen,...); } catch(...) //...bedeutet: bei jeder Art von Fehler { //Fehlerhandlung } Beispiel: try { Memo1->Lines->LoadFromFile( Geruest.cpp ); } catch(exception *Ausnahme) //Objekt der Klasse Exception { ShowMessage(Ausnahme->Message); }

Aufgaben Aufgabe 1 1. Schreiben Sie ein Programm, das ein Fenster mit folgenden Elementen anzeigt:

Verwenden Sie dazu die Komponenten Label, Edit und Button von der Seite Standard der Komponentenpalette. 2. Ersetzen Sie alle vom C++Builder vergebenen Namen durch aussagekräftige Namen. Da in diesem Beispiel sowohl ein Label als auch ein Edit-Fenster für den Vornamen, Nachnamen usw. verwendet wird, kann es sinnvoll sein, den Typ der Komponente im Namen zu berücksichtigen, z.b. LVorname und LNachname für die Label und EVorname und ENachname für die Edit-Fenster. 3. Als Reaktion auf ein Anklicken des Buttons Eingabe löschen soll jedes Eingabefeld mit der Methode Clear gelöscht werden. Für den Button Daten speichern soll keine weitere Reaktion vorgesehen werden. Beim Anklicken des Buttons Programm beenden soll das Formular durch den Aufruf der Methode Close geschlossen werden.

Aufgabe 2 Schreiben Sie folgendes Programm: Der Wonder -Button soll bei Klick auf den Kleiner um 2 -Button um 2 Pixel in Höhe und Breite verkleinert werden, wenn er mindestens die Länge und Höhe 3 hat. Der Reset -Button soll ihn wieder auf Originalmaß bringen (der Wonder -Button selbst schließt die Anwendung).

Aufgabe 3

Schreiben Sie ein Programm zur Lösung des symmetrischen linearen Gleichungssystems ax + by = 1 bx + dy = 1 bei dem man die Koeffizienten a, b und d an Schiebereglern einstellen kann. Diese Koeffizienten sowie die Ergebnisse sollen digital in einem Edit-Feld dargestellt werden, wenn einer der Schieberegler bewegt wird (Ereignis: OnChange). Die Lösung des obigen Gleichungssystems ist gegeben durch y = (b a)/(b*b a*d) x = (b d)/(b*b a*d) Stellen Sie mit einer if-anweisung sicher, dass keine Division durch 0 stattfindet. In diesem Fall braucht kein neuer Wert für x bzw. y angezeigt werden, und im Feld für die Lösung soll Division durch 0 stehen.