Controls in Subform fokussieren

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.

Controls in Subform fokussieren

Beitragvon fliegermichl » 16. Okt 2018, 10:50 Controls in Subform fokussieren

Hallo,

ich habe ein Formular, daß verschiedene Optionen zur Verfügung stellt. Dieses Formular soll wahlweise standalone oder als Subform in anderen Formularen verwendbar sein.
Das klappt eigentlich auch ausser, daß sich dessen Controls während es als Subform fungiert nicht mit der Maus fokussieren lassen. Mit Tab geht es.

Beispiel (Neues Projekt + zwei ganz normale Formulare. Form1 hat zwei Edit Controls, Form2 hat ein EditControl und folgender Quellcode in unit1.pas
Code: Alles auswählen
 
implementation
uses unit2;
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.FormShow(Sender: TObject);
begin
 if Form2 = nil then
 begin
   Form2 := TForm2.Create(Application);
   Form2.Show();
   Form2.Parent := self;
   Form2.Left := width - Form2.Width;
   Form2.Top := 0;
 end;
end;
 
end.
 


Die beiden Edit Controls in Form1 lassen sich mit der Mauss fokussieren, jenes aus Form2 nicht. Mittels Tab geht es durch alle drei.
fliegermichl
 
Beiträge: 215
Registriert: 9. Jun 2011, 08:42

Beitragvon braunbär » 16. Okt 2018, 12:43 Re: Controls in Subform fokussieren

Eine Form als Parent einer anderen Form scheint in Free Pascal nichts als Probleme zu machen.

Verwende statt dessen ein TFrame, das du dann in beliebigen anderen Forms verwenden kannst (Standalone geht nicht, aber als Bestandteil einer Form, die nur dieses Frame enthält, ist es auch kein Problem).
braunbär
 
Beiträge: 236
Registriert: 8. Jun 2017, 17:21

Beitragvon fliegermichl » 16. Okt 2018, 19:39 Re: Controls in Subform fokussieren

Hm nicht nur in Lazarus,
eigentlich hatte ich das Problem in einem Delphiprogramm. :-)

Kann man Frames dynamisch zur Laufzeit in ein Formular einbinden?

Hintergrund ist der, daß ich ein ziemlich umfangreiches Ausgabeformular habe (eine Art PrintPreview mit allem möglichen Schnickschnack)

Das wird jetzt ungefähr an (übertrieben gesagt) hundert Stellen im Programm verwendet und jede dieser Stellen, hat spezielle Wünsche an die Ausgabe.
Mit dem Subform hat das supi funktioniert nur eben das fokussieren (übrigens nur) der TEdit Controls. Buttons, Checkboxen usw. alles kein Problem.
fliegermichl
 
Beiträge: 215
Registriert: 9. Jun 2011, 08:42

Beitragvon braunbär » 16. Okt 2018, 23:09 Re: Controls in Subform fokussieren

Ein Frame ist im Prinzip nichts anderes als eine Subform (mit einigen Einschränkungen, so hat es z.B. keine Titelleiste), die kannst du in beliebig viele Forms auch zur Laufzeit einbinden.
Ich verwende es in der Regel so, dass ich als Parent ein Panel angebe, und die Frame selbst bekommt dann ein align=tsClient. So kann ich das Panel schon beim Design der Form fix und fertig positionieren und die Frame aber erst zur Laufzeit hineinsetzen.

In Delphi hatte ich eigentlich mit Forms in Forms keine Probleme, da hatte ich sogar überwiegend MDI Anwendungen, und das hat immer einwandfrei funktioniert. Ich habe zwar von verschiedensten Problemen gehört, aber selbst nie welche damit gehabt.
braunbär
 
Beiträge: 236
Registriert: 8. Jun 2017, 17:21

• Themenende •

Zurück zu Sonstiges



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried