Текущий архив: 2008.02.03;
Скачать: CL | DM;
Вниз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;
Скачать: CL | DM;
Память: 0.56 MB
Время: 0.045 c