Formular: Wohin mit nicht sichtbaren Komponenten?

Für Fragen rund um die Ide und zum Debugger
Antworten
am2
Lazarusforum e. V.
Beiträge: 116
Registriert: Di 21. Dez 2010, 09:59
OS, Lazarus, FPC: Win (L 0.9.26 beta FPC 2.2.2)
CPU-Target: 32 Bit

Formular: Wohin mit nicht sichtbaren Komponenten?

Beitrag von am2 »

Hi,

meine Projekte sind in letzter Zeit eher klein, gewissermaßen Tools zur Selbsthilfe.
Aber dennoch hat jetzt eines einen Zustand erreicht, bei dem die nicht visuellen Komponenten nerven.

Erklärung: Ich kann mittels IDE hervorragend alle Steuerelemente platzieren, so wie es dann in der Anwendung mal aussehen soll. Das geht fein.
Dinge auf einem anderen Tabellenblatt sehe ich nicht, alles ist schick.

Aber was mache ich mit den nicht sichtbaren Komponenten? Dazu zählt zumindest so etwas, wie MainMenu, ActionList, PopupMenu (und in meinem Fall - ich weiß, eigentlich Datenmodul - SQLQuerys, Transaction, Connection ...).
Im Moment sortiere ich mir die immer neu um.

Gibt es dafür einen Lösungsansatz? Könnte man eine dritte Formularansicht bauen, in welcher die nicht visuellen Komponenten "visualisiert" werden?
Wie löst ihr das?

AM

Benutzeravatar
gladio
Beiträge: 217
Registriert: Sa 21. Jun 2014, 06:15
OS, Lazarus, FPC: Win10-64 - aktuelle Lazarus/FPC Standard-Edition
CPU-Target: 64Bit
Wohnort: Rügen

Re: Formular: Wohin mit nicht sichtbaren Komponenten?

Beitrag von gladio »

Auf einem Formular sind immer mehr oder weniger freie Bereiche. Also zu erst mal dahin.
Dann habe ich auch kein Problem damit, die einfach über große Komponenten wie DataGrid... zu legen.
Die sind bei mir im Entwurf meistens inaktiv und so stört es auch nicht, wenn da was drüber liegt.
Wenn dann wirklich kein Platz ist, könnte man das Formular größer machen und die Größe bei der Ausführung
im OnCreate oder OnShow richtig setzen.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Formular: Wohin mit nicht sichtbaren Komponenten?

Beitrag von wp_xyz »

SQLQuery, Transactions, Connections kannst du in ein DataModule auslagern. Und manche nicht-visuellen Komponenten (TOpenDialog) muss man eigentlich nicht aufs Formular klicken, sondern kann sie auch zur Laufzeit erzeugen:

Code: Alles auswählen

procedure TForm1.MenuFileOpen(Sender: TObject);
begin
  with TOpenDialog.Create(nil) do
    try
      Filter := 'Alle Dateien (*.*)|*.*|Text-Dateien (*.txt)|*.txt';
      FilterIndex := 2;
      Options := Options + [ofPastMustExist];
      if Execute then
        LoadFile(FileName);
    finally
      Free;
    end;
end;
 
procedure TForm1.LoadFile(const AFileName: String);
begin 
    // Hier Code zum Laden der angegebenen Datei
end;
 

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Formular: Wohin mit nicht sichtbaren Komponenten?

Beitrag von mse »

MSEide hat auch die Möglichkeit, die Sichtbarkeit von nicht visuellen und visuellen Komponenten pro Formular einzustellen. Ich nehme an auch Lazarus hat eine entsprechende Option.
Dateianhänge
hidecomponents.png
Zuletzt geändert von mse am Mi 28. Jun 2017, 13:36, insgesamt 1-mal geändert.

am2
Lazarusforum e. V.
Beiträge: 116
Registriert: Di 21. Dez 2010, 09:59
OS, Lazarus, FPC: Win (L 0.9.26 beta FPC 2.2.2)
CPU-Target: 32 Bit

Re: Formular: Wohin mit nicht sichtbaren Komponenten?

Beitrag von am2 »

Datenmodule: Noch zu Delphi- Zeiten habe ich relativ intensiv mit Datenmodulen gearbeitet, aber nervig war dann, dass ich zwar Queries und Datasources im Datenmodul schön miteinander verheiraten konnte, aber das Durchreichen an die Steuerelemente dann mit weiteren Data- Sources verbunden war, da man (zumindest in dem Kontext, in dem ich das damals brauchte) die Steuerelemente nicht so richtig per IDE an Datasources fremder Datenmodule hängen konnte.
Für meine Tools ist das übertrieben, das erzeugt nur unnötigen Aufwand.

Tatsächlich erzeuge ich die meisten Sachen dymanisch, weil mir das statische Reservieren von Steuerelementen, die ich nur in sehr seltenen Fällen und für kurze Zeit benötige, auf den Geist geht (nicht zuletzt macht es die Member- Liste des Formulars und die Fensterfläche voll.

Aber dennoch bleiben immer so zwei Hände voll Komponenten übrig, die ich immer hin und her schiebe. Da ich viel mit PageControls arbeite, habe ich eigentlich kaum Flächen, die immer frei bleiben, außer ein "Nachrichten"- Memo am unteren Rand. Aber wenn ich das Fenster größer mache, dann schiebe ich die Dinger (natürlich einzeln) wieder dort hin.

Daher hatte ich gehofft, ich hätte einfach nur einen Knopf übersehen ...

@mse: Sowas könnte ich gebrauchen, das stimmt. Gibs dat?

Dennoch vielen Dank für Eure Antworten
Andreas

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Formular: Wohin mit nicht sichtbaren Komponenten?

Beitrag von mse »

am2 hat geschrieben:Datenmodule: Noch zu Delphi- Zeiten habe ich relativ intensiv mit Datenmodulen gearbeitet, aber nervig war dann, dass ich zwar Queries und Datasources im Datenmodul schön miteinander verheiraten konnte, aber das Durchreichen an die Steuerelemente dann mit weiteren Data- Sources verbunden war, da man (zumindest in dem Kontext, in dem ich das damals brauchte) die Steuerelemente nicht so richtig per IDE an Datasources fremder Datenmodule hängen konnte.

Das sollte kein Problem mehr sein.

Antworten