Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.15;
Скачать: CL | DM;

Вниз

Восстановление окна   Найти похожие ветки 

 
DSR   (2003-04-29 19:07) [0]

Господа, вот какая проблема: пытаюсь свернуть программу в трей. Делал это разными способами (т.е.при помощи разных компонентов). Но во всех случаях одна ситуация: при восстановлении окна(приложения?!!) программа глючит: не переключаются закладки, ошибки при работе с БД и т.д.Восстанавливаю так:
...
ShowWindow(Handle,SW_SHOWNORMAL); // Восстанавливаем программу
ShowWindow(Application.Handle,SW_SHOWNORMAL); // Восстанавливаем окно
...
Использую при этом компонент CoolTrayIc.
Как вы считаете, почему глюки в дальнейшей работе программы (после восстановления)?


 
Yanis ©   (2003-04-29 19:16) [1]

А почему бы не

Form1.Hide;

и

Form1.Show;

???????????


 
circul ©   (2003-04-29 19:46) [2]

Зачем же для этого использовать левые компоненты?


 
PGM   (2003-04-30 00:38) [3]

А может у тебя в FromActivate/FormShow какой-то код который повторно открывает базы или еще что? Вот и переглючивает.


 
DSR   (2003-05-04 09:06) [4]

FormActivate кода нет, да в любом случае при обновлении баз я делаю так: SQL.Clear, да и PageControl глючит. Это смешно просто.А компоненты использую, потому что не надо иконку создавать и т.д. Думал, так проще будет:)) Такая же ситуация, если использовать TrayIcon, млин. Что это может быть?


 
Юрий Зотов ©   (2003-05-04 11:50) [5]

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

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Forms, Graphics, ShellAPI, Menus, Controls, StdCtrls;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject); // Обработчик OnCreate
private
FIconData: TNotifyIconData;
protected
procedure WndProc(var Message: TMessage); override;
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

const
UM_TRAY = WM_USER + 101;

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
with FIconData do
begin
cbSize := SizeOf(FIconData);
Wnd := Handle;
uID := 100;
uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
uCallbackMessage := UM_TRAY;
hIcon := Application.Icon.Handle;
StrPCopy(szTip, Application.Title)
end;
Application.ShowMainForm := False;
Shell_NotifyIcon(NIM_ADD, @FIconData)
end;

procedure TForm1.WndProc(var Message: TMessage);
begin
case Message.Msg of
WM_SYSCOMMAND:
if (TWMSysCommand(Message).CmdType and $FFF0 = SC_MINIMIZE) then
begin
Shell_NotifyIcon(NIM_ADD, @FIconData);
Application.MainForm.Visible := False
end
else inherited;
UM_TRAY:
if Message.LParam = WM_LBUTTONDBLCLK then
begin
Application.MainForm.Visible := True;
ShowWindow(Application.Handle, SW_HIDE);
Shell_NotifyIcon(NIM_DELETE, @FIconData)
end;
else inherited
end
end;

end.



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

Текущий архив: 2003.05.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
1-46833
Yanis
2003-04-30 15:44
2003.05.15
Помогите с OpenDialog!!!!!!!!!!!!!!!!


14-46916
voronkov
2003-04-24 16:02
2003.05.15
IDE, проблема с палитрой компонентов.


3-46617
Belkova
2003-04-22 23:23
2003.05.15
отчеты


4-47059
Diamond Cat
2003-03-14 14:08
2003.05.15
SendInput


3-46658
_Narayan_
2003-04-24 17:04
2003.05.15
Хранимая процедура....