Einführung in Delphi. Komponenten regeln die Dateneingabe und Datenausgabe.



Ähnliche Dokumente
Delphi eine Einführung

Programmierung in Delphi

Datentypen. Agenda für heute, 4. März, Pascal ist eine streng typisierte Programmiersprache

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Excel Funktionen durch eigene Funktionen erweitern.

Diana Lange. Generative Gestaltung Operatoren

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Java Einführung Operatoren Kapitel 2 und 3

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Klausur in 12.1 Themen: Zahlsysteme, Grundlagen von Delphi (Bearbeitungszeit: 90 Minuten)

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Text-Zahlen-Formatieren

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Einführung in die C++ Programmierung für Ingenieure

Programmierung in C. Grundlagen. Stefan Kallerhoff

Programmierung mit Delphi

Vorkurs C++ Programmierung

Sin-Funktion vgl. Cos-Funktion

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Delphi Grundkurs Seite 31

Arbeiten mit UMLed und Delphi

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

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

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Computeranwendung und Programmierung (CuP)

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 16

Einführung in die Java- Programmierung

Modul 122 VBA Scribt.docx

Objektorientierte Programmierung

Grundlagen von Python

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe

Binär- und Hexadezimal-Zahl Arithmetik.

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 18

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!

Microsoft Access 2013 Navigationsformular (Musterlösung)

Artikel Schnittstelle über CSV

Abschnitte. Abschnittswechsel einfügen

Übungsblatt 3: Algorithmen in Java & Grammatiken

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Mediator 9 - Lernprogramm

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Benutzerkonto unter Windows 2000

Erwin Grüner

Binärdarstellung von Fliesskommazahlen

Informatik GK 12 Klassen Klassen programmieren in Delphi am Beispiel der konkreten Klasse Auto

Bedienungsanleitung. Stand: Copyright 2011 by GEVITAS GmbH

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Einführung in die Programmierung für Wirtschaftsinformatik

Tutorium Rechnerorganisation

Excel Pivot-Tabellen 2010 effektiv

Prinzipien der Softwareentwicklung S. Strahringer

Englische Division. ... und allgemeine Hinweise

Bedienung von BlueJ. Klassenanzeige

VBA-Programmierung: Zusammenfassung

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

Übungen Programmieren 1 Felix Rohrer. Übungen

Visualisierung auf Büro PC s mit dem ibricks Widget

Access Grundlagen für Anwender. Susanne Weber. 1. Ausgabe, 1. Aktualisierung, Juni 2013

Programmierkurs: Delphi: Einstieg

Lua Grundlagen Einführung in die Lua Programmiersprache

Eine Anwendung mit InstantRails 1.7

Erstellen eines Formulars

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Programmierkurs Java

Objektorientierte Programmierung

tentoinfinity Apps 1.0 EINFÜHRUNG

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754. Berechnung von Gleitkommazahlen aus Dezimalzahlen. HSLU T&A Informatik HS10

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Schmitt, Günter (1996): Fortran 90 Kurs technisch orientiert, R. Oldenbourg Verlag, München

Zwischenablage (Bilder, Texte,...)

Robot Karol für Delphi

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen

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

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

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

Numerische Datentypen. Simon Weidmann

Arbeiten mit dem Outlook Add-In

Virtuelle COM-Schnittstelle umbenennen

Einrichten des Elektronischen Postfachs

Einführung in die Programmierung

LISP. Eine Einführung

Kurs 1613 Einführung in die imperative Programmierung

Jahrgang: Jahrgang 1. Thema: Systementwicklung einer Webapplikation - Geheimnachrichten-Generator

Access 2010 Grundlagen 2. MS Access Datenbanken

Kapitel 1: Betriebssystem IX. W indows Explorer und der Arbeitsplatz Teil 2

Übungen zu C++ Kapitel 1

EDV-Fortbildung Kombi-Schulung Word-Excel Modul Excel. Informationen zum Programm. Die Programmoberfläche von Excel

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Einführung in die Programmierung

Qt-Projekte mit Visual Studio 2005

Datenmaske für SPSS. Für die Datenanalyse mit SPSS können die Daten auf verschiedene Weise aufbereitet

Eigenen Farbverlauf erstellen

CONVEMA DFÜ-Einrichtung unter Windows XP

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Arge Betriebsinformatik GmbH & Co.KG, CAP News 40, Februar CAP-News 40

Lavid-F.I.S. Ablaufbeschreibung für. Arbeitszeiterfassung. Lavid-F.I.S.

Institut für Informatik Christian-Albrechts-Universität zu Kiel. Borland Delphi. Einführung in die Programmiersprache

Transkript:

Einführung in Delphi Komponenten regeln die Dateneingabe und Datenausgabe.

Datenverarbeitung Computer sind Geräte zur Datenverarbeitung. Grundprinzip: EVA Eingabe Verarbeitung Ausgabe Beispiel: Minirechner Dateneingabe Datenausgabe Verarbeitung einleiten

Aufbau von Delphiprogrammen Delphiprogramme bestehen aus Formularen, die Komponenten enthalten. Komponenten können sein Editierfelder Textausgabefelder Schaltflächen... Formulare und Komponenten sind Objekte

Klassendiagramm Klassendiagramm zum Beispiel

Das Formular Das Formular in Delphi entspricht der Welt bei Alice. Hier wird die Programmoberfläche durch Hinzufügen von Komponenten (Ein-, Ausgabeoder Steuerobjekte) gestaltet.

Klassendiagramm TForm (Auswahl)

Klassendiagramm TEdit (Auswahl)

Klassendiagramm TLabel (Auswahl)

Klassendiagramm TButton (Auswahl)

Aufgabe 1: Formular erstellen Erstelle nebenstehendes Formular. Verwende folgende Bezeichnungen: Form1: TForm1 zahl1ed, zahl2ed: TEdit ergebnisla: TLabel berechnebu: TButton

Aufgabe 2: Die Programmierung Unser Programm läuft zwar, aber es kann noch gar nichts. Erstelle eine Methode TForm1.ergebnisBerechnen des Formulars, die die Berechnung ausführt. Verknüpfe diese Methode mit dem Ereignis OnClick der Schaltfläche berechnebu.

Die Objektklasse des Hauptformulars type TForm1 = class(tform) zahl1ed: TEdit; Label1: TLabel; zahl2ed: TEdit; Label2: TLabel; ergebnisla: TLabel; berechnebu: TButton; private { Private-Deklarationen } public { Public-Deklarationen } end; neue Attribute Deklaration der Objektklasse TForm1 als Unterklasse der Objektklasse TForm var Form1: TForm1; Deklaration einer Instanz der Klasse TForm1

Neue Methode des Hauptformulars interface... type TForm1 = class(tform) zahl1ed: TEdit;... private procedure ergebnisberechnen; public { Public-Deklarationen } end; Vorwärtsdeklaration der Methode Zugehörigkeit zur Klasse TForm1! implementation {$R *.DFM} procedure TForm1.ergebnisBerechnen; begin {Quelltext der Methode} end; Programmierung der Methode

Verknüpfung mit einem Ereignis Die Methode TForm1.ergebnisBerechnen soll mit dem OnClick-Ereignis der Schaltfläche berechnebu verknüpft werden: berechnebu im Formular aktivieren. Im Objektinspektor das Register Ereignisse auswählen. Auf das leere Feld rechts neben dem OnClick-Ereignis doppelklicken: Delphi erstellt automatisch eine Ereignisbehandlungsmethode TForm1.berechneBuClick, die mit dem OnClick- Ereignis des berechnebu verknüpft ist

Die Ereignisbehandlungsmethode interface... type TForm1 = class(tform) zahl1ed: TEdit;... procedure berechnebuclick(sender: TObject);... end; implementation... procedure berechnebuclick(sender: TObject); begin {Quelltext der Methode} end;

Inhalt der Ereignisbehandlungsmethode implementation... procedure berechnebuclick(sender: TObject); begin ergebnisberechnen; end;

Inhalt der Methode ergebnisberechnen implementation... procedure TForm1.ergebnisBerechnen; var lokale Variablen zahl1, zahl2, ergebnis: Integer; der Methode begin ergebnisberechnen zahl1:=strtoint(zahl1ed.text); zahl2:=strtoint(zahl2ed.text); ergebnis:=zahl1*zahl2; ergebnisla.caption:=inttostr(ergebnis); end;

Das Delphifenster Hauptfenster Formularschablone Objektinspektor Quelltexteditor

Das Hauptfenster Symbolleiste Komponentenpalette Datei öffnen Projekt öffnen Zwischen Formular und Editor wechseln Programm starten (vorher compilieren) Neues Formular erstellen Programm anhalten (möglichst nie betätigen!)

Die Komponentenpalette entspricht bei Delphi der Objektgalerie von Alice

Grundsatz für Delphi Ändere oder lösche im Quelltext nie etwas, was Delphi automatisch generiert hat!

Methoden in Pascal interface... type TKlassenname = class... private procedure Methodenname(par1: Typ1;par2: Typ2;...); public { Public-Deklarationen } end; implementation {$R *.DFM} procedure TKlassenname.Methodenname(par1: Typ1;...); begin {Quelltext der Methode} end;

Funktionsmethoden in Pascal interface... type TKlassenname = class... private function Funktionsname(par1: Typ1;...):Rueckgabetyp; public { Public-Deklarationen } end; implementation {$R *.DFM} function TKlassenname.Funktionsname(par1: Typ1;...): Rueckgabetyp; begin {Quelltext der Funktion} Result:=Rueckgabewert; end;

Lokale Variablen in Pascal Lokale Variablen werden im Implementation-Teil unmittelbar nach dem Methodenkopf hinter dem Schlüsselwort var deklariert: procedure TKlassenname.Methodenname; var variable1, variable2: Datentyp1; variable3: Datentyp2; begin {Quelltext der Methode} end;

Globale Variablen in Objektpascal Globale Variablen werden als Attribute von Klassen in der Klassendeklaration des Interface- Teils deklariert (vorerst hinter private). Solange keine anderen Klassen verwendet werden, sind globale Variablen Attribute der Klasse des Formulars. type TForm1 = class(tform)... private attribut1, attribut2: Datentyp1; attribut3: Datentyp3; public { Public-Deklarationen } end;

Standarddatentypen in Pascal Datentyp Bedeutung Wertebereich Speicherbedarf Integer ganze Zahlen -21474833648 bis +2147483647 4 Byte Real Kommazahlen 2,9x10-39 bis 1,7x10 38 Genauigkeit: 11-12 Stellen 6 Byte Char 1 Zeichen (sprich: Character) 1 aus 256 ASCII- Zeichen 1 Byte String beliebige Zeichenkette (reale Länge der Zeichenkette +1) Byte Boolean Wahrheitswert true oder false 1 Byte

Wertzuweisung Wertzuweisungsoperator := Beispiel: var zahl1: Integer; zahl2: Real; zeichen: Char; text: String; wahrheit: Boolean; begin zahl1:=-4; zahl2:=3.14; zeichen:= r ; text:= Hallo, thats 4You! ; wahrheit:=false; end;

Typumwandlungen Funktion StrToInt(s: String) IntToStr(i: Integer) Bedeutung Konvertiert einen String, der eine Integer-Zahl repräsentiert, in eine Integer-Zahl. Konvertiert einen Integer-Wert in einen String. StrToFloat(s: String) FloatToStr(r: Real) FloatToStrF(r: Real) Konvertiert einen String, der eine Real-Zahl repräsentiert, in einen Gleitkommawert (Real). Konvertiert eine Gleitkommazahl in den entsprechenden String-Wert. Gibt die Real-Zahl allerdings in der Standardnotation aus. Konvertiert eine Gleitkommazahl in einen String-Wert mit anzugebendem Format und Genauigkeit.

Die Funktion FloatToStrF function FloatToStrF(Wert: Real; Format: TFloatFormat; Precision, Digits: Integer): string; Entscheidend ist die Angabe des Formats. Hier kommen für uns nur 3 Möglichkeiten in Betracht: ffexponent: Wissenschaftliches Format: "-d.ddd...e+dddd". Precision: Gesamtzahl der Stellen vor E (einschließlich der Ziffer vor dem Dezimalkomma) Digits: minimale Anzahl von Stellen im Exponenten (zwischen 0 und 4). fffixed: Festkommaformat: "-ddd.ddd...". Digits: Anzahl der Stellen nach dem Komma (zwischen 0 und 18) Precision: Anzahl der Stellen vor dem Komma ffgeneral: Allgemeines Zahlenformat. Der Wert wird unter Verwendung des Formats Fest oder Wissenschaftliche Notation in den kürzestmöglichen Dezimal-String umgewandelt. Meistens wird für unsere Belange das Format ffgeneral das geeignetste sein.

Kommentare Einzeiliger Kommentar: // Mehrzeiliger Kommentar: {} Anmerkung: Wie bei Robot Karol

Anweisungen Jede Anweisung muss mit einem Semikolon ; abgeschlossen werden. Anweisungsblöcke werden mit begin...end geklammert: begin anweisung1; anweisung2; anweisung3; end;

Rechenoperatoren Addition: + ergebnis:=a+b Subtraktion: - ergebnis:=a-b Multiplikation: * ergebnis:=a*b Division: Real-Zahlen:/ ergebnis:=a/b Integer-Zahlen: Ganzzahldivision: div 10 div 3 = 3 Ganzzahliger Rest: mod 10 mod 3 = 1 Inkrement um 1: a:=a+1 Dekrement um 1: a:=a-1

Logische Operatoren Logisches UND: and Logisches ODER: or Negation (Nicht-Operator): not

Vergleichoperatoren Operator = <> < <= > >= Bedeutung ist gleich ist ungleich ist kleiner ist kleiner oder gleich ist größer ist größer oder gleich Beispiel e = e ist true 5=6 ist false e <> e ist false 5<>6 ist true 5<6 ist true 5<5 ist false 5<=6 ist true 5<=5 ist true

Der Punktoperator Wie bei allen objektorientierten Programmiersprachen werden die Attributbezeichner bzw. Methodenbezeichner vom Objektname durch einen Punkt getrennt: Form1.caption und ergebnisla.caption Form1.Hide und berechnebu.hide Innerhalb des Quelltexts einer Methode kann man den Objektbezeichner weglassen, wenn ein Attribut bzw. eine Methode der eigenen Klasse aufgerufen wird.

Wichtige Funktionen I Funktion Abs(X:Integer/Real): Integer/Real Int(X:Real):Real Frac(X:Real):Real Trunc(X:Real):Integer Round(X:Real):Integer Bedeutung Betrag des Arguments Ganzzahliger Teil (Vorkommateil) des Arguments Nicht-ganzzahliger Teil (Nachkommteil) des Aguments Abschneiden der Nachkommastellen. Liefert im Gegensatz zuint einen Integer- Wert zurück. Rundet X auf einen Integer-Wert.

Wichtige Funktionen II Funktion Odd(I:Integer): Boolean Random:Real Random(I:Word):Word Sqr(X:Real/Integer): Real/Integer Bedeutung Ist I ungerade? Real-Zufallszahl zwischen 0<=Random<1 Word-Zufallszahl zwischen 0<=Random<I. Word =natürliche Zahl zwischen 0 und 65535 Quadrat des Arguments (Sqr von Square ) Sqrt(X:Real):Real Quadratwurzel des Arguments

Wichtige Funktionen III Funktion Sin(X:Real):Real Analog Cos, Tan ArcSin(X:Real):Real Analog ArcCos, ArcTan Pi:Real Bedeutung Sinus des Arguments (X im Bogenmaß) Arcus-Sinus des Arguments (Genaue Wertebereiche siehe Delphi-Hilfe) Wert der Zahl π

Gezählte Wiederholungen Bei gezählten Wiederholungen braucht man in Pascal eine Zählvariable, die vorher deklariert werden muss: procedure Methodenname; var zaehlvariable: Integer; begin //der Methode... for zaehlvariable:=startwert to endwert do begin //Wiederholung {zu wiederholende Anweisungen} end; //Wiederholung... end; //der Methode

Bedingte Wiederholung while Bedingung do begin {zu wiederholende Anweisungen} end;

Entscheidungen-Verzweigungen Einseitige Entscheidung: if Bedingung then begin {Anweisungen bei erfüllter Bedingung} end; Zweiseitige Entscheidung: if Bedingung then begin {Anweisungen bei erfüllter Bedingung} end //Kein ; vor else!! else begin {Anweisungen bei nicht erfüllter Bedingung} end;

Wichtige Ereignisse in Delphi I Ereignis OnActivate OnChange OnClick OnClose OnCreate OnDblClick OnEnter OnExit Beschreibung des Ereigniseintritts Die Komponente wird aktiviert (erster Aufruf, oder wird 'nach vorne' geholt). Der Text für ein Eingabefeld wird geändert. Auf die Komponente wird mit der Hauptmaustaste geklickt. Das Formular wird geschlossen. (nur für Formulare) Die Komponente wird mit dem Konstruktor erzeugt (einmaliger Vorgang, meist beim Programmstart). Doppelklick auf ein Objekt mit der Hauptmaustaste. Beachte, dass dann auch OnClick eintritt. Die Komponente erhält den Eingabefokus. Der Komponente wird der Eingabefokus entzogen

Wichtige Ereignisse in Delphi II Ereignis OnKeyPress/ OnKeyDown OnMouseDown OnMouseOver OnMouseUp OnResize OnShow Beschreibung des Ereigniseintritts Eine Taste der Tastatur wird gedrückt. Es kann die Taste, bei OnKeyDown auch eine Tastenkombination angegeben werden. Eine der Maustasten wird gedrückt. Es kann programmiert werden, auf welche das Programm reagieren soll. Überfahren der Komponente mit dem Mauszeiger. Maustaste wird losgelassen, während sich der Mauszeiger über der Komponente befindet. Größe der Komponente wird geändert. Komponente wird angezeigt

Standardereignis Jede Komponente besitzt Standardereignis. Doppelklick auf die Komponente in der Formularansicht erstellt die Ereignisbehandlungsmethode des Standardereignisses. Wichtige Standardereignisse: Schaltflächen (TButton): OnClick Editierfelder(TEdit): OnChange Textausgabefelder (TLabel): OnClick Formulare (TForm): OnCreate