Form.top / left / width / height und KDE 4.4 [ gelöst ]

Für Fragen rund um die Ide und zum Debugger
Antworten
Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1617
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Form.top / left / width / height und KDE 4.4 [ gelöst ]

Beitrag von corpsman »

Guten Morgen allerseits,

Ich habe mir das neue Kubuntu 4.10 LTS installiert, und da ist auch das neue KDE 4.4 mit dabei. ( Ich vermute das der Fehler durch das Fenster Snapping kommt, sicher bin ich aber nicht ..)

Und seit dem ich dieses drauf habe kann ich keine Vollbild Anwendungen mehr erstellen.

Das heist, es geht schon, aber nicht mehr so wie ich das bisher gemacht hatte :

Code: Alles auswählen

Function GetMaxResolution: TRect;
Var
  i: Integer;
Begin
  result.Top := 0;
  result.Left := 0;
  result.Bottom := 0;
  result.Right := 0;
  For i := 0 To Screen.MonitorCount - 1 Do Begin
    If Screen.Monitors[i].Left < result.Left Then
      result.Left := Screen.Monitors[i].Left;
    If Screen.Monitors[i].Top < result.Top Then
      result.Top := Screen.Monitors[i].Top;
 
    If (Screen.Monitors[i].Left + Screen.Monitors[i].width) > result.Right Then
      result.Right := (Screen.Monitors[i].Left + Screen.Monitors[i].width);
    If (Screen.Monitors[i].top + Screen.Monitors[i].height) > result.Bottom Then
      result.Bottom := (Screen.Monitors[i].top + Screen.Monitors[i].height);
  End;
End;
 
Procedure TForm1.FormCreate(Sender: TObject);
Var
  i: Integer;
  r: Trect;
Begin
  memo1.clear;
  For i := 0 To screen.MonitorCount - 1 Do Begin
    memo1.lines.add('Monitor ' + inttostr(i + 1));
    memo1.lines.add('Top : ' + inttostr(screen.Monitors[i].Top));
    memo1.lines.add('Left : ' + inttostr(screen.Monitors[i].left));
    memo1.lines.add('Width : ' + inttostr(screen.Monitors[i].width));
    memo1.lines.add('Height : ' + inttostr(screen.Monitors[i].height));
    memo1.lines.add('');
  End;
  r := GetMaxResolution;
  top := r.top;
  left := r.left;
  width := r.Right - r.left;
  height := r.bottom - r.top;
End;
Dieser Code sollte ja eigentlich das Formular, auf den kompletten Monitor ausdehnen. Das geschieht aber leider nicht.
mittels :

Code: Alles auswählen

form1.WindowState := wsMaximized;
Kann man das zwar für Single Monitor Systeme Lösen, aber wie es der Obige Code schon andeutet habe ich ein Multimonitor System und da geht es nicht :(

Habt ihr eine Idee, wie ich das Problem lösen kann ?

@ irgend ein Moderator
Ich hab glaubig das Falsche Unterforum erwischt, könnte jemand den Post nach

# Portal»Foren-Übersicht ‹ Programmierung ‹ API & Plattformspezifisches ‹ Linux
verschieben ?
Zuletzt geändert von corpsman am So 30. Mai 2010, 13:49, insgesamt 1-mal geändert.
--
Just try it

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1617
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Form.top / left / width / height und KDE 4.4

Beitrag von corpsman »

*push*

Keiner weis was zu dem Thema ?

nicht mal ein Mod der meinen Beitrag in das richtige Unterforum verschiebt *schnief* ?
--
Just try it

elektrischeliebe
Beiträge: 7
Registriert: Mi 28. Apr 2010, 08:40

Re: Form.top / left / width / height und KDE 4.4

Beitrag von elektrischeliebe »

Hast du mal versucht WindowsState dierekt im OI einzustellen? Bisher hatte ich noch nie probleme damit.

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1617
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Form.top / left / width / height und KDE 4.4

Beitrag von corpsman »

Wenn ich im OI die Windowstate auf Maximized stelle passiert das selbe wie bei OnCreate


Das Problem ist, dass ich einen Screensaver Programmieren will, bzw habe. Und dieser sollte eben über den gesamten Monitor gehen, also auch die Taskleiste überdecken. Normalerweise ging das in dem man die top / left / width /height von Hand gesetzt hat. Doch egal ob Single Screen, oder Dual Screen, ich kann vom Source aus die Anwendung nicht dazu bringen, dass sie die Tastkleiste überdeckt.

Selbst, wenn ich versuche das Offene Fenster über die Taskleiste zu schieben verschieben klappt es nur wenn ich Formstyle auf StayOnTop stelle. Doch das bringt mir auch nicht viel, da bei Maximized wieder die Taskleiste nicht verdeckt wird, und beim setzen von Hand das Formular einfach "Kleiner" gemacht wird ...
--
Just try it

Socke
Lazarusforum e. V.
Beiträge: 3177
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Form.top / left / width / height und KDE 4.4

Beitrag von Socke »

Hört sich für mich nach einem Problem mit dem Widgetset (qt4.4) oder dem Windowmanager (kdm) an. Evtl. ists auch nur ein Bug in der LCL oder du musst dich mit der entsprechenden API herumschlagen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1617
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Form.top / left / width / height und KDE 4.4

Beitrag von corpsman »

Nachdem ich keinen Schimmer von diesen Sachen habe, ..

Muss ich hoffen das sich das Problem, sozusagen von allein löst ?

oder weiß jemand wie man Ausschluss technisch ermitteln könnte woran es liegen könnte..

Bin ich wenigstens nicht der einzige bei dem dieser Effekt auftritt ?

Kann jemand diese Verhaltensweise bestätigen ?
--
Just try it

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Re: Form.top / left / width / height und KDE 4.4

Beitrag von Targion »

Kannst ja mal ausprobieren, ob das mit Metacity auch passiert: Metacity installieren, dann

Code: Alles auswählen

metacity --replace
Und ausführen.
Hinteher wieder

Code: Alles auswählen

kwin --replace

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1617
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Form.top / left / width / height und KDE 4.4

Beitrag von corpsman »

ENDLICH

ich habs raus gefunden wie es geht, hier die Lösung für alle die auch eine Vollbildanwendung machen wollen, das sample ist aber nur für Single Screens, mit dem Code aus Post 1 geht es dann auf Multi Monitor Systemen :

Code: Alles auswählen

Procedure TForm1.FormCreate(Sender: TObject);
Begin
  top := 0;
  left := 0;
  width := screen.Width;
  height := screen.Height;
  Constraints.MinWidth := screen.width;
  Constraints.MaxWidth := screen.width;
  Constraints.MinHeight := screen.Height;
  Constraints.MaxHeight := screen.Height;
  BorderStyle := bsnone;
  FormStyle := fsStayOnTop;
End;
--
Just try it

Antworten