Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];

Вниз

ICQ   Найти похожие ветки 

 
DVM ©   (2005-08-03 14:03) [40]


> webpauk

Можно и без аппбаров

function EnumWindowsProc (hWnd: HWND; Data: Pointer) : BOOL; stdcall;
var
 rcWorkArea, rcWindow: TRect;
 dx, dy: integer;
begin
 rcWorkArea := TRect(Data^);
 if IsMoveableWindow(hWnd) then
   begin

     // Если окно максимизировано, подстраиваем его размеры по рабочей области
     GetWindowRect(hwnd, rcWindow);
     if IsZoomed(hWnd) then
       MoveWindow(hwnd, rcWorkArea.Left, rcWorkArea.Top, rcWorkArea.Right - rcWorkArea.Left, rcWorkArea.Bottom - rcWorkArea.Top, true)
     else
       begin
     // Если высота окна больше высоты рабочей области
     GetWindowRect(hwnd, rcWindow);
     if GetWindowHeight(hWnd) > (rcWorkArea.Bottom - rcWorkArea.Top) then
       begin
         dy:=GetWindowHeight(hWnd)-(rcWorkArea.Bottom - rcWorkArea.Top);
         if IsSizeableWindow(hWnd) then
           MoveWindow(hwnd, rcWindow.Left, rcWorkArea.Top, GetWindowWidth(hWnd), GetWindowHeight(hWnd) - dy, true);
       end;

     // Если ширина окна больше ширины рабочей области
     GetWindowRect(hwnd, rcWindow);
     if GetWindowWidth(hWnd) > (rcWorkArea.Right - rcWorkArea.Left) then
       begin
         dx:=GetWindowWidth(hWnd)-(rcWorkArea.Right - rcWorkArea.Left);
         if IsSizeableWindow(hWnd) then
           MoveWindow(hwnd, rcWorkArea.Left, rcWindow.Top, GetWindowWidth(hWnd)-dx, GetWindowHeight(hWnd), true);
       end;

     // Если окно заезжает за верхний край рабочей области
     GetWindowRect(hwnd, rcWindow);
     if rcWindow.top < rcWorkArea.top then
       begin
         dy := rcWorkArea.top - rcWindow.top;
         if dy > (rcWorkArea.Bottom - rcWindow.Bottom) then
           dy := rcWorkArea.Bottom - rcWindow.Bottom;
         MoveWindow(hwnd, rcWindow.Left, rcWindow.Top + dy, GetWindowWidth(hWnd), GetWindowHeight(hWnd), true);
       end;

     // Если окно заезжает за нижний край рабочей области
     GetWindowRect(hwnd, rcWindow);
     if rcWindow.Bottom > rcWorkArea.Bottom then
       begin
         dy := rcWindow.Bottom - rcWorkArea.Bottom;
         if dy > (rcWindow.Top - rcWorkArea.Top) then
           dy := rcWindow.Top - rcWorkArea.Top;
         MoveWindow(hwnd, rcWindow.Left, rcWindow.Top - dy, GetWindowWidth(hWnd), GetWindowHeight(hWnd), true);
       end;

     // Если окно заезжает за левый край рабочей области
     GetWindowRect(hwnd, rcWindow);
     if rcWindow.Left < rcWorkArea.Left then
       begin
         dx :=  rcWorkArea.Left - rcWindow.Left;
         if dx > (rcWorkArea.Right - rcWindow.Right) then
           dx := rcWorkArea.Right - rcWindow.Right;
         MoveWindow(hwnd, rcWindow.Left+dx, rcWindow.Top, GetWindowWidth(hWnd), GetWindowHeight(hWnd), true);
       end;
     GetWindowRect(hwnd, rcWindow);

     // Если окно заезжает за правый край рабочей области
     if rcWindow.Right > rcWorkArea.Right then
       begin
         dx := rcWindow.Right - rcWorkArea.Right;
         if dx > (rcWindow.Left - rcWorkArea.Left) then
           dx := rcWindow.Left - rcWorkArea.Left;
         MoveWindow(hwnd, rcWindow.Left-dx, rcWindow.Top, GetWindowWidth(hWnd), GetWindowHeight(hWnd), true);
       end;
      end;
   end;
 Result := true;
end;

//------------------------------------------------------------------------------

procedure SetWorkAreaWithMoveWindows;
var
 rcNewWorkArea: TRect;
 rcTaskBar: TRect;

begin
 rcNewWorkArea := Rect(0,
                       0,
                       GetSystemMetrics(SM_CXSCREEN),
                       GetSystemMetrics(SM_CYSCREEN));
 GetWindowRect(hTaskBarWnd, rcTaskBar);
 case GetEdge of
   tbeLeft: rcNewWorkArea.Left := rcTaskBar.Right;
   tbeTop:  rcNewWorkArea.Top := rcTaskBar.Bottom;
   tbeRight: rcNewWorkArea.Right := rcTaskBar.Left;
   tbeBottom: rcNewWorkArea.Bottom := rcTaskBar.Top;
 end;
 SystemParametersInfo(SPI_SETWORKAREA, 0, @rcNewWorkArea, SPIF_SENDCHANGE);

 EnumWindows(@EnumWindowsProc, LongInt(@rcNewWorkArea));
end;


 
Digitman ©   (2005-08-03 14:04) [41]


> webpauk   (03.08.05 14:01) [38]
>
> > Digitman ©   (03.08.05 13:58) [36]
>
> еще раз повторяю, я акцентировал вопрос на слове "окна"


врешь.

тема вопроса - "ICQ".
ICQ - это сеть.

А Мирабилис-клиент сети ICQ  для Win имеет к ICQ-сети такое же отношение как яичница к божьему дару.


 
ANB ©   (2005-08-03 14:11) [42]

Удалено модератором
Примечание: Предупреждение


 
webpauk   (2005-08-03 14:15) [43]


> Digitman ©   (03.08.05 14:02) [39]

извините, что неправильно сформулировал вопрос.

> ты бестолков на редкость)


 
webpauk   (2005-08-03 14:16) [44]


> Digitman ©   (03.08.05 14:04) [41]

старался как мог. И объяснял! А вы мне всё сеть да сеть!


 
ANB ©   (2005-08-03 14:17) [45]

Удалено модератором


 
Digitman ©   (2005-08-03 14:21) [46]


> webpauk   (03.08.05 14:15) [43]


итак, попрыгав с бубном, можно сделать предположение, что речь твоя таки идет об интересных тебе особенностях реализации граф.интерфейса ICQ-клиента от Мирабилис под Win ? т.е. Win-приложения разработки компании Мирабилис, являющего собой клиента ICQ-сети и реализующего граф.интерфейс пользователя как полноценного клиента этой сети ?


 
webpauk   (2005-08-03 14:35) [47]


> Digitman ©   (03.08.05 14:21) [46]
>
> > webpauk   (03.08.05 14:15) [43]
>
>
> итак, попрыгав с бубном, можно сделать предположение, что
> речь твоя таки идет об интересных тебе особенностях реализации
> граф.интерфейса ICQ-клиента от Мирабилис под Win ? т.е.
> Win-приложения разработки компании Мирабилис, являющего
> собой клиента ICQ-сети и реализующего граф.интерфейс пользователя
> как полноценного клиента этой сети ?


неа!!!
меня интересует только как плесень заводится по углам!


 
Digitman ©   (2005-08-03 14:36) [48]


> webpauk   (03.08.05 14:35) [47]


это заметно.


 
ANB ©   (2005-08-03 14:42) [49]

Удалено модератором


 
webpauk   (2005-08-03 15:11) [50]


> Digitman ©   (03.08.05 14:36) [48]

признайся ты работал в КГБ? сстолько придирок к моему невинному сабжу и вопросам!!!


 
Slym ©   (2005-08-03 15:23) [51]

SystemParametersInfo ()
SPI_GETWORKAREA/SPI_SETWORKAREA


 
Slym ©   (2005-08-03 15:25) [52]

Удалено модератором


 
Digitman ©   (2005-08-03 15:26) [53]


> webpauk   (03.08.05 15:11) [50]


да, работал.
и что ?


 
webpauk   (2005-08-03 15:29) [54]


> Digitman ©   (03.08.05 15:26) [53]

ничего!
для души хотелось!


 
Slym ©   (2005-08-03 15:29) [55]

Плохой программист - должен разобраться в грамотном техзадании.
Хороший программист - должен разобраться в любом тех задании.
Злой программист - разбираться вообще не будет и пошлет всех нах... (типа у меня и так работы...) и сядет смотрель порнуху успокаивая последний нерв


 
Digitman ©   (2005-08-03 15:33) [56]


> webpauk   (03.08.05 15:29) [54]


ну так получи сатисфакцию)

а касаемо сабжа -


> как ICQ сдвигает все окна влево


еще раз :

никакое "ICQ" никакие "окна" никуда не "сдвигает" - ни вправо, ни влево , ни раком, ни боком.



Страницы: 1 2 вся ветка

Форум: "Основная";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.56 MB
Время: 0.036 c
1-1123077939
Vitali
2005-08-03 18:05
2005.08.21
Временное зависание Delphi


1-1122469493
Vasian
2005-07-27 17:04
2005.08.21
как правильно создать виртуальную канву (Tcanvas)?


14-1122742383
TStas
2005-07-30 20:53
2005.08.21
Сколько же лет Вирт паскаль писал?


4-1119704859
vlk2005
2005-06-25 17:07
2005.08.21
Информация об установленное оборудование на компьютерах в ЛВС ?


4-1119906568
GrayFace
2005-06-28 01:09
2005.08.21
Как получить цвета выделения для меню в стиле OfficeXP?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский