Discussion:
Formular auf TabSheet
(zu alt für eine Antwort)
Alfred Gemsa
2018-03-07 08:29:17 UTC
Permalink
Hallo,

das Projekt hat zwei Formulare, auf dem ersten ist ein PageControl mit
mehreren TabSheets.

Ich möchte beim Auswählen eines bestimmten Tabsheets dort dann das
zweite Formular zu sehen bekommen, das mache bein Anwählen des
gewünschten TabSheets:

procedure TForm1.PageControl1Change(Sender: TObject);
begin
if PageControl1.ActivePageIndex=2 then begin
Form2.Parent := Tabsheet2;
Form2.Align := alClient;
Form2.Show;
end;
end;

Das zweite Formular wird so dargestellt, wie es sein soll, nur bekomme
ich dort keinen Focus auf Editfelder, Memos o.ä, so dass ich dort nichts
eingeben kann.

Checkboxen hingegen funktionieren

Was kann/muss ich tun, damit das zweite Formular auch Eingaben zulässt?

Gruß, Alfred.
Peter Below
2018-03-07 18:40:39 UTC
Permalink
Post by Alfred Gemsa
Hallo,
das Projekt hat zwei Formulare, auf dem ersten ist ein PageControl
mit mehreren TabSheets.
Ich möchte beim Auswählen eines bestimmten Tabsheets dort dann das
zweite Formular zu sehen bekommen, das mache bein Anwählen des
procedure TForm1.PageControl1Change(Sender: TObject);
begin
if PageControl1.ActivePageIndex=2 then begin
Form2.Parent := Tabsheet2;
Form2.Align := alClient;
Form2.Show;
end;
end;
Das zweite Formular wird so dargestellt, wie es sein soll, nur
bekomme ich dort keinen Focus auf Editfelder, Memos o.ä, so dass ich
dort nichts eingeben kann.
Checkboxen hingegen funktionieren
Was kann/muss ich tun, damit das zweite Formular auch Eingaben
zulässt?
Ist der Formstyle für TForm2 vielleicht fsMdiChild? Muß fsNormal sein.
Auch der Borderstyle hat einen Einfluß, darf nicht bsDialog sein.

Für deinen Zweck wäre es besser, ein TFrame statt ein TForm zu
verwenden, Forms sind eigentlich nicht dazu gedacht, als child controls
mißbraucht zu werden.
--
Peter Below
TeamB
Alfred Gemsa
2018-03-08 07:58:36 UTC
Permalink
Post by Peter Below
Ist der Formstyle für TForm2 vielleicht fsMdiChild? Muß fsNormal sein.
Auch der Borderstyle hat einen Einfluß, darf nicht bsDialog sein.
Es geht alles, wenn BorderStyle bsNone gesetzt wird.
Post by Peter Below
Für deinen Zweck wäre es besser, ein TFrame statt ein TForm zu
verwenden, Forms sind eigentlich nicht dazu gedacht, als child controls
mißbraucht zu werden.
Frames kannte ich noch gar nicht, damit geht es auch.

Danke und Gruß,

Alfred.

Loading...