Show oder Show Modal

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Traugott
Beiträge: 19
Registriert: Sa 1. Jan 2011, 12:08

Show oder Show Modal

Beitrag von Traugott »

Hi,
da Lazarus auf einer Delphiartigen Umsetzung basiert funktioniert das ein oder andere noch nicht.
Vom C++ Builder weiß ich dass ich beim Öffnen einer zweiten Form über Button Click Form Show oder Form ShowModal mein gewünschtes Ergebnis erreiche. Eine Einbindung include *.h ist nötig. Bei Lazarus gibt es keine *.h und ich stehe wohl VOLL auf der Leitung. Wo und wie trage ich hier die Einbindung ein ????
Ich möchte von meiner MainForm mit Button1 eine Form2 Öffnen

mfg

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: Show oder Show Modal

Beitrag von Euklid »

Traugott hat geschrieben: Ich möchte von meiner MainForm mit Button1 eine Form2 Öffnen
1. Im uses-Bereich der MainForm (ganz oben im Quelltext) muss die Unit aufgeführt sein, in der die FOrm2 definiert wird, also z.B. unit2. (ich nehme an, dies entspricht in C der Einbindung der *.h)
2. Doppelklick auf Button1 und es eröffnet sich eine Prozedur für das Ereignis onclick
3. Dort Form2.Show; oder Form2.ShowModal; eintragen.

Möchtest Du von der Form2 aus auch auf die MainForm zugreifen, muss in der zur Form2 gehörenden Unit die Unit der Mainform hinzugefügt werden, und zwar durch ein "uses" unter "implementation", damit es keinen Kurzschluss gibt.

Viele Grüße, Euklid

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Show oder Show Modal

Beitrag von MAC »

Euklid hat recht.
.h dateien sind quellcode dateien in C (bzw C++) ( da kenn ich mich leider nur nen bisschen aus).
in Lazarus haben die Dateien die endung .pas, diese wird aber nicht im quellcode erwähnt.

Ziemlich oben in deinem Programm sollte sowas stehen.

Code: Alles auswählen

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs;


Die liste besteht aus den standart units (dateien) die verwendet werden. wenn du jetzt ">> Datei >> Neues Formular" anklickst dann erstellt Lazarus ja eine 2te unit, jetzt musst du beide abspeichern, am besten in den selben Ordner. z.B unit1 und unit2 ( natürlich bessere namen verweden).

Danach in unit1 gehen. F12 --> button holen auf die Form plazieren und makieren. Im Objektinspektor auf Ereignisse und da steht ne tolle liste für alles was es gibt. Onklick makieren, doppelklick in das Feld rein und Lazarus hat nen bisschen für dich erledigt. ( Ich erwähne hier extra den Objektinspektor, da beim doppelklick auf den Button immer nur das "StandartEreignis" erstellt wird. Man aber wissen sollte das man noch mehr Möglichkeiten hat ).

Soweit ich weis ist showmodal noch nen bisschen buggy (hab ich lange nicht mehr benutzt , könnte sich schon geändert haben ).
showmodal bewirkt im gegensatzt zu show ja das nur noch Form2 benutzbar wird. Und Form1 solange nicht mehr anklickbar ist. (Alternative Form1.Enabled := False).

Code: Alles auswählen

Signatur := nil;

Traugott
Beiträge: 19
Registriert: Sa 1. Jan 2011, 12:08

Re: Show oder Show Modal

Beitrag von Traugott »

Hi,

nach dem eintrag in uses hats gefunzt.
Vielen Dank.

Antworten