8
Arbeitsblatt Übungen in Delphi Informatik Klasse: 11-12 Datum: 1. Juni 2007 Delphi_1.doc Seite 1 von8 1. Es gibt verschiedene Objekte: 1.1. TLabel Das erste Label, das man auf dem Formular platziert erhält automa- tisch den Namen ‚label1’ Eigenschaften Caption (typ: string) Ändern der Anzeige eines Labels : label1.caption:= ' neuer Text' Color (typ: integer) Beispiele: clred, clblue oder 255 für rot Ändern der Farbe mit label1.color:=clblue; 1.2. Tedit Das erste Edit-Feld erhält automatisch den Namen ‚edit1’ Eigenschaften Text Jede Eingabe erfolgt durch Text, auch Zahlen werden als Text (Zeichenkette) interpre- tiert. Ändern der Anzeige durch Schreiben in das Feld oder durch eine Wertzuweisung Edit1.text:= 'neuer Text' Font Beim Anklicken der Eigenschaft Font im Objektinspektor öffnet sich das bekannte Font- Menü. 1.3. Tbutton Der erste Button erhält automatisch den Namen ‚Button1’. Da Nach Doppelklick auf den Button eine neue Prozedur erstellt wird, sollte man den Namen des Buttons sofort ändern. Die zuordnung zu seinen Aktionen wird leichter lesbar. Name Im Objektinspektor die Eigenschaft ‚Name’ suchen und ändern, sollte einen Bezug zu den ausglösten Aktionen stehen. Caption Ist die Beschriftung des Buttons. Ändern der Anzeige eines Buttons: button1.caption:= ' neuer Text' 1.4. TListbox Ist vergleichbar mit einem TEdit. Eigenschaften Items Im Objektinspektor kann man Listenelemente eintragen. Im Programm sind folgende Aktionen möglich: Listbox1.items.add('Text’); Hängt an die vorhandene Liste ein neues Element (Item) an.

Arbeitsblatt Übungen in Delphi Informatik Klasse: 11-12 ... · PDF fileArbeitsblatt Übungen in Delphi Informatik Klasse: 11-12 Datum: 1. Juni 2007 Delphi_1.doc Seite 1 von8 1. Es

Embed Size (px)

Citation preview

Page 1: Arbeitsblatt Übungen in Delphi Informatik Klasse: 11-12 ... · PDF fileArbeitsblatt Übungen in Delphi Informatik Klasse: 11-12 Datum: 1. Juni 2007 Delphi_1.doc Seite 1 von8 1. Es

Arbeitsblatt Übungen in Delphi Informatik

Klasse: 11-12 Datum: 1. Juni 2007

Delphi_1.doc Seite 1 von8

1. Es gibt verschiedene Objekte:

1.1. TLabel Das erste Label, das man auf dem Formular platziert erhält automa-tisch den Namen ‚label1’

Eigenschaften

Caption (typ: string)

Ändern der Anzeige eines Labels : label1.caption:= ' neuer Text'

Color (typ: integer)

Beispiele: clred, clblue oder 255 für rot

Ändern der Farbe mit label1.color:=clblue;

1.2. Tedit Das erste Edit-Feld erhält automatisch den Namen ‚edit1’

Eigenschaften

Text

Jede Eingabe erfolgt durch Text, auch Zahlen werden als Text (Zeichenkette) interpre-tiert.

Ändern der Anzeige durch Schreiben in das Feld oder durch eine Wertzuweisung

Edit1.text:= 'neuer Text'

Font

Beim Anklicken der Eigenschaft Font im Objektinspektor öffnet sich das bekannte Font-Menü.

1.3. Tbutton

Der erste Button erhält automatisch den Namen ‚Button1’. Da Nach Doppelklick auf den Button eine neue Prozedur erstellt wird, sollte man den Namen des Buttons sofort ändern. Die zuordnung zu seinen Aktionen wird leichter lesbar.

Name

Im Objektinspektor die Eigenschaft ‚Name’ suchen und ändern, sollte einen Bezug zu den ausglösten Aktionen stehen.

Caption

Ist die Beschriftung des Buttons. Ändern der Anzeige eines Buttons: button1.caption:= ' neuer Text'

1.4. TListbox

Ist vergleichbar mit einem TEdit.

Eigenschaften

Items

Im Objektinspektor kann man Listenelemente eintragen. Im Programm sind folgende Aktionen möglich: Listbox1.items.add('Text’); Hängt an die vorhandene Liste ein neues Element (Item) an.

Page 2: Arbeitsblatt Übungen in Delphi Informatik Klasse: 11-12 ... · PDF fileArbeitsblatt Übungen in Delphi Informatik Klasse: 11-12 Datum: 1. Juni 2007 Delphi_1.doc Seite 1 von8 1. Es

Arbeitsblatt Übungen in Delphi Informatik

Klasse: 11-12 Datum: 1. Juni 2007

Delphi_1.doc Seite 2 von8

Listbox1.itemindex; Liefert die Nummer des markierten Items. (Zählung beginnt bei 0).

Beispiel:

showmessage(inttostr(listbox1.itemindex));

showmessage(listbox1.items[listbox1.ItemIndex]); Liefert den Inhalt des markierten Items.

showmessage(listbox1.items[3]); Liefert den Inhalt des 4. Items.

Listbox1.clear; Löscht alle Listeneinträge

1.5. TMemo

Ist ein erweitertes TEdit.

Eigenschaften

Text Ist der gesamte Inhalt des TMemo

Memo1.text:=’Neuer Text’; Überschreibt den alten Text mit dem neuen.

Lines Ist der Inhalt einer Zeile im TMemo

memo1.lines.Add('Neue Zeile'); Hängt eine neue Zeile an den vorhandenen Text an.

showmessage(memo1.Lines[2]); Zeigt die 3. Zeile des TMemo. (Beginnt mit 0 zu zählen.

SelText Selektierter Text

a:=memo1.SelText; Schreibt den selektierten Text in die Variable a (Typ: String)

memo1.lines.Add(memo1.SelText); Hängt den slektierten Text als neue Zeile an den vorhandenen an.

Clear

Memo1.clear oder memo1.lines.clear Löscht den Inhalt des TMemo.

CommaText

showmessage(memo1.Lines.CommaText); Zeigt den Text des TMemo’s an, wobei die einzelnen Zeilen durch Kommata getrennt sind.

Delete(Zahl)

memo1.Lines.Delete(2); Löscht die 3. Zeile in einem TMemo.

IndexOf

showmessage(inttostr(memo1.Lines.indexof('memo1')));

Zeigt die Zeilenummer, in der der Text steht.

1.6. TCombobox

Die TCombobox hat die gleichen Eigenschaften wie eine Tlistbox.

Page 3: Arbeitsblatt Übungen in Delphi Informatik Klasse: 11-12 ... · PDF fileArbeitsblatt Übungen in Delphi Informatik Klasse: 11-12 Datum: 1. Juni 2007 Delphi_1.doc Seite 1 von8 1. Es

Arbeitsblatt Übungen in Delphi Informatik

Klasse: 11-12 Datum: 1. Juni 2007

Delphi_1.doc Seite 3 von8

1.7. TStringGrid

Das TStringGrid ist ein Element, das vergleichbar mit einer Tabelle ist.

Die 1. Spalte und 1. Zeile sind standardmäßig als Bezeichner vorgesehen. Die Nummerierung beginnt bei 0. Das graue Feld links oben hat demnach die Koordinaten ( 0 | 0 ).

Jede Zelle lässt sich direkt beschreiben.

Eigenschaften

Colcount legt die Anzahl der Spalten fest.

Stringgrid1.colcount:=4

Es werden 4 Spalten angelegt, mit der Nummerierung 0..3,

Stringgrid1.rowcount:=6

Rowcount legt die Anzahl der Zeilen fest.

Es werden 6 Zeilen angelegt, mit der Nummerierung 0..5,

Cells (Typ String)

Stringgrid1.Cells[2,4]:=’Text’; schreibt einen String in die Zelle

FixedRows (Typ Integer)

Anzahl der fixierten Spalten (grau hinterlegt)

FixedCols (Typ Integer)

Anzahl der fixierten Zeilen (grau hinterlegt)

GridLineWidth (Typ Integer)

Breite der Gitternetzlinien

DefaultRowHeight (Typ Integer)

Höhe der Zeilen

DefaultColWidth (Typ Integer)

Breite der Spalten

Beispiel:

For i := 1 to 5 do begin

For j := 1 to 5 do begin

stringGrid1.cells[ i , j ]:= inttostr( j );

end;

end;

In die Zellen wird geschrieben, und zwar nacheinander in die Zellen der Reihe 1 (2. Reihe), Reihe 2 (3. Reihe) die Zahlen ' 1 ’ , ' 2 ’ , ' 3 ’ , ' 4 ’ , ' 5 ’ als Zeichen.

Page 4: Arbeitsblatt Übungen in Delphi Informatik Klasse: 11-12 ... · PDF fileArbeitsblatt Übungen in Delphi Informatik Klasse: 11-12 Datum: 1. Juni 2007 Delphi_1.doc Seite 1 von8 1. Es

Arbeitsblatt Übungen in Delphi Informatik

Klasse: 11-12 Datum: 1. Juni 2007

Delphi_1.doc Seite 4 von8

2. ASCII

Alle druckbaren und nichtdruckbaren Zeichen werden durch einen Zahlencode dargestellt, den sog ASCII-Code.

Es gibt dabei eine Entwicklung seit „Erfindung“ dieser Codierung zu verzweichnen.

Zunächst gab es nur 128 Zeichen. Das Problem war, dass nationale Sonderzeichen immer nur für ein Land darstellbar war, d.h. je nach Ländercode sahen einzelne Zeichen völig anders aus.

Bei der Erweiterung auf 255 Zeichen fielen dies Probleme weg. Aber auch dies reichte nicht mehr aus, daher war die folgerichtige Entwicklung der „ANSI“-Code. Der alte ASCII wurde ü-bernommen und deutlich erweitert, so dass nun auch chinesische Zeichen etc. darstellbar wur-den.

In Delphi werden alle Zeichen, Buchstaben wie Zahlen und Satz- wie auch Sonderzeichen im herkömmliche ASCII-Code verschlüsselt.

Ord

Definition:

Function Ord(x : String) :Integer;

Die Funktion erwartet einen String als Eingabe und liefert als Ergebnis einen Integer-Wert.

Beispiel:

Edit1.text:=inttostr(Ord(‘a’)); schreibt in das TEdit die Zeichenfolge 97.

Chr

Definition:

Function Chr(x : Integer) :String;

Die Funktion erwartet einen Integer-Wert als Eingabe und liefert als Ergebnis einen String.

Beispiel:

Edit1.text:=Chr(65)); schreibt in das TEdit das Zeichen A.

Beispiel2

For i:=65 to 90 do begin

Listbox1.items.add(chr( i ))

End;

For i:=97 to 122 do begin

Listbox1.items.add(chr( i ))

End;

For i:=48 to 57 do begin

Listbox1.items.add(chr( i ))

End;

Schreibt in die Listbox die Buchstaben A .. Z

Schreibt in die Listbox die Buchstaben a .. z

Schreibt in die Listbox die Zeichen 0 .. 9

Page 5: Arbeitsblatt Übungen in Delphi Informatik Klasse: 11-12 ... · PDF fileArbeitsblatt Übungen in Delphi Informatik Klasse: 11-12 Datum: 1. Juni 2007 Delphi_1.doc Seite 1 von8 1. Es

Arbeitsblatt Übungen in Delphi Informatik

Klasse: 11-12 Datum: 1. Juni 2007

Delphi_1.doc Seite 5 von8

3. Caesar-Verschlüsselung

Der Text steht in einem TEdit (Edit1), der verschlüsselte Text soll in ein zweites TEdit (E-dit2) Geschrieben werden, mit festem Code.

Procedure codieren

const code=3; var i,r:integer; z:char; begin For i:=1 to length(edit1.text) do begin z := edit1.text[i]; // das i-te Zeichen wird gelesen r := ord(z) ; // Umwandlung in ASCII-Code r := r+code; //Codieren, verschieben entlang der Buchstabenachse edit2.text := edit2.text+chr(r); //Eintragen in edit2 end;

Problem: Es können auch “Nichtbuchstaben” entstehen. Durch Weglassen von r := r+code und stattdessen durch Einfügen von If r > 90 then r:=r – 32; // werden Großbuchstaben erzeugt r := r + code; if r > 90 then r := r – 26; // Die Zeichen nach “Z” werden in Zeichen beginnend mit

“A” umgewandelt. Frage: Wie wird entschlüsselt?

Page 6: Arbeitsblatt Übungen in Delphi Informatik Klasse: 11-12 ... · PDF fileArbeitsblatt Übungen in Delphi Informatik Klasse: 11-12 Datum: 1. Juni 2007 Delphi_1.doc Seite 1 von8 1. Es

Arbeitsblatt Übungen in Delphi Informatik

Klasse: 11-12 Datum: 1. Juni 2007

Delphi_1.doc Seite 6 von8

4. Funktionen

Funktionen haben den Kopf:

function name (x : Typ1) : Typ2

begin ….

Result:=…..; (name:=…….;) end;

x ist dabei das Argument, die Variable, deren Wert an die Funktion übergeben wird.

Typ1 ist der Typ der Variablen

Typ2 ist der Typ der Funktion

Result In der Funktion muss diese Zeile stehen. In ihr wird der Funktion ihr Wert zugewie-sen. Als Alternative ist auch " Funktionsname:= Wert “ möglich.

Der Aufruf erfolgt immer in der folgenden Form:

Y:=name(Wert);

Beispiele für in Delphi „eingebaute“ Funktionen:

IntToStr(x : Integer) : String;

Eine Integer-Zahl wird übergeben, das Ergebnis ist ein String.

StrToInt( x : String) :Integer

Ein String wird übergeben, Das Ergebnis ist eine Zahl.

5. Prozeduren

Erfolgt die Deklaration in der Form:

Procedure Name

Begin … end;

werden in dieser Prozedur globale Variablen verwendet, so wird ihre Wertänderung global gül-tig.

Erfolgt die Deklaration in der Form:

Procedure Name (x : Typ)

Begin … end;

werden von global deklarierten Variablen nur die Kopien verwendet, d.h. globale Werte werden übernommen, Änderungen sind aber nur innerhalb der Prozedur gültig.

Erfolgt die Deklaration in der Form:

Procedure Name (var x : Typ)

Begin … end;

werden global deklarierte Variable direkt verwendet, d.h. globale Werte werden übernommen, Änderungen sind aber global gültig.

In allen drei Formen sind lokal deklarierte Variablen nur lokal gültig, selbst wenn eine global Va-riable unter dem gleichen Namen deklariert wird.

Page 7: Arbeitsblatt Übungen in Delphi Informatik Klasse: 11-12 ... · PDF fileArbeitsblatt Übungen in Delphi Informatik Klasse: 11-12 Datum: 1. Juni 2007 Delphi_1.doc Seite 1 von8 1. Es

Arbeitsblatt Übungen in Delphi Informatik

Klasse: 11-12 Datum: 1. Juni 2007

Delphi_1.doc Seite 7 von8

6. Typ-Deklarationen

Neben den standarmäßig vorhandenen Typen lassen sich eigene neue Typen dekarieren

6.1. Record

Ein Record ist eine Zusammenfassung mehrer Variablen mit (möglicherweise) unterschi-delichem Typ zu einer neuen.

Type

TRecord = record

a: integer;

b: String;

end;

var

einrecord : TRecord;

Wertzuweisung mit

Einrecord.a:=4;

Einrecord.b:=’text’;

Oder:

With einrecord do begin

a := 4;

b := ' text ’ ;

end;

6.2. Eigenständige Variablen – Typen

Type

Menge1 = 'a' .. 'z' ;

Menge2 = (mo , di , mi , dn , fr);

Zaehlmenge = mo..fr ;

Var

X : menge1; (x ist vom Typ char. Es kann aber auch als Zähler ver-wendet werden

Y : Zaehlmenge; (Y ist ein Enumerationswert, also weder Text noch Zahl, sondern nur als Zähler zu verwenden

Beispiele:

For x:= 'a’ to 'n’ do begin

Showmessage(x);

End;

For y:=mo to fr do begin

Showmessage('x’);

End;

Hier wird der Inhalt der Variablen in einem Fenster ausgegeben

Hier geht nicht das gleiche wie oben, da dieser Typ „enumerisch“ ist, d.h. weder String noh integer.

Page 8: Arbeitsblatt Übungen in Delphi Informatik Klasse: 11-12 ... · PDF fileArbeitsblatt Übungen in Delphi Informatik Klasse: 11-12 Datum: 1. Juni 2007 Delphi_1.doc Seite 1 von8 1. Es

Arbeitsblatt Übungen in Delphi Informatik

Klasse: 11-12 Datum: 1. Juni 2007

Delphi_1.doc Seite 8 von8

Aufgabe:

Schreibe ein Programm mit folgenden Objekten: Label, Edit-Feld und Button. Nach Drücken auf den Button wird im Feld Edit1 "ein neuer Text" angezeigt. Nach Doppelklick im Editfeld erscheint der Text auch im Label.

Tip: Wähle bei Edit1 im Objektinspektor Ereignisse "OnDblClick" und schreibe in die Prozedur den entsprechenden Befehl.

7. Umgang mit Zahlen Gibt man in Edit eine Zahl ein und will damit rechnen, muß der "String" in eine Zahl verwandelt wer-den:

StrToInt Wandelt einen String in eine Zahl (Integer) um !!!Der String darf nur aus Ziffern bestehen!!!

IntToStr Wandelt einen Zahl in eine String um

StrToFloat Wandelt einen String in eine Zahl (Float oder Turbo3 Real) um !!!Der String darf nur aus Ziffern bestehen!!!

FloatToStr Wandelt einen Zahl in eine String um

Aufgabe:

Schreibe ein Programm mit drei Edit-Feldern und einem Button. Nach Start soll in das erste Feld eine '3' in das zweite eine '5' eingegeben werden. Nach Druck auf den Button sollen die Zahlen addiert werden und das Ergbnis im dritten Edit-Feld ausgegeben werden.

Tip Die Befehle in der Prozedur lauten:

a := stroint(edit1.text) b := stroint(edit2.text) c := a + b edit2.text(inttostr( c )) !!!Vergiß nicht, die Variablen zu deklarieren!!!

Es geht auch kürzer, in einer Zeile! Wie?

7.1 Auf \\ntserver\schueler\delphi\Aufgaben\ befinden sich die Verzeichnisse Aufgabe_1 und Auf-gabe_2.

7.2 Beschreibe die Funktionen des Programmes aus Aufgabe_!.

7.3 In Aufgabe_2 kann man Text auf verschiedene Arten unter den Feldern austauschen. Notiere die Prozeduren, die es erlauben den Text per Drag und Drop von einem Feld in ein anderes zu kopieren. (Es sind hierzu Prozeduren beim Sender (Source) und Empfän-ger nötig.

7.4 Übertrag das Gelernte in ein eigenes Programm. Ein Edit-Feld und ein Label. Es soll der in dem Edit-Feld eingegebene Text per Drag und Drop in das Label kopiert werden.