Units und Übung 7 Barbara Scheuner Vorlesung: Programmieren und Problemlösen Prof. Hans Hinterberger
Inhalt Units Übung 7 Aufbau einer Unit Eigene Units schreiben Units in Delphi Übung 7 Bildbearbeitung Hinweise
Units Verweise zu anderen Units Records Klassen Konstanten Variablen Prozeduren Funktionen Variablen Methoden Variablen Records Variablen Klassen Variablen Methoden Variablen Sonntag, 15. April 2018
Aufbau unit main; interface Uses [Liste der verwendeten Units] [Definition von Types, Angabe von öffentlichen Methoden, variablen und konstanten] implementation [Programmcode zu den oberhalb definierten Methoden] end. Sonntag, 15. April 2018
Beispiel Kreis-Unit (1) Sonntag, 15. April 2018
Sonntag, 15. April 2018
Einbinden einer Unit Sonntag, 15. April 2018
Verwenden einer Unit Sonntag, 15. April 2018
Beispiel Schreiben einer neuen Prozedur in Kreis.pas Verwenden der neuen Prozedur Verschieben von Pi Sonntag, 15. April 2018
Projektbaum Projekt-Datei Forms KugelVolumen Kreis Windows Messages SysUtils … Sonntag, 15. April 2018
Delphi Units Sonntag, 15. April 2018
Wozu Units Strukturierung des Programms Zusammenfassen von Funktionalität Methoden für die Verarbeitung von Strings Methoden für Buttons Methoden für geometrische Berechnungen Wiederverwendbarkeit Verfügbar machen von Code Sonntag, 15. April 2018
Übung 7 Die Bildmatrix Farben in Delphi Benötigte Prozeduren Sonntag, 15. April 2018
Ein Bild als Matrix Sonntag, 15. April 2018
Die Bildmatrix Bildbreite -1 Farbwert Bildhöhe - 1 Bildbreite -1 Farbwert Bildhöhe - 1 Sonntag, 15. April 2018
Das RGB-Farbmodell Die RGB-Farbpalette mischt die Farben Rot, Grün und Blau. Sonntag, 15. April 2018
Prozeduren von TImage Bild : Timage; hohe, breite: Integer; Bild.Picture.Loadfromfile(DateiNamen); Bild.Height; Bild.Weight; Bild.Canvas.Pixels[hohe,breite] Sonntag, 15. April 2018
Einzelne Farbinformationen Integer farbe = 1 1 1 1 1 1 1 1 1 Rot = Byte(farbe) = Farbe = farbe shr 8; 1 1 1 1 1 1 1 1 1 Grün = Byte(farbe) = Farbe = farbe shr 8; 1 1 1 1 1 1 Blau = Byte(farbe) = 1 1 Sonntag, 15. April 2018
Umrechnung clWhite = TColor($FFFFFF); Binär: 111111111111111111111111 Dezimal: 16777215 Werte: blau = 255; grün = 255; rot = 255 clRed = TColor($0000FF); Binär: 000000000000000011111111 Dezimal: 255 Werte: blau = 0; grün = 0; rot = 255 clYellow = TColor($00FFFF); Binär: 000000001111111111111111 Dezimal: 65535 Werte: blau = 0; grün = 255; rot = 255 Sonntag, 15. April 2018
Vordefinierte Farben in Delphi clBlack = TColor($000000); clWhite = TColor($FFFFFF); clMaroon = TColor($000080); clGreen = TColor($008000); clOlive = TColor($008080); clNavy = TColor($800000); clPurple = TColor($800080); clTeal = TColor($808000); clGray = TColor($808080); clSilver = TColor($C0C0C0); clRed = TColor($0000FF); clLime = TColor($00FF00); clYellow = TColor($00FFFF); clBlue = TColor($FF0000); clFuchsia = TColor($FF00FF); clAqua = TColor($FFFF00); Sonntag, 15. April 2018
Benötigte Prozeduren PROCEDURE IstPixelimWald: Gibt true zurück, wenn der Pixel „grün“ ist, oder Wenn der Pixel rot ist (bei der MC-Methode) PRODECURE ExaktKnopfClick(…) Betrachtet alle Pixel des Bildes Färbt die Pixel rot, wenn es als Wald erkannt wurde Zählt wieviele davon Wald sind PROCEDURE MCKnopfClick(…) Für eine zufällige Anzahl wird bestimmt, ob sie im Wald liegen oder nicht. Färbt Wald-Pixel rot. Zählt wieviele der getesteten Pixel Wald sind. Sonntag, 15. April 2018