TForm beim Aufruf auf ganzem Bildschirm anzeigen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Luckner
Beiträge: 88
Registriert: Sa 18. Jan 2020, 09:56
OS, Lazarus, FPC: Winux (L 2.2.0 FPC 3.2.2)
CPU-Target: Windows 64-Bit

TForm beim Aufruf auf ganzem Bildschirm anzeigen

Beitrag von Luckner »

Hallo,
ich versuche ein TForm, mit einigen Frames, beim Start des Programmens auf den ganzen Bildschirm zu dehnen, aber es geht nicht. In Delphi funktioniert es auf 'OnActivate' mit Form1.Align := alClient; In Lazarus bekomme ich es jedoch nicht hin. Bitte um Hilfe.

Gruß, Luckner

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: TForm beim Aufruf auf ganzem Bildschirm anzeigen

Beitrag von theo »

Ich weiss nicht genau was du meinst, aber normalerweise ist die Eigenschaft "WindowState" (wsMaximized) dafür zuständig.

siro
Beiträge: 732
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: TForm beim Aufruf auf ganzem Bildschirm anzeigen

Beitrag von siro »

so geht es bei mir:

Code: Alles auswählen

 
procedure TForm1.FormCreate(Sender: TObject);
begin
  Form1.WindowState:=wsMaximized;
end;
 


Siro
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

Luckner
Beiträge: 88
Registriert: Sa 18. Jan 2020, 09:56
OS, Lazarus, FPC: Winux (L 2.2.0 FPC 3.2.2)
CPU-Target: Windows 64-Bit

Re: TForm beim Aufruf auf ganzem Bildschirm anzeigen

Beitrag von Luckner »

Vielen Dank,

das war es. Hätte nicht gedacht, dass die Hilfe fast sofort und am Sonntag erfolgt.

Gruß, Luckner

siro
Beiträge: 732
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: TForm beim Aufruf auf ganzem Bildschirm anzeigen

Beitrag von siro »

Beim experimentieren fällt mir grade auf: (ich wollte jetzt dafür keinen neuee Thrad aufmachen)
dass wsFullscreen das Fenster nicht auf den Bildschirm zentriert.
Die Breite und Höhe stimmt aber. So habe ich left auf 0 gesetzt und stelle fest:

Wenn ich Form1.left:=0 eingebe, egal ob zur Laufzeit oder in der Designphase, befindet sich das Fenster nicht am linken Bildschirmrand.
Wenn ich das Fenster mit der Maus an den Bildschirmrand schiebe, steht "left" auf -8.

Das gleiche passiert auch mit wsMaximized.
Danach steht left auf -8

Grad nochmal auf 3 verschiedenen Rechnern probiert.

Windows 10, 64 Bit
Lazarus 3.04

Siro
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: TForm beim Aufruf auf ganzem Bildschirm anzeigen

Beitrag von Winni »

Hi!

Object Inspector --> Form1 --> position: poScreenCenter

Winni

siro
Beiträge: 732
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: TForm beim Aufruf auf ganzem Bildschirm anzeigen

Beitrag von siro »

Danke Winni für deine Antwort, funktioniert leider noch nicht:

nun habe ich folgende Zeilen in verschiedenen Methoden(Ereignissen) probiert:

Code: Alles auswählen

 
  Form1.Position :=poScreenCenter;
  Form1.WindowState:=wsFullScreen;


Bei OnCreate geht es nicht
Bei OnShow geht es auch nicht
Bei FormActivate geht es auch nicht

Wenn ich es in FormClick packe und das Formular nach der Anzeige dann anklicke geht es.

Wo baut man das denn am besten ein ?

Siro
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: TForm beim Aufruf auf ganzem Bildschirm anzeigen

Beitrag von Winni »

Object Inspector

siro
Beiträge: 732
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: TForm beim Aufruf auf ganzem Bildschirm anzeigen

Beitrag von siro »

Im Objektinspektor war natürlich das Erste was ich probiert habe, aber das geht auch nicht...

Das Zusammenspiel mit wsFullScreen scheint problematisch, aber das braucht man ja nicht, ich wollt den Thread jetzt nicht zerreissen.
wsMaximized läuft ja,
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
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: TForm beim Aufruf auf ganzem Bildschirm anzeigen

Beitrag von af0815 »

Nur so eine Frage: was soll das Form1.xxx in den Events ?!

Entweder es genügt ein self. oder ein WindowsState := xxxx !! Was soll der Verweis auf Form1. ?

Bei mir geht es ohne Form1 in On Create oder OnActivate (abgesichert mit einer 'Init' Variablen, das es nicht laufend aufgerufen wird). Läuft sowohl unter win32, win64, Linux/arm und Linux/x64. Ich verwendet es aber immer innerhalb des Objektes.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

siro
Beiträge: 732
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: TForm beim Aufruf auf ganzem Bildschirm anzeigen

Beitrag von siro »

Das kann man weglassen, muss man aber nicht.
Bei Problemen will ich lediglich sicher gehen, das auch die richtige Instanz benutzt wird,
weil ich auch gern Testroutinen außerhalb des Objekt implementiere.
Innerhalb des Objekt ist der Parameter self dabei, stimme ich Dir voll zu und da brauche ich es nicht.
Das ist so eine Angewohnheit von mir :wink:
Siro
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
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: TForm beim Aufruf auf ganzem Bildschirm anzeigen

Beitrag von af0815 »

siro hat geschrieben:Das kann man weglassen, muss man aber nicht.

Die Instanz direkt zu refernzieren, kann nur in einem Desaster enden. Ich habe meist Formulare Dynamisch und da gibt es keine fix vorgegeben Instanz wie Form1 - Verwende ich die, reite ich SICHER auf einem totem Pferd.
TForm1 würde ich noch verstehen, ist wie self. aber Form1 innerhalb der Definition von TForm1 ist ein NoGo. Un darauf läuft es hinauf, wenn du von OnActivate, OnCreate oder sonstigen sprichst.

siro hat geschrieben:so geht es bei mir:

Code: Alles auswählen

 
procedure TForm1.FormCreate(Sender: TObject);
begin
  Form1.WindowState:=wsMaximized;
end;
 


Das ist NoGo !!!!!"!!
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten