Difference between revisions of "Form Tutorial/de"

From Free Pascal wiki
Jump to navigationJump to search
Line 56: Line 56:
 
ein.  
 
ein.  
 
Jetzt einfach starten (mit Taste [F9]) und sich freuen...
 
Jetzt einfach starten (mit Taste [F9]) und sich freuen...
 +
 +
 +
== Verwendung einer zweiten Form ==
 +
 +
Alle, die das Tutorial [[Form Tutorial/de#Einstieg, die erste GUI-Anwendung| Einstieg, die erste GUI-Anwendung]] durchgearbeitet haben müssten den Code zwischen begin und end von Procedure TForm1.Button1Click löschen. Alle anderen müssten ein neues Projekt (Anwendung) erstellen, einen Button auf der Form ablegen und den OnClick-Eventhandler von diesem Button1 erstellen. Diesen Button geben wir noch eine andere Caption (sichtbarer Text auf dem Button). Dazu den Button anwählen (einfach einmal anklicken) und im Objektinspektor unter Eigenschaften -> Caption den Text "Form2 öffnen" eingeben.
 +
 +
[[Image:Objektinspektor.png]]
 +
 +
 +
Unter dem Hauptmenupunkt Datei -> neues Formular können wir nun ein zweites Formular (Form2) dem Projekt hinzufügen. Auf diesem legen wir ebenfalls einen Button (Button1) ab und erstellen den OnClick-Eventhandler von diesem. Die Caption von diesem Button ändern wir analog oben zu "Schließen"
 +
<br>
 +
<br>
 +
Jetzt hat das Projekt zwei Forms, welche jeweils mit dem Hauptmenueintrag Projekt -> Formulare (oder Tastenkombination [Shift]+[F12]) ausgewählt und angezeigt werden können. Hilfsweise kann man auch im Quelltexteditor den Reiter der jeweiligen zur Form zugehörigen [[Unit/de| Unit]] auswählen und mit [F12] (mit [F12] wechselt man zwischen Quelltexteditor und Formular) das entsprechende Formular anzeigen.
 +
 +
 +
Im Quelltexteditor gehen wir jetzt auf die zur Form1 zugehörige [[Unit/de| Unit]] (Unit1) und fügen der Uses-Clause "Unit2" hinzu:
 +
<syntaxhighlight>
 +
uses
 +
  Classes, SysUtils, ... , Unit2;  //wichtig ist dass die einzelnen Units mit einem Komma voneinander getrennt sind und die Uses-Clause mit einem Semikolon beendet wird
 +
</syntaxhighlight>
 +
Nun ist Unit2 und damit Form2 von der Unit1 aus aufrufbar.
 +
 +
 +
Als nächstes bearbeiten wir noch die OnClick-Events von den Buttons der jeweiligen Form:
 +
<syntaxhighlight>
 +
unit Unit1;
 +
...
 +
procedure TForm1.Button1Click(Sender: TObject);
 +
begin
 +
  Form2.ShowModal;  //Zeigt die Form2 an, der Focus wird auf Form2 gesetzt
 +
end;
 +
</syntaxhighlight>
 +
<syntaxhighlight>
 +
unit Unit2;
 +
...
 +
procedure TForm2.Button1Click(Sender: TObject);
 +
begin
 +
  Close;  //Schließt Form2
 +
end;
 +
</syntaxhighlight>
 +
Jetzt einfach starten und sich hoffentlich freuen...
 +
  
  
Line 61: Line 103:
  
  
== Verwendung einer zweiten Form ==
 
  
 
== Zwei Forms, die sich gegenseitig aufrufen können ==
 
== Zwei Forms, die sich gegenseitig aufrufen können ==
  
 
== Übergabe von Variablen in andere Forms ==
 
== Übergabe von Variablen in andere Forms ==
 +
 +
== Andere Form als MainForm verwenden ==
 +
  
 
<br>
 
<br>

Revision as of 21:26, 8 May 2014

Deutsch (de) English (en) suomi (fi) 日本語 (ja) 中文(中国大陆)‎ (zh_CN)

Zurück zu den Zusätzlichen Informationen.

Eine kleine Einführung, wie man Forms in Lazarus nutzt.

Was ist ein(e) Form

Das Formular (engl. Form) wird auch im Deutschen oft als Form bezeichnet. Die Form stellt ein Fenster oder ein Dialogfeld dar, das die Benutzeroberfläche einer Anwendung bildet. Sie ist der Container, auf dem alle weiteren Komponenten (z.B. Buttons, Labels, Edit-Felder, Images etc.) eingefügt werden.

Einstieg, die erste GUI-Anwendung

Schon nachdem man Lazarus erfolgreich installiert hat, wird nach dem Start von Lazarus ein neues Projekt mit einer leeren Form erstellt. Ansonsten kann man unter dem Hauptmenueintrag Projekt -> Neues Projekt -> Anwendung eine neue GUI Anwendung erstellen.

NeuesProjekt.png


NeuesProjekt1.png


Jetzt hat man schon ein neues, funktionstüchtiges Projekt mit einem Formular erstellt:

Form1 Designmodus.png


Um das neu erstellte Projekt zu starten, kann man einfach die Taste [F9] drücken oder mit der Maus auf das Hauptmenu-Symbol Start.png klicken (oder Hauptmenue: Start -> Start). Das Projekt wird nun im Normalfall kompiliert und gestartet.

Es passiert nichts wirklich aufregendes, die Form (Form1) verändert jedoch geringfügig ihr Aussehen und wird die Punkte vom Raster-Gitter (Hilfe für Positionierung einzelner Komponenten) verlieren (solange die Gitterpunkte sichtbar sind, weiss man auch, dass man sich noch im Designmodus befindet):

Form1 Designmodus.png -> Form1 Runmodus.png


Als nächstes legen wir ein TButton auf der Form ab. Dieser soll später das Öffnen einer zweiten Form ermöglichen:

Unter der Standard-Komponentenpalette den TButton auswählen

TButtonStandardpalette.png

und auf die Form klicken: Es wird ein Button auf Form1 abgelegt mit dem Namen und Caption "Button1".


Damit dieser Button auch einen Sinn bekommt, muss man diesem mitteilen, dass er etwas tun soll, wenn auf ihn geklickt wird. Dieses Klicken kann man vereinfacht als ein Ereignis (engl. Event) betrachten. Dafür benötigt man Ereignisbehandlungsroutinen (engl. listener, observer, event handler), die nach dem Klick aufgerufen werden. Der Event Handler für ein Mausklick kann recht einfach erreicht werden, in dem man auf den einfügten Button1 doppelklickt (oder im Objektinspektor -> Button1 -> Reiter Ereignisse -> OnClick auf den Button [...] klickt). Es wird nun im Quelltexteditor eine Procedure TForm1.Button1Click erstellt, die immer aufgerufen wird (zur Laufzeit, nicht im Desingnmodus), wenn auf den Button1 geklickt wird:

NeuesProjekt2.png


Damit die Anwendung nach dem klicken von Button1 etwas zu tun bekommt, fügen wir einfach zwischen begin und end der Procedure TForm1.Button1Click etwas Code, wie

procedure TForm1.Button1Click(Sender: TObject);
begin
  Caption:='Mein erstes Formular';  //Caption von Form1 wird geändert (Text im Formularkopf)
  //oder
  Button1.Caption:='Hallo';         //Caption vom Button1 wird geändert (angezeigter Text des Buttons)
end;

ein. Jetzt einfach starten (mit Taste [F9]) und sich freuen...


Verwendung einer zweiten Form

Alle, die das Tutorial Einstieg, die erste GUI-Anwendung durchgearbeitet haben müssten den Code zwischen begin und end von Procedure TForm1.Button1Click löschen. Alle anderen müssten ein neues Projekt (Anwendung) erstellen, einen Button auf der Form ablegen und den OnClick-Eventhandler von diesem Button1 erstellen. Diesen Button geben wir noch eine andere Caption (sichtbarer Text auf dem Button). Dazu den Button anwählen (einfach einmal anklicken) und im Objektinspektor unter Eigenschaften -> Caption den Text "Form2 öffnen" eingeben.

Objektinspektor.png


Unter dem Hauptmenupunkt Datei -> neues Formular können wir nun ein zweites Formular (Form2) dem Projekt hinzufügen. Auf diesem legen wir ebenfalls einen Button (Button1) ab und erstellen den OnClick-Eventhandler von diesem. Die Caption von diesem Button ändern wir analog oben zu "Schließen"

Jetzt hat das Projekt zwei Forms, welche jeweils mit dem Hauptmenueintrag Projekt -> Formulare (oder Tastenkombination [Shift]+[F12]) ausgewählt und angezeigt werden können. Hilfsweise kann man auch im Quelltexteditor den Reiter der jeweiligen zur Form zugehörigen Unit auswählen und mit [F12] (mit [F12] wechselt man zwischen Quelltexteditor und Formular) das entsprechende Formular anzeigen.


Im Quelltexteditor gehen wir jetzt auf die zur Form1 zugehörige Unit (Unit1) und fügen der Uses-Clause "Unit2" hinzu:

uses
  Classes, SysUtils, ... , Unit2;  //wichtig ist dass die einzelnen Units mit einem Komma voneinander getrennt sind und die Uses-Clause mit einem Semikolon beendet wird

Nun ist Unit2 und damit Form2 von der Unit1 aus aufrufbar.


Als nächstes bearbeiten wir noch die OnClick-Events von den Buttons der jeweiligen Form:

unit Unit1;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.ShowModal;  //Zeigt die Form2 an, der Focus wird auf Form2 gesetzt
end;
unit Unit2;
...
procedure TForm2.Button1Click(Sender: TObject);
begin
  Close;  //Schließt Form2
end;

Jetzt einfach starten und sich hoffentlich freuen...


... in Bearbeitung...Weiter gehts morgen...


Zwei Forms, die sich gegenseitig aufrufen können

Übergabe von Variablen in andere Forms

Andere Form als MainForm verwenden



--Michl 15:22, 8 May 2014 (CEST)