Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

LinuxMove

 
Post new topic   Reply to topic    Total Commander Forum Index -> Программное обеспечение printer-friendly view
View previous topic :: View next topic  
Author Message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Sun Nov 27, 2005 02:07    Post subject: LinuxMove Reply with quote

Маленькая программка, которая позволит вам перемещать любое окно за любой его участок (так, как это делано под XWindows в Linux).
Собсно, никаких пожеланий и вопросов оосбо не жду Smile Просто давно хотел такое написать, ну вот и написал.

Хочется, чтобы прога при запуске скрывалась в трей, но что-то не допру как такую элементарную вещь сделать.
_________________
База знаний о Total Commander
Блог
Back to top
View user's profile Send private message
Ciber SLasH



Joined: 20 Aug 2005
Posts: 209
Location: С.-Петербург

Post (Separately) Posted: Sun Nov 27, 2005 17:30    Post subject: Reply with quote

Quote:
Хочется, чтобы прога при запуске скрывалась в трей

SetWindowPos(hMainWnd, HWND_BOTTOM, 0,0, 0,0, SWP_HIDEWINDOW);
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Sun Nov 27, 2005 19:28    Post subject: Reply with quote

посмотрим, но вроде пробовал - не работает.
-
Добавлено:
Точнее - работает, но не так, как хотелось бы. Если вставлять этот код в OnCreate форма не исчезает, а только меняет размер и становится неактивной, есил вставить куда-то ещё, например в OnActivate - скрывается, то в таскбаре остаётся кнопка приложения (пока не свернуть его).
Буду копать дальше, думаю решение должно быть тривиальным, это я пока его не вижу.
Back to top
View user's profile Send private message
Ciber SLasH



Joined: 20 Aug 2005
Posts: 209
Location: С.-Петербург

Post (Separately) Posted: Sun Nov 27, 2005 20:28    Post subject: Reply with quote

Вот решение:
1) добавляешь в форму в раздел private:
Code:
type
  TForm1 = class(TForm)
  ...
  private
    { Private declarations }
    // Обработчик сообщения минимизации
    procedure MinimizeInTray(var Msg: TMessage); message WM_SYSCOMMAND;
  end;


2) добавляешь функцию:
Code:
procedure TForm1.MinimizeInTray(var Msg: TMessage);
begin
  inherited;
  if Msg.WParam = SC_MINIMIZE then  // если нажат кнопарь "Свернуть"
  begin
    TrayIcon(1, Application.Icon.Handle);    // твоя функция добавления иконки в трэй
    ShowWindow(Application.Handle, SW_HIDE)  // прячем форму
  end
end;


3) в onCreate формы вписываем:
Code:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.Minimize
end;


4) изменяем исходник проекта так (показываю свой пример):
Code:
program MinTray;

uses
  Forms,
  Windows,
  Unit1 in 'Unit1.pas' {Form1},
  About in 'About\About.pas' {AboutBox};

{$R *.res}

const
  WM_SYSCOMMAND = $0112;
begin
  Application.Initialize;
  Application.Title := 'Minimize in Tray';
  Application.CreateForm(TForm1, Form1);

  Unit1.Form1.Perform(WM_SYSCOMMAND, SC_MINIMIZE, 0); // программное нажатие на кнопку "Свернуть"

  Application.Run;
end.
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Sun Nov 27, 2005 21:24    Post subject: Reply with quote

Мдя... всё не так тривиально. Спасибо, попробую.

Добавлено:
Нет, не работает. Всячески извращался - нет и всё. Сообщения приходят, но НЕТ. Скорее всего - где-то внутри компонента иконки идёт перехват сообщения.
В общем стал пробовать по другому, вроде получилось, правда не совсем так, как хотелось, ну да ладно. Позже выложу что вышло.
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Sun Nov 27, 2005 23:04    Post subject: Reply with quote

Переделал всё нафиг, теперь работает.
Плюс возможность ставить прогу в автозагрузку и ещё поправлено несколько мелких недочётов.
Back to top
View user's profile Send private message
Ciber SLasH



Joined: 20 Aug 2005
Posts: 209
Location: С.-Петербург

Post (Separately) Posted: Sun Nov 27, 2005 23:09    Post subject: Reply with quote

Quote:
Нет, не работает. Всячески извращался - нет и всё. Сообщения приходят, но НЕТ. Скорее всего - где-то внутри компонента иконки идёт перехват сообщения.

А зачем компонент иконки? ведь можно без всяких компонентов обойтись.
В моём примере просто иконка вручную помещается в трэй.
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Mon Nov 28, 2005 02:43    Post subject: Reply with quote

да там не компонент даже, а так - самодельная наляпывалка с некоторыми расширенными возможностями. Забей, короче, всё равно прогу я уже эту трогать не буду, что хотел - реализовал, работает и не глючит вроде.
Кстати, как у тебя иконка просто так откуда-то берётся? Насколько я знаю - в дельфе нет такого компонента, либо ставь сторонние, либо пиши сам, как я и сделал.
Back to top
View user's profile Send private message
Ciber SLasH



Joined: 20 Aug 2005
Posts: 209
Location: С.-Петербург

Post (Separately) Posted: Mon Nov 28, 2005 03:05    Post subject: Reply with quote

Application.Icon.Handle — это хэндл текущей иконки программы (если она есть).

Кстати, а как тебе удалось запустить приложение в свёрнутом в трэй виде?
У меня по другому не получилось, кроме как я показал.
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Mon Nov 28, 2005 23:58    Post subject: Reply with quote

Методом научного тыка Smile. Абсолютно сурьёзно.
Щас некогда код доставать, может потом.
Back to top
View user's profile Send private message
WarGoth



Joined: 03 Sep 2006
Posts: 1

Post (Separately) Posted: Sun Sep 03, 2006 22:38    Post subject: Reply with quote

А меня очень прикольнула программулина!! Я привык в линухе двигать так окна и винда уже сильно вымогает вообще... Эта програмка помогает выносить винду еще как-то... Предложение: немного доработать прогу: в КДЕ если тащить мышку с alt+правой_клавишей, то изменяются размеры окна. Тоже удобная штука. И еще нашел глюк: иногда прога взглюкивает и без alt'a окна передвигаются... Так что не забрасывай это дело! Поддерживаю!
_________________
Linux foreva!
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Mon Sep 04, 2006 19:18    Post subject: Reply with quote

Исходники пару месяцев назад отданы на доработку челу с уином 178318478 (постучал, поздоровался, попросил, я поделился), с тех пор ни слуху ни духу Smile
Quote:
Предложение: немного доработать прогу: в КДЕ если тащить мышку с alt+правой_клавишей, то изменяются размеры окна.

Я в одной из следующих версий это делал, но недоделал и забил.
Желающие поковыряться с исходниками последней написанной мной версии, могут взять их тут: http://super.wincmd.ru/_tmp/UTIL_LinuxMove_2.0b_ful_src.rar (228 кб, Дельфи). Там уже присутствуют функции изменения размера окон и ещё кое какие, но всё очень глючно.
_________________
База знаний о Total Commander
Блог
Back to top
View user's profile Send private message
Noob



Joined: 04 Dec 2014
Posts: 1

Post (Separately) Posted: Thu Dec 04, 2014 16:45    Post subject: Reply with quote

D1P
Отличная прога, только одну штучку хотелось бы допилить. Вы уже забросили кодить эту софтину?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Программное обеспечение All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group