Einführung in die objektorientierte Programmierung (OOP ... · PDF fileOOP-PAL R. Krell: Informatik IF 15 BTA Objekt-PAL Seite 2 Einführung in die objektorientierte Programmierung

  • Upload
    hathuan

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

  • OOP-PAL R. Krell: Informatik IF 15 BTA Objekt-PAL Seite 1

    Einfhrung in die objektorientierte Programmierung (OOP)mit Objekt-PAL in Paradox -- Vorbemerkung

    Robert Krell

    Die folgenden Seiten skizzieren Teile eines etwa 5-monatigen Grundkurses aus dem Jahr 1999 (2Stdn/Woche) zur Einfhrung in die Algorithmik mit visuellen Objekten und wurden (mangels Buch)als unterrichtsbegleitendes Skript ausgeteilt. Inzwischen (2003) benutze ich Java (lieber als Delphi).Trotzdem waren in diesem Kurs viel auch heute noch gltige schne Anstze gut zu realisieren!Die Schlerinnen und Schler -- hier angehende Biologisch-Technische-Assistentinnen und -Assi-stenten -- hatten zuvor bereits Standardsoftware kennen- und speziell fr ihre Belange einsetzen undanwenden gelernt. Als Tabellenkalkulation war Excel, als Datenbanksoftware Paradox benutzt worden.Laut Lehrplan stand fr das zweite Ausbildungsjahr noch eine Einfhrung in das eigene Programmie-ren (ber gelegentliche Makros in den Standardprogrammen hinaus) sowie ein Einblick in die Compu-terhardware an.Informatik (bzw. Technische Kommunikation, wie es offiziell heit), ist Fach der Berufsabschluss-prfung. Das Genehmigungsverfahren fr die Prfungsvorschlge durch die Schulaufsicht sowie derPrfungsablauf sind mit der schriftlichen Prfung im Informatik-Grundkurs des Gymnasiums vergleich-bar.

    Lngere berlegungen, entweder Algorithmik mit Niki einzufhren und auf dann auf einfache Pascal-Programme berzugehen, oder eine Sprache wie Profan fr Windows-Applikationen zu verwenden, oder (sofern in unserem Schulnetz mit 486er-Rechner mglich) Delphi zu verwenden, oder die mit Paradox ausgelieferte Sprache Objekt-PAL zu nutzen,fhrten schlielich zur Entscheidung fr die letztgenannte Mglichkeit. Grnde dafr waren u.a. die Mglichkeit, leicht Programme mit moderner, grafischer Oberflche zu erstellen Objektorientiertheit und die Tatsache, dass es bei Objekt-PAL keinen zusammenhngenden

    Quelltext (wie bei Delphi) mit dem automatisch erzeugten Code gibt, sondern nur der selbsteingetippte Programmtext jeweils in berschaubaren Portionen lokal am Objekt hngt

    die geringen Hardware-Anforderungen und der niedrige Preis (bei Pearl oder SMM gibt's CDs mitdem vllig ausreichenden Paradox 4.5 fr rund 4,- DM; die Paradox-Versionen 5 [letzte 16-Bit-Version] und die Version 7 [fr Win95/98] werden zusammen auf einer CD fr ca. 8,- DM anSchler verkauft!)

    Nachteilig ist, dass keine allein stehenden exe-Dateien erzeugt werden knnen, sondern die erzeugtenProgramme immer nur unter Paradox laufen.

    Der Kurs selbst hat die Schlerinnen und Schler und mich restlos von der Richtigkeit der getroffenenEntscheidung berzeugt: Obwohl auf Seiten der Schlerinnen und Schler auf keinerlei Vorkenntnissein der Algorithmik oder Erfahrungen mit anderen Programmiersprachen zurckgegriffen werdenkonnte, machte das gewhlte Vorgehen Spa und lieferte einen gelungen Einstieg ins eigene Program-mieren.

    R. Krell, Lotte-Wicke-Weg 12, 40627 Dsseldorf

    http://www.r-krell.dee-Mail: [email protected] oder [email protected]

    ber Rckmeldungen und Kommentare (schriftl. oder per e-mail) freue ich mich!August 1999 (neu gepackt: April 2003)

  • OOP-PAL R. Krell: Informatik IF 15 BTA Objekt-PAL Seite 2

    Einfhrung in die objektorientierte Programmierung (OOP)mit Objekt-PAL in Paradox

    In den vergangenen Jahren wurden Programmiersprachen neu- und weiterentwickelt. Es galt, dieNachteile der frhen Hochsprachen (wie Cobol, Fortran und Basic) zu berwinden, die sich bei denimmer greren Programmen immer deutlicher zeigten. Nach den blockstrukturierten Sprachen (wiez.B. Pascal, Modula, C und spteren, weiterentwickelten Basic-Versionen) wurden in letzter Zeitobjektorientierte Sprachen entwickelt (z.B. Smalltalk, Eiffel, Oberon) bzw. bekannte Sprachen aufObjekte erweitert (Objekt-Pascal, Delphi, C++). Bei objektorientierten Sprachen schafft der Program-mierer Objekte, verleiht ihnen Eigenschaften, und haucht ihnen mit Methoden Leben ein. Die Objektereagieren nach dem Programmstart dann praktisch selbstndig auf verschiedene Ereignisse -- so, wiees im Programmtext der Methoden festgelegt wurde. Der Programmtext ist dabei meist nicht mehrzusammenhngend, sondern jedes Objekt und jede Methode erhlt und enthlt eigene Anweisungen.Die Programme werden dadurch bersichtlicher, klarer strukturiert und verstndlicher. Das Programmmu nicht in einem Gu geschrieben werden, sondern Objekte knnen einzeln hinzugefgt undverbessert bzw. aus frheren Programmierarbeiten bernommen werden. Mit Objekt-PAL (PAL=Paradox Application Language) enthlt Paradox eine sehr mchtige und zu-kunftsweisende Sprache, die vieles von dem bereits verwirklicht hat, was selbst neuesten Versionenanderer Sprachen noch fehlt (aber fr kommende Erweiterungen angekndigt ist). Viele Konzepte z.B.von Delphi wurden bereits vorweggenommen. Darber hinaus kann Objekt-PAL natrlich mitParadox-Datenbanken arbeiten, was ein weiterer Vorteil gegenber "normalen" Programmiersprachenist.

    Grundlage (und Grundobjekt!) von Objekt-PAL ist ein Formular.

    Weitere Objekte sind z.B. alle Elemente, die auf dem Bildschirm zu sehen sind bzw. in das Formulareingefgt werden. DieWerkzeugleiste bietet hieru.a. Rechtecke, Ellipsen,Textfelder, Schalter u..an.

    bung 1a: ffnen Sie einneues Formular (in Para-dox mit Datei | Neu | For-mular und 2 x OK) undzeichnen Sie die abgebil-dete Landschaft.

    Whlen Sie dazu aus derWerkzeugleiste (bei Para-dox auch "Schalterleiste"genannt) passende Objek-te und fgen Sie dieseneben- und z.T. auch bereinander in das Formular (Mausklick auf den Knopf in der Werkzeugleiste,dann Maus aufs Formular -- linke Maustaste drcken, Objekt aufziehen und linke Maustaste loslas-sen). Das mit Mein Alter beschriftete Objekt oben links ist brigens ein Feld und wurde fertig ausder Werkezugleiste bernommen. Nur auf die die vorgegebene Bezeichnung LABEL mu so oftgeklickt werden, bis sie grau ist. Dann kann der Text verndert werden!

  • OOP-PAL R. Krell: Informatik IF 15 BTA Objekt-PAL Seite 3

    method pushButton(var eventInfo Event) Sonne.Color = Red msgInfo ("Hinweis", "Es wird Abend!")endMethod

    Betrachten Sie die Objekthierarchie (Men Formular | Objekthierarchie oder Knopf rechts auf derWerkzeugleiste) und benutzen Sie die Pfeiltasten zum Bewegen innerhalb der Hierarchie!

    Whlen Sie auerdem durch Anklicken im Fenster Objekthierarchie oder direkt auf dem Formular einObjekt aus und drcken Sie die rechte Maustaste zum Inspizieren bzw. ndern der Eigenschaftendieses Objekts. Ersetzen Sie zunchst die von Paradox automatisch vergebenen Namen wie #Rec-hteck5 oder #Ellipse3 durch aussagekrftige Namen wie Htte (Tr, Fenster,..), Sonne (Kugel,Ballon...). Verndern Sie auerdem die Farben der Objekte. Frben Sie die Sonne gelb und beachtenSie beim Frben des Hauses die Auswirkungen auf nach- (Tr, Fenster, Trfenster) bzw. ber-geordnete Objekte (Formular), um das wichtige Konzept der "Vererbung" in den objektorientiertenSprachen kennen zu lernen.

    Die Eigenschaften der Objekte knnen Sie -- wie eben erfolgreich ausprobiert -- interaktiv (mitdeutschen Bezeichnungen) festlegen. Bisher erscheint die Landschaft jedoch nur statisch: NachAnklicken des Blitzsymbols oder Druck auf F8 lt sich zwar die Taste (der Schalter) unten rechts mitder Maus drcken -- sonst passiert aber nichts. Das soll sich jetzt ndern: Eine Methode soll zurLaufzeit Objekteigenschaften ndern. So soll bei Druck auf den Schalter Drck mich die Sonne rotwerden und der Benutzer ber das Hereinbrechen des Abends informiert werden.

    bung 1b: ffnen Sie die in bung 1 erstellte Landschaft im Entwurfsmodus, drcken Sie mit derrechten Maustaste auf den Schalter Drck mich und whlen aus dem PopUp-Men Methoden....Doppelklicken Sie auf pushbutton und fgen Sie zwischen den beiden vorgegebenen Zeilen zwei ZeilenProgrammtext ein! Starten Siedann das Programm und prfen,wie es auf das Ereignis (engl.event) 'Tastendruck' (pushbutton)reagiert!

    Um Programme auch international les- und austauschbar zu halten, mssen im Programmtext dieEigenschaften der Sonne und aller anderen Objekte leider englisch benannt werden: Statt Farbe mu --in der OOP-typischen Punktschreibweise Objektname.Eigenschaft -- jetzt Sonne.Color = Redgesetzt werden. Die Tabelle nennt einige Eigenschaften und ihre Werte. Je nach Objekttyp sind nichtalle Eigenschaften verfgbar!

    im Men Eigenschaft Mgliche Werte

    Farbe .Color Black, Blue, Brown, DarkBlue, DarkCyan (=trkis), DarkGray,DarkGreen, DarkMagenta (=lila), DarkRed, Gray, Green,LightBlue, Magenta, Red, Translucent, Transparent, White,Yellow

    Rahmen | Art .Frame.Style NoFrame, DashDotFrame, Inside3DFrame, Outside3DFrame,SolidFrame, ShadowFrame,...

    Muster | Art .Pattern.Style No, BricksPattern, CrosshatchPattern, DiagonalCrosshatch-Pattern, DottedLinePattern, EmptyPattern, LightDotPattern,ZigZagPattern,...

    Schrift | Farbe .Font.Color (siehe Color)

    Schrift | Gre .Font.Size 8, 9, 10, 11, 12, 16, 20, ...

    Schrift | Art .Font.Style FontAttribBold, FontAttribItalic, FontAttribNormal,..

    Laufzeit | Sichtbar .Visible Yes, No

  • OOP-PAL R. Krell: Informatik IF 15 BTA Objekt-PAL Seite 4

    Um beispielsweise die Htte mit einem blauen Schattenrahmen zu umgeben, kannHtte.Frame.Color = Blue und Htte.Frame.Style = ShadowFrame programmiertwerden!Soll der ber der Tr stehende Text Meine kleine Htte kursiv, also in Schrgschrift geschriebenwerden, hilft berschrift.Font.Style = FontAttribItalic . ber weitere Schriftartengibt die im Entwurfsmodus ber Hilfe | ObjectPAL erreichbare OnLine-Hilfe mit Suchen nach Font-Attributes Auskunft (genauso hilft die Suche nach Colors oder PatternStyles). Allerdings mu manschon die ersten Buchstaben der englischen Bezeichnung einer Eigenschaft wissen, um in der Hilfemgliche Werte finden zu knnen.

    bung 1c: Erweitern Sie die Landschaft noch