1. Pascal / Говнокод #16138

    +98

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    procedure TForm1.FormCreate(Sender: TObject);
    var
      H: THandle;
      R: TRect;
      appbardata: tappbardata;
    
    begin
    
      sx := 0;
      sy := 0;
      ax := 0;
      ay := 0;
      sh := GetSystemMetrics(SM_CYSCREEN);
    
      ZeroMemory(@appbardata, SizeOf(tappbardata));
      SHAppbarmessage(5, appbardata);
    
      If appbardata.rc.TopLeft.X > 1 then
      begin
        ax := appbardata.rc.BottomRight.X - appbardata.rc.TopLeft.X;
        ax:=ax+4;
      end
      else
      ax:=6;
    
      If appbardata.rc.TopLeft.y > 1 then
      begin
        ay := appbardata.rc.BottomRight.y - appbardata.rc.TopLeft.y;
      ay:=ay+4;
      end
      else
      ay:=6;
    
      sx := (GetSystemMetrics(SM_CXSCREEN)-form1.ClientWidth-ax);
      sy := (GetSystemMetrics(SM_CYSCREEN)-form1.ClientHeight-ay);
    
      Form1.left := sx;
      Form1.Top :=sy;
    
    end;

    Выравнивание всплывающего окошка точно по правому краю.
    Даже не знаю, гк ли это, ибо глаз не видит себя. Но смотрится очень странно, почти как хак.

    Запостил: brutushafens, 10 Июня 2014

    Комментарии (11) RSS

    • Если я не ошибаюсь (а я ошибаюсь):
      Form1.Top=screen.height-Form1.Height;
      Form1.Left=screen.width-Form1.Width;
      Ответить
      • cleaned
        Ответить
        • А еще оно может выезжать.
          Ответить
        • > Хак в том, что приходится учитывать это положение, т.к. у всех юзеров оно разное - у кого панель задач располагается сбоку, у кого сверху, справа, а у кого и вовсе убрана
          Раньше хром при развороте на 1/2 экрана (своём собственном) не учитывал панель задач, и его окна, расположенные слева и справа, перекрывались из-за этого.
          Не знаю, осталось ли сейчас, т.к. видимо они отключили разворот в Win 7+, где он уже есть. У кого осталась XP и/или старый хром, может проверить.

          P.S. Кстати, как под линуксами это выглядит? Там же много панелей, больших и разных, которые хром и знать не знает.
          Ответить
      • Procedure TForm1.FormCreate(Sender: TObject);
        Begin
        Left:=Screen.WorkAreaLeft+Screen.WorkAre aWidth-Width;
        Top:=Screen.WorkAreaTop+Screen.WorkAreaH eight-Height;
        End;
        Ответить
    • Ответить
    • Может я недостаточно проницателен, но только сейчас я удостоверился, что ты starper
      Ответить
    • cleaned
      Ответить
    • cleaned
      Ответить

    Добавить комментарий