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

Вниз

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

 
user_   (2007-12-26 11:33) [0]

Как сделать в программе MDI свой собственный Tray чтоб когда окошки сворачивал они поевлялись в Tray-и и я могг выбирать нужное мне окно...


 
clickmaker ©   (2007-12-26 11:34) [1]

TTabControl, закладки можно в виде кнопок сделать


 
Kerk ©   (2007-12-26 11:34) [2]

Берешь и делаешь. В чем конкретно проблема?


 
user_   (2007-12-26 11:36) [3]


> Kerk ©   (26.12.07 11:34) [2]

Да хоть бы на исходник какой глянуть (пример), а то вообще не соображу как сделать...


 
Rouse_ ©   (2007-12-26 11:49) [4]

Хм... а идейка-то интересная :)
Вообще самое оптимальное через TToolBar расположенный на главной форме внизу...


 
user_   (2007-12-26 11:52) [5]


> Rouse_ ©   (26.12.07 11:49) [4]

Пытаюсь реализовать через ""скилет" Application, но забрел так долеко что сам не пойму че наделал....


 
user_   (2007-12-26 11:56) [6]

А подталкноло меня к этой идеотской мысли во это:
http://www.reintell.ru/index.php?id=23
Если хорошо пресмотрется то там можно увидеть Tray. :o)


 
guav ©   (2007-12-26 11:57) [7]

Где-то в инете находил Windows 2000 Source Code, похоже что то действительно кусок кода Windows, там есть код, отвечающий за трей :)


 
clickmaker ©   (2007-12-26 11:58) [8]


> [6] user_   (26.12.07 11:56)

судя по дыркам в левой части, там тулбар.
Но тоже самое можно сделать из TabControl со стилем tsFlatButtons


 
user_   (2007-12-26 11:59) [9]


> clickmaker ©   (26.12.07 11:58) [8]

Блин, но это надо TabSheet использовать, а я хотел окна Child-ы...


 
clickmaker ©   (2007-12-26 12:00) [10]


> [9] user_   (26.12.07 11:59)

нахрена?
не надо TabSheet. Только закладки в виде кнопок. На событие смены закладки вешаешь показ окна


 
guav ©   (2007-12-26 12:01) [11]

ToolBar имхо даже больше чем трей, тулбаровские кнопки почти как TButton.
Не визуально нажимаемые и не получающие фокус кнопки и самому нарисовать на пинтбоксе, панели или в статусбаре не долго.


 
Ketmar_   (2007-12-26 12:12) [12]

а я вообще в режиме brain-off делал панель, на которую тбатоны кидал.


 
Eraser ©   (2007-12-26 12:17) [13]


> user_   (26.12.07 11:33) 

Gero (c) вроде что-то такое делал для DMClient, при желании можно найти.


 
clickmaker ©   (2007-12-26 12:19) [14]


> Gero (c) вроде что-то такое делал для DMClient

там TabControl


 
Админ   (2007-12-26 12:24) [15]

Так это же не Tray называется, а TaskBar, вроде.

http://www.torry.net/pages.php?id=19


 
Rouse_ ©   (2007-12-26 13:00) [16]

Я только не понимаю про таб контрол, трей даже оригинальный на тулбаре основан, точнее на ToolbarWindow32 :)


 
user_   (2007-12-26 13:02) [17]


> Rouse_ ©   (26.12.07 13:00) [16]

+5


 
user_   (2007-12-26 13:25) [18]

Вот пример
http://www.torry.net/vcl/bars/taskbars/axtaskbar.zip
из того что дал
Админ   (26.12.07 12:24) [15]

Но чегото компонент я с этого сделать не могу? Почему?


 
user_   (2007-12-26 13:26) [19]


unit TaskBar;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 ToolWin, ComCtrls;

type
 TTask = class(TObject)
    Task: TForm;
    ToolButton: TToolButton;
    ParentBar: TToolBar;

    TaskList: TList;  { Parent }
    TaskOnActivate: TNotifyEvent;

    constructor Create(aTask: TForm; ImageIndex: Integer; BtnParent: TToolBar; aTaskList: TList);
    destructor Destroy; override;

    procedure ClickButton(Sender: TObject);
    procedure ButtonUp;
  end;

 TOnActivateTask = procedure(Sender: TObject; Task: TForm) of object;

 TTaskBar = class(TToolBar)
 private
   FCount: Integer;
   FShowed: Boolean;
   TaskList: TList;

   procedure SetShowed(Value: Boolean);
 protected
 public
   constructor Create(aOwner: TComponent); override;
   destructor Destroy; override;

   procedure Add(Task: TForm; ImageIndex: Integer);
   procedure Remove(Task: TForm);
   procedure RedrawCaptions;
 published
   property Count: Integer read FCount;
   property Showed: Boolean read FShowed write SetShowed;
 end;

procedure Register;

implementation

constructor TTask.Create(aTask: TForm; ImageIndex: Integer; BtnParent: TToolBar; aTaskList: TList);
begin
 Task := aTask;
 TaskOnActivate := Task.OnActivate;
 Task.OnActivate := ClickButton;
 TaskList := aTaskList;
 ButtonUp;
 ToolButton := TToolButton.Create(BtnParent);
 ToolButton.Caption := aTask.Caption;
 ToolButton.ImageIndex := ImageIndex;
 ToolButton.OnClick := ClickButton;
 BtnParent.InsertControl(ToolButton);
 ToolButton.Grouped := True;
 ToolButton.AllowAllUp := True;
 ToolButton.AutoSize := True;
 ToolButton.Down := True;
 ParentBar := BtnParent;
end;

destructor TTask.Destroy;
begin
 ParentBar.RemoveControl(ToolButton);
 ToolButton.Free;
 inherited Destroy;
end;

procedure TTask.ClickButton(Sender: TObject);
var
 i: Integer;
 CurrentTask: TTask;
begin
 ButtonUp;
 if (Sender.ClassName = "TToolButton") then
  (Sender as TToolButton).Down := True
 else
  begin
   i := TaskList.Count;
   if i <> 0 then
    for i := 0 to i - 1 do
     begin
      CurrentTask := TaskList[i];
      if CurrentTask.Task = Sender then
       begin
        CurrentTask.ToolButton.Down := True;
        Break;
       end;
     end;
  end;
 SendMessage(Task.Handle, wm_NCActivate, wa_Active, 0);

{ Thanks Markus Stephany for next line:
MS> when i changed to a different mdi child with e.g.
MS> a memo control on it, the caret was not visible every time }
 SendMessage(Task.Handle, WM_ChildActivate, 0, 0);
 
 Task.SetFocus;
 Task.BringToFront;

 // Restore from icon
 if Task.WindowState = wsMinimized then
  Task.WindowState := wsNormal;

 if Assigned(TaskOnActivate) then
  TaskOnActivate(Sender);
end;

procedure TTask.ButtonUp;
var
 i: Integer;
 CurrentTask: TTask;
begin
 i := TaskList.Count;
 if i <> 0 then
  for i := 0 to i - 1 do
   begin
    CurrentTask := TaskList[i];
    if CurrentTask.ToolButton.Down then
     CurrentTask.ToolButton.Down := False;
   end;
end;

{ TTaskBar }

constructor TTaskBar.Create(aOwner: TComponent);
begin
 inherited Create(aOwner);
 ShowCaptions := True;
 List := True;
 Visible := False;
 FShowed := True;
 TaskList := TList.Create;
end;

destructor TTaskBar.Destroy;
begin
 TaskList.Free;
 inherited Destroy;
end;

procedure TTaskBar.Add(Task: TForm; ImageIndex: Integer);
var
 i: Integer;
 CurrentTask: TTask;
begin
 if Task <> nil then
  begin
   i := TaskList.Count;
   if i <> 0 then
    for i := 0 to i - 1 do
     begin
      CurrentTask := TaskList[i];
      if CurrentTask.Task = Task then Exit;
     end;
   CurrentTask := TTask.Create(Task, ImageIndex, Self, TaskList);
   TaskList.Add(CurrentTask);
   FCount := TaskList.Count;
   if (FCount > 0) and not Visible and FShowed then Visible := True;
  end;
end;

procedure TTaskBar.Remove(Task: TForm);
var
 i: Integer;
 CurrentTask: TTask;
begin
 if Task <> nil then
  begin
   i := TaskList.Count;
   if i <> 0 then
    for i := 0 to i - 1 do
     begin
      CurrentTask := TaskList[i];
      if CurrentTask.Task = Task then
       begin
        TaskList.Remove(CurrentTask);
        CurrentTask.Free;
        Break;
       end;
     end;
   FCount := TaskList.Count;
   if (FCount = 0) and Visible then Visible := False;
  end;
end;

procedure TTaskBar.RedrawCaptions;
var
 i: Integer;
 CurrentTask: TTask;
begin
 if FCount <> 0 then
  for i := 0 to FCount - 1 do
   begin
    CurrentTask := TaskList[i];
    with CurrentTask do
     if Task.Caption <> ToolButton.Caption then
      ToolButton.Caption := Task.Caption;
   end;
end;

procedure TTaskBar.SetShowed(Value: Boolean);
begin
 if FShowed <> Value then
  begin
   if not FShowed and (FCount > 0) then
    Visible := True
   else Visible := False;
   
   FShowed := Value;
  end;
end;

procedure Register;
begin
 RegisterComponents("Xacker", [TTaskBar]);
end;

end.


 
user_   (2007-12-26 13:27) [20]

Да еще соглашение...

{*************************************************************}
{            TTaskBar Component for Delphi IV                 }
{ Version:   1.01                                             }
{ Author:    Aleksey Kuznetsov                                }
{ E-Mail:    info@utilmind.com                                }
{ Homepage:  http://www.utilmind.com                          }
{ Created:   January 25, 1999                                 }
{ Modified:  February 12, 1999                                }
{ Legal:     Copyright (c) 1999, UtilMind Solutions           }
{-------------------------------------------------------------}
{ Thanks:    Markus Stephany (mirbir.st@t-online.de)          }
{                http://home.t-online.de/home/mirbir.st       }
{*************************************************************}
{ TaskBar Panel - inherited from TToolBar. Added some useful  }
{ functions. See example (MDIApp).                            }
{*************************************************************}
{                    IMPORTANT NOTE:                          }
{  This code may be used and modified by anyone so long as    }
{ this header and copyright information remains intact. By    }
{ using this code you agree to indemnify UtilMind Solutions   }
{ from any liability that might arise from its use. You must  }
{ obtain written consent before selling or redistributing     }
{ this code.                                                  }
{*************************************************************}
{  Properties:                                                }
{          Count: Indicates the number of entries (tasks) in  }
{                 the TaskList.                               }
{         Showed: VISIBLE (!!!) TaskBar can be not always     }
{                 visible.                                    }
{     Methods:                                                }
{            Add: Adds Task to TaskList.                      }
{         Remove: Removes Task from TaskList.                 }
{ RedrawCaptions: Redraws all captions (if they changed).     }
{*************************************************************}
{ FOR MUCH MORE INFORMATION - SEE DEMO PROGRAM.               }
{*************************************************************}
{ Thanks for using TTaskBar component.                        }
{ If at occurrence of any questions concerning these          }
{ components, drop us mail: info@utilmind.com                 }
{*************************************************************}


 
user_   (2007-12-26 13:27) [21]

Среда D7, ОС XP


 
user_   (2007-12-26 13:27) [22]

Среда D7, ОС XP


 
DVM ©   (2007-12-26 13:31) [23]


> Я только не понимаю про таб контрол, трей даже оригинальный
> на тулбаре основан, точнее на ToolbarWindow32 :)

это в Win2000 и выше он на тулбаре, а до этого иконки просто рисовались на поверхности окна области уведомлений.

Сделать трей на табконтроле ничуть не сложнее, чем на тулбаре. Я делал даже. Во http://dvmuratov.narod.ru/myshell.zip


 
user_   (2007-12-26 13:37) [24]

Прикольно, а где же исходники....? :-)))


 
clickmaker ©   (2007-12-26 13:41) [25]


> [24] user_   (26.12.07 13:37)

не понимаю, чего сложного? Проблема динамически добавлять кнопки на тулбар или закладки на табконтрол? С привязыванием формы к свойству Tag


 
user_   (2007-12-26 13:47) [26]


> DVM ©   (26.12.07 13:31) [23]

Ну так между нами какой пароль, а то я запустил а выйти не могу..... :-)
А в Analyzery SQL запрос выполняется, а я снимаю с деспечера он мне показавает выключить компьютер..... :)))


 
{RASkov} ©   (2007-12-26 13:50) [27]

> [23] DVM ©   (26.12.07 13:31)

Пароль какой? :)
Как эту "байду" выключить???? Аааа((
:о)


 
@!!ex ©   (2007-12-26 13:51) [28]

> [27] {RASkov} ©   (26.12.07 13:50)

Reboot...
Даже закрытие не помогает, т.к. explorer как shell не запускается.


 
{RASkov} ©   (2007-12-26 13:52) [29]

> [28] @!!ex ©   (26.12.07 13:51)

Тоже "влип"? :)))


 
DVM ©   (2007-12-26 13:54) [30]


> Как эту "байду" выключить???? Аааа((

3141592653


 
DVM ©   (2007-12-26 13:55) [31]

сорри, забыл про пароль :)


 
user_   (2007-12-26 13:55) [32]


> DVM ©   (26.12.07 13:54) [30]

Спасибо я уже перезагрузился... :-)


 
user_   (2007-12-26 13:57) [33]


> DVM ©

100 пудов веря подсодил размножатся.....
Бу... гагага... :-))))

Хоть бы разрешения вернул назад.... гыгыгы


 
DVM ©   (2007-12-26 14:04) [34]


> Хоть бы разрешения вернул назад.... гыгыгы

это оболочка для клуба одного делалась, потому и разрешение меняется принудительно. Чтобы не менялось, выкинуть из папки Plugins файл ResKeeper.plg. Вирей там нет, можете не волноваться.


 
user_   (2007-12-26 14:06) [35]

Но прокси у меня слетать начал....

А исходнички имеются....


 
DVM ©   (2007-12-26 14:18) [36]


> Но прокси у меня слетать начал....

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


> А исходнички имеются....

да.


 
user_   (2007-12-26 14:35) [37]


> DVM ©   (26.12.07 14:18) [36]

Исикока в руб. будет ?


 
@!!ex ©   (2007-12-26 14:37) [38]

> [37] user_   (26.12.07 14:35)

Скорее всего дохрена...


 
user_   (2007-12-26 14:39) [39]

Хорошо начнем с 10
и скажи на сколько нужно умножить ? :-)


 
DVM ©   (2007-12-26 14:39) [40]


> Исикока в руб. будет ?

Нискока и еще маленько. Зачем они тебе? Там все на "чиста WINAPI", никаким VCL там и не пахнет. Да и с твоей задачей их связывает только отчасти понятие Tray.



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

Форум: "Прочее";
Текущий архив: 2008.02.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.043 c
11-1183576848
=BuckLr=
2007-07-04 23:20
2008.02.03
OnRE_URLClick правой мышью


15-1198975919
Anatoly Podgoretsky
2007-12-30 03:51
2008.02.03
ASPNET и HyperLink


15-1198324676
Kostafey
2007-12-22 14:57
2008.02.03
К вопросу о культурном проектировании реляционных БД


2-1199981937
MNNN
2008-01-10 19:18
2008.02.03
webserver


2-1200052313
ДемонКванта
2008-01-11 14:51
2008.02.03
вопрос по TStringtable





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский