Fensterposition
-
- Beiträge: 247
- Registriert: Mo 13. Jan 2025, 12:11
Fensterposition
Hallo Leute,
Ich habe fünf Fenster. Ein großes Hauptfenster das ist in der Mitte. Nun wollte ich die anderen 4 Fenster jeweils eines rechts oben...ein links oben und die andern zwei unten jeweils rechts und links. Das mittlere klappt aber wie mache ich die anderen vier?
Grüße
Ich habe fünf Fenster. Ein großes Hauptfenster das ist in der Mitte. Nun wollte ich die anderen 4 Fenster jeweils eines rechts oben...ein links oben und die andern zwei unten jeweils rechts und links. Das mittlere klappt aber wie mache ich die anderen vier?
Grüße
- Jorg3000
- Lazarusforum e. V.
- Beiträge: 376
- Registriert: So 10. Okt 2021, 10:24
- OS, Lazarus, FPC: Win64
- Wohnort: NRW
Re: Fensterposition
Hi
Meinst du soetwas ... oder hattest du etwas spezielles im Sinn?
Meinst du soetwas ... oder hattest du etwas spezielles im Sinn?
Code: Alles auswählen
Form2.SetBounds(x,y,w,h);
-
- Beiträge: 247
- Registriert: Mo 13. Jan 2025, 12:11
Re: Fensterposition
Gibt es dazu ein Beispiel? Es muß so sein das egal auf was für einem Bildschirm die Fenster immer rechts ...links und unten rechts links sind. Bin eben noch Anfänger....hab darüber nichts gefunden.
- Jorg3000
- Lazarusforum e. V.
- Beiträge: 376
- Registriert: So 10. Okt 2021, 10:24
- OS, Lazarus, FPC: Win64
- Wohnort: NRW
Re: Fensterposition
Ich weiß nicht, ob es einen Automatismus aus dem Docking-Bereich gibt, damit habe ich noch nicht gearbeitet. Ich würde die Fenster deshalb manuell setzen.
Ich orientiere mich immer am Arbeitsbereich (Screen.WorkAreaRect), weil dann die Task-Leiste berücksichtigt wird und evtl. irgendwelche Office-Leisten links oder rechts o.ä.
Aufruf z.B.: PositioniereFenster(Form5, 3);
Ich orientiere mich immer am Arbeitsbereich (Screen.WorkAreaRect), weil dann die Task-Leiste berücksichtigt wird und evtl. irgendwelche Office-Leisten links oder rechts o.ä.
Code: Alles auswählen
procedure PositioniereFenster(Fenster: TForm; Ecke: Byte);
var
r: TRect;
begin
r:= Screen.WorkAreaRect;
case Ecke of
0: // oben links
begin
Fenster.Left := r.Left;
Fenster.Top := r.Top;
end;
1: // oben rechts
begin
Fenster.Left := r.Right - Fenster.Width;
Fenster.Top := r.Top;
end;
2: // unten links
begin
Fenster.Left := r.Left;
Fenster.Top := r.Bottom - Fenster.Height;
end;
3: // unten rechts
begin
Fenster.Left := r.Right - Fenster.Width;
Fenster.Top := r.Bottom - Fenster.Height;
end;
end;
end;
-
- Beiträge: 247
- Registriert: Mo 13. Jan 2025, 12:11
Re: Fensterposition
Danke dir. Werde es probieren. Cool 

-
- Beiträge: 247
- Registriert: Mo 13. Jan 2025, 12:11
Re: Fensterposition
Hallo Jorg,
eine Frage noch dazu. Wie kann man denn eine Prozedure bzw. eine Methode irgendwo abspeichern, damit man diese dann für andere Fenster nutzen kann?
Weist du was ich meine?
eine Frage noch dazu. Wie kann man denn eine Prozedure bzw. eine Methode irgendwo abspeichern, damit man diese dann für andere Fenster nutzen kann?
Weist du was ich meine?
- Jorg3000
- Lazarusforum e. V.
- Beiträge: 376
- Registriert: So 10. Okt 2021, 10:24
- OS, Lazarus, FPC: Win64
- Wohnort: NRW
Re: Fensterposition
Moin!
Du kannst eine neue Unit erstellen, in die du solche Prozeduren reinpackst, die nicht speziell zu einem einzelnen Form gehören.
Ich habe z.B. eine Unit namens BasicsUnit angelegt, in die ich nicht-visuelle Funktionen z.B. zum Dateizugriff sammle, und eine Unit BasicsWinUnit, wo ich visuelle Funktionen sammle. Da würde ich die PositioniereFenster() reinkopieren.
Die komplette Prozedur kommt unten in den implementation-Teil, und der Funktionskopf wird oben im interface-Teil wiederholt, damit die Funktion sichtbar wird.
Die neue Unit bindet man in die vorhandenen Units ein, per: uses BasicsWinUnit; - und dann kann man auf die Funktionen der eingebundenen Unit zugreifen.
Grüße, Jörg
Du kannst eine neue Unit erstellen, in die du solche Prozeduren reinpackst, die nicht speziell zu einem einzelnen Form gehören.
Ich habe z.B. eine Unit namens BasicsUnit angelegt, in die ich nicht-visuelle Funktionen z.B. zum Dateizugriff sammle, und eine Unit BasicsWinUnit, wo ich visuelle Funktionen sammle. Da würde ich die PositioniereFenster() reinkopieren.
Die komplette Prozedur kommt unten in den implementation-Teil, und der Funktionskopf wird oben im interface-Teil wiederholt, damit die Funktion sichtbar wird.
Die neue Unit bindet man in die vorhandenen Units ein, per: uses BasicsWinUnit; - und dann kann man auf die Funktionen der eingebundenen Unit zugreifen.
Grüße, Jörg
-
- Beiträge: 247
- Registriert: Mo 13. Jan 2025, 12:11
Re: Fensterposition
Moin Jorg,
was meinst du mit:
Die komplette Prozedur kommt unten in den implementation-Teil, und der Funktionskopf wird oben im interface-Teil wiederholt, damit die Funktion sichtbar wird.
Entschuldige das ich so nachfrage.- muß mich durch alles erst durcharbeiten.
Danke dir.
was meinst du mit:
Die komplette Prozedur kommt unten in den implementation-Teil, und der Funktionskopf wird oben im interface-Teil wiederholt, damit die Funktion sichtbar wird.
Entschuldige das ich so nachfrage.- muß mich durch alles erst durcharbeiten.

Re: Fensterposition
https://wiki.freepascal.org/Unit#Detailed_unit_exampleAndy Nightingale hat geschrieben: Fr 7. Mär 2025, 09:57 Moin Jorg,
was meinst du mit:
Die komplette Prozedur kommt unten in den implementation-Teil, und der Funktionskopf wird oben im interface-Teil wiederholt, damit die Funktion sichtbar wird.
Entschuldige das ich so nachfrage.- muß mich durch alles erst durcharbeiten.Danke dir.
https://www.marcocantu.com/epascal/Germ ... unitde.htm
-
- Beiträge: 247
- Registriert: Mo 13. Jan 2025, 12:11
Re: Fensterposition
Danke aber das beantwortet nicht meine Frage....was bedeutet das: der Funktionskopf wird oben im interface-Teil wiederholt verstehe ich da was falsch?theo hat geschrieben: Fr 7. Mär 2025, 10:31https://wiki.freepascal.org/Unit#Detailed_unit_exampleAndy Nightingale hat geschrieben: Fr 7. Mär 2025, 09:57 Moin Jorg,
was meinst du mit:
Die komplette Prozedur kommt unten in den implementation-Teil, und der Funktionskopf wird oben im interface-Teil wiederholt, damit die Funktion sichtbar wird.
Entschuldige das ich so nachfrage.- muß mich durch alles erst durcharbeiten.Danke dir.
https://www.marcocantu.com/epascal/Germ ... unitde.htm
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1648
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Fensterposition
Code: Alles auswählen
unit unit1;
interface
procedure foo(Param1 : integer); // <- Das ist der Funktionskopf
implementation
procedure foo(Param1 : integer); // <- Das ist die Wiederholung im Implementation Teil
begin
...
end;
end.
-
- Beiträge: 247
- Registriert: Mo 13. Jan 2025, 12:11
Re: Fensterposition
Hallo Fliegermichl,fliegermichl hat geschrieben: Fr 7. Mär 2025, 13:11Code: Alles auswählen
unit unit1; interface procedure foo(Param1 : integer); // <- Das ist der Funktionskopf implementation procedure foo(Param1 : integer); // <- Das ist die Wiederholung im Implementation Teil begin ... end; end.
super .- jetzt hab ichs kapiert. Danke sehr.
Am Anfang steht man oft aufm Schlauch und das was so Profis wie euch im Grunde schon in Fleisch und Blut übergegangen ist und logisch ist, ist für einen Anfänger wie eine große Hürde. Man steht wie vor einer Mauer und denkt:...hää was meint er denn damit. Bin ich völlig verblödet.- und die Stunden vergehen und man probiert und macht und kommt wegen der einen Hürde nicht voran.
Dann traut man sich auch nicht mehr etwas zu schreiben, da man denkt:...vielleicht denken die das du blöd bist. So nach dem Motto:...er soll doch erstmal die Doku durchlesen. Aber das macht man alles, aber es fehlt im Grunde noch am Verständnis der Dinge. Ich hoffe nicht das ich euch nerve wenn ich die nächsten Monate mich häufiger melde. Danke allen. Grüße
- af0815
- Lazarusforum e. V.
- Beiträge: 6824
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Fensterposition
Im Interfaceteil wird deklariert, was ausserhalb der Unit sichtbar ist.
Bei Objekten und Klassen wird die Sichtbarkeit über Modifizierer wie private, protected, public und published eingestellt. Wobei die verschiedenen Keyworte unterschiedliche Auswirkungen haben.
Kurz gefasst:
private - nur innerhalb der Unit sichtbar, auch nicht bei Kindern.
protected - innerhalb des Objektes und den Kindern sichtbar
public - allgemein sichtbar
published - allgemein sichtbar und streambar (mit den richtigen Elternklasse)
Bei Objekten und Klassen wird die Sichtbarkeit über Modifizierer wie private, protected, public und published eingestellt. Wobei die verschiedenen Keyworte unterschiedliche Auswirkungen haben.
Kurz gefasst:
private - nur innerhalb der Unit sichtbar, auch nicht bei Kindern.
protected - innerhalb des Objektes und den Kindern sichtbar
public - allgemein sichtbar
published - allgemein sichtbar und streambar (mit den richtigen Elternklasse)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1648
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Fensterposition
Ich hab mir vor fast 40 Jahren das programmieren auch selbst beigebracht.
Am besten ist es wahrscheinlich, wenn Du dir ein gutes Buch zu dem Thema kaufst.
Am besten ist es wahrscheinlich, wenn Du dir ein gutes Buch zu dem Thema kaufst.
- Niesi
- Lazarusforum e. V.
- Beiträge: 594
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 4.1 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
- Kontaktdaten:
Re: Fensterposition
Oh, es gibt wieder gute Bücher über Pascal / ObjectPascal zu kaufen?fliegermichl hat geschrieben: Fr 7. Mär 2025, 15:04 Ich hab mir vor fast 40 Jahren das programmieren auch selbst beigebracht.
Am besten ist es wahrscheinlich, wenn Du dir ein gutes Buch zu dem Thema kaufst.
Ich denke: Eher nicht.
Vielleicht hilft dieses:
https://master.dl.sourceforge.net/proje ... df?viasf=1
Edit: Hier ist auch was auffindbar:
https://www.linuxlinks.com/excellent-fr ... rn-pascal/
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...