Fensterposition
- 
				Andy Nightingale
- Beiträge: 280
- 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: 414
- 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);
 - 
				Andy Nightingale
- Beiträge: 280
- 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: 414
- 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;
  - 
				Andy Nightingale
- Beiträge: 280
- Registriert: Mo 13. Jan 2025, 12:11
Re: Fensterposition
Danke dir. Werde es probieren. Cool 
			
			
									
									
						
- 
				Andy Nightingale
- Beiträge: 280
- 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: 414
- 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
- 
				Andy Nightingale
- Beiträge: 280
- 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.
  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.
 Danke dir.
  Danke dir.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
- 
				Andy Nightingale
- Beiträge: 280
- 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: 1699
- 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.
- 
				Andy Nightingale
- Beiträge: 280
- 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: 6983
- 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: 1699
- 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: 645
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 4.3 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 ...
						




 Verein
Verein 
 Links
Links Suche
Suche