View Issue Details

IDProjectCategoryView StatusLast Update
0017294LazarusLCLpublic2017-04-25 09:16
ReporterAntônio Galvão Assigned ToOndrej Pokorny  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version0.9.29 (SVN) 
Summary0017294: ShowInTaskBar = stNever does nothing
DescriptionSee attached file.
TagsNo tags attached.
Fixed in Revision54721
LazTarget-
WidgetsetWin32/Win64
Attached Files

Relationships

related to 0017311 closedPaul Ishenin Patches There is no MainFormOnTaskBar property in Lazarus 
related to 0013397 resolvedOndrej Pokorny Lazarus Lack of preview of minimized window on taskbar icon mouseover 
related to 0020864 closedyang jixian Lazarus ShowInTaskbar = stAlways Bug of MainForm on Windows and TWin32WidgetSet(WidgetSet).AppHandle Bug 
related to 0022768 resolvedOndrej Pokorny Lazarus There is no way to hide application from taskbar 
related to 0031248 closedOndrej Pokorny Lazarus TForm.ShowInTaskBar = stAlways works only when form show on first time, and not work on next times. 

Activities

2010-08-28 20:42

 

Example.zip (128,925 bytes)

Simon Hart

2011-01-10 20:30

reporter   ~0045056

I think the issue is in TWin32WidgetSet.AppInit() in win32object.inc.

That contains several calls to CreateWindow and CreateWindow doesn't allow you to do a number of things that are defined in extended windows styles. To solve this issue you have to set WS_EX_TOOLWINDOW and clear WS_EX_APPWINDOW (Mutually exclusive values!) and then call CreateWindowEx, which will create the window with no task bar item. AFAIK this must be done when the window is created and cannot be changed later.

I may be wrong with some of that, but it might be a good place to start.

2011-01-11 06:42

 

taskbar.patch (1,544 bytes)   
Index: include/customform.inc
===================================================================
--- include/customform.inc	(revision 28946)
+++ include/customform.inc	(working copy)
@@ -827,7 +827,7 @@
 var
   Value: TShowInTaskBar;
 begin
-  if (Application.MainForm = Self) or (not HandleAllocated) or
+  if {(Application.MainForm = Self) or} (not HandleAllocated) or
      Assigned(Parent) or (FormStyle = fsMDIChild) or not Showing then Exit;
   Value := GetEffectiveShowInTaskBar;
   if FRealizedShowInTaskBar <> Value then
Index: interfaces/win32/win32wsforms.pp
===================================================================
--- interfaces/win32/win32wsforms.pp	(revision 28946)
+++ interfaces/win32/win32wsforms.pp	(working copy)
@@ -610,8 +610,21 @@
 begin
   if not WSCheckHandleAllocated(AForm, 'SetShowInTaskbar') then
     Exit;
+
   if Assigned(Application) and (AForm = Application.MainForm) then
+  begin
+    OldStyle := GetWindowLong(TWin32WidgetSet(WidgetSet).AppHandle, GWL_EXSTYLE);
+    NewStyle := OldStyle;
+    if AValue = stAlways then
+      NewStyle := NewStyle and not WS_EX_TOOLWINDOW
+    else
+      NewStyle := NewStyle or WS_EX_TOOLWINDOW;
+    if OldStyle = NewStyle then exit;
+    ShowWindow(TWin32WidgetSet(WidgetSet).AppHandle, SW_HIDE);
+    SetWindowLong(TWin32WidgetSet(WidgetSet).AppHandle, GWL_EXSTYLE, NewStyle);
+    ShowWindow(TWin32WidgetSet(WidgetSet).AppHandle, SW_SHOWNA);
     Exit;
+  end;
 
   OldStyle := GetWindowLong(AForm.Handle, GWL_EXSTYLE);
   NewStyle := OldStyle;
taskbar.patch (1,544 bytes)   

malcome

2011-01-11 06:44

reporter   ~0045079

I created the patch for this issue.

2011-01-11 11:32

 

taskbar2.patch (1,568 bytes)   
Index: lcl/include/customform.inc
===================================================================
--- lcl/include/customform.inc	(revision 28946)
+++ lcl/include/customform.inc	(working copy)
@@ -827,7 +827,7 @@
 var
   Value: TShowInTaskBar;
 begin
-  if (Application.MainForm = Self) or (not HandleAllocated) or
+  if {(Application.MainForm = Self) or} (not HandleAllocated) or
      Assigned(Parent) or (FormStyle = fsMDIChild) or not Showing then Exit;
   Value := GetEffectiveShowInTaskBar;
   if FRealizedShowInTaskBar <> Value then
Index: lcl/interfaces/win32/win32wsforms.pp
===================================================================
--- lcl/interfaces/win32/win32wsforms.pp	(revision 28946)
+++ lcl/interfaces/win32/win32wsforms.pp	(working copy)
@@ -610,8 +610,21 @@
 begin
   if not WSCheckHandleAllocated(AForm, 'SetShowInTaskbar') then
     Exit;
+
   if Assigned(Application) and (AForm = Application.MainForm) then
+  begin
+    OldStyle := GetWindowLong(TWin32WidgetSet(WidgetSet).AppHandle, GWL_EXSTYLE);
+    NewStyle := OldStyle;
+    if AValue <> stNever then
+      NewStyle := NewStyle and not WS_EX_TOOLWINDOW
+    else
+      NewStyle := NewStyle or WS_EX_TOOLWINDOW;
+    if OldStyle = NewStyle then exit;
+    ShowWindow(TWin32WidgetSet(WidgetSet).AppHandle, SW_HIDE);
+    SetWindowLong(TWin32WidgetSet(WidgetSet).AppHandle, GWL_EXSTYLE, NewStyle);
+    ShowWindow(TWin32WidgetSet(WidgetSet).AppHandle, SW_SHOWNA);
     Exit;
+  end;
 
   OldStyle := GetWindowLong(AForm.Handle, GWL_EXSTYLE);
   NewStyle := OldStyle;
taskbar2.patch (1,568 bytes)   

malcome

2011-01-11 11:33

reporter   ~0045092

taskbar.patch has a bug.
Use new taskbar2.patch.

2011-01-13 04:33

 

taskbar_mb.patch (5,563 bytes)   
Index: lcl/include/customform.inc
===================================================================
--- lcl/include/customform.inc	(revision 28985)
+++ lcl/include/customform.inc	(working copy)
@@ -827,7 +827,7 @@
 var
   Value: TShowInTaskBar;
 begin
-  if (Application.MainForm = Self) or (not HandleAllocated) or
+  if {(Application.MainForm = Self) or} (not HandleAllocated) or
      Assigned(Parent) or (FormStyle = fsMDIChild) or not Showing then Exit;
   Value := GetEffectiveShowInTaskBar;
   if FRealizedShowInTaskBar <> Value then
Index: lcl/interfaces/win32/win32callback.inc
===================================================================
--- lcl/interfaces/win32/win32callback.inc	(revision 28985)
+++ lcl/interfaces/win32/win32callback.inc	(working copy)
@@ -801,21 +801,13 @@
 
           if (Application <> nil) and (lWinControl <> nil) and
              (Application.MainForm <> nil) and
-             (Application.MainForm = lWinControl) then
-            Window := TWin32WidgetSet(WidgetSet).AppHandle;//redirection
+             (Application.MainForm = lWinControl) then begin
 
-          if (Window = TWin32WidgetSet(WidgetSet).AppHandle) and
-             (Application <> nil) then
-          begin
-            if (Application.MainForm <> nil) then
-            begin
-              Windows.SetWindowPos(Window, HWND_TOP,
-                Application.MainForm.Left, Application.MainForm.Top,
-                Application.MainForm.Width, 0, SWP_NOACTIVATE);
-              if Application.MainForm.HandleAllocated then
-                Windows.ShowWindow(Application.MainForm.Handle, SW_HIDE);
-            end;
+            PLMsg^.Result := Windows.DefWindowProc(Window, WM_SYSCOMMAND, WParam, LParam);
 
+            Window := TWin32WidgetSet(WidgetSet).AppHandle;//redirection
+
+            ShowWindow(Window, SW_HIDE); // Because AppWindow showing somewhere.
             PLMsg^.Result := Windows.DefWindowProc(Window, WM_SYSCOMMAND, WParam, LParam);
             WinProcess := False;
             Application.IntfAppMinimize;
@@ -830,11 +822,6 @@
           begin
             PLMsg^.Result := Windows.DefWindowProc(Window, WM_SYSCOMMAND, WParam, LParam);
             WinProcess := False;
-            if (Application.MainForm <> nil) and Application.MainForm.HandleAllocated then
-            begin
-              if Application.MainForm.HandleObjectShouldBeVisible then
-                Windows.ShowWindow(Application.MainForm.Handle, SW_SHOWNA);
-            end;
             Application.IntfAppRestore;
           end;
         end;
Index: lcl/interfaces/win32/win32object.inc
===================================================================
--- lcl/interfaces/win32/win32object.inc	(revision 28985)
+++ lcl/interfaces/win32/win32object.inc	(working copy)
@@ -169,6 +169,7 @@
       0, {Windows.GetSystemMetrics(SM_CYSCREEN) div 2,}
       0, 0, HWND(nil), HMENU(nil), HInstance, nil);
     {$endif}
+    SetWindowLong(FAppHandle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
     AllocWindowInfo(FAppHandle);
 
     // set nice main icon
Index: lcl/interfaces/win32/win32wscontrols.pp
===================================================================
--- lcl/interfaces/win32/win32wscontrols.pp	(revision 28985)
+++ lcl/interfaces/win32/win32wscontrols.pp	(working copy)
@@ -161,7 +161,10 @@
     FlagsEx := CreateParams.ExStyle;
     Parent := CreateParams.WndParent;
     if (Parent = 0) then
-      Parent := Win32WidgetSet.AppHandle;
+      if Assigned(Application) and (AWinControl = Application.MainForm) then
+        Parent := GetDesktopWindow
+      else
+        Parent := Win32WidgetSet.AppHandle;
     StrCaption := CreateParams.Caption;
 
     Left := CreateParams.X;
Index: lcl/interfaces/win32/win32wsforms.pp
===================================================================
--- lcl/interfaces/win32/win32wsforms.pp	(revision 28985)
+++ lcl/interfaces/win32/win32wsforms.pp	(working copy)
@@ -281,6 +281,8 @@
     FlagsEx := FlagsEx or WS_EX_TOPMOST;
   Flags := Flags or CalcBorderIconsFlags(AForm);
   FlagsEx := FlagsEx or CalcBorderIconsFlagsEx(AForm);
+  if Assigned(Application) and (AForm = Application.MainForm) then
+    FlagsEx := FlagsEx or WS_EX_APPWINDOW;
 end;
 
 procedure AdjustFormBounds(const AForm: TCustomForm; var SizeRect: TRect);
@@ -607,18 +609,33 @@
 var
   OldStyle, NewStyle: DWord;
   Visible, Active: Boolean;
+  bs: TBorderStyle;
 begin
   if not WSCheckHandleAllocated(AForm, 'SetShowInTaskbar') then
     Exit;
-  if Assigned(Application) and (AForm = Application.MainForm) then
-    Exit;
 
   OldStyle := GetWindowLong(AForm.Handle, GWL_EXSTYLE);
   NewStyle := OldStyle;
-  if AValue = stAlways then
-    NewStyle := NewStyle or WS_EX_APPWINDOW
-  else
-    NewStyle := NewStyle and not WS_EX_APPWINDOW;
+  if Assigned(Application) and (AForm = Application.MainForm) then
+  begin
+    if AValue <> stNever then
+    begin
+      bs := AForm.BorderStyle;
+      AForm.BorderStyle := bsSizeToolWin;
+      AForm.BorderStyle := bs;
+      OldStyle := GetWindowLong(AForm.Handle, GWL_EXSTYLE);
+      NewStyle := OldStyle;
+      NewStyle := NewStyle or WS_EX_APPWINDOW;
+    end
+    else
+      NewStyle := NewStyle and not WS_EX_APPWINDOW or WS_EX_TOOLWINDOW;
+  end else begin
+    if AValue = stAlways then
+      NewStyle := NewStyle or WS_EX_APPWINDOW
+    else
+      NewStyle := NewStyle and not WS_EX_APPWINDOW;
+  end;
+
   if OldStyle = NewStyle then exit;
 
   // to apply this changes we need either to hide window or recreate it. Hide is
taskbar_mb.patch (5,563 bytes)   

malcome

2011-01-13 04:39

reporter   ~0045139

Last edited: 2011-01-14 03:13

I created new taskbar_mb.patch for this issue and some taskbar issues (Vista Aero, 0013397 , 0017311 , 0018481 , etc...).

This patch does not have Delphi's MainFormOnTaskBar z-order issue ( http://qc.embarcadero.com/wc/qcmain.aspx?d=45606 ).

yang jixian

2011-01-19 08:38

developer   ~0045291

The taskbar_mb.patch brings a minimize bug for IDE window.

malcome

2011-01-25 07:54

reporter   ~0045463

Please use taskbar2.patch.

2011-01-28 04:53

 

TaskBar_MB2.patch (6,975 bytes)   
Index: include/customform.inc
===================================================================
--- include/customform.inc	(revision 29226)
+++ include/customform.inc	(working copy)
@@ -827,7 +827,7 @@
 var
   Value: TShowInTaskBar;
 begin
-  if (Application.MainForm = Self) or (not HandleAllocated) or
+  if {(Application.MainForm = Self) or} (not HandleAllocated) or
      Assigned(Parent) or (FormStyle = fsMDIChild) or not Showing then Exit;
   Value := GetEffectiveShowInTaskBar;
   if FRealizedShowInTaskBar <> Value then
Index: interfaces/win32/win32callback.inc
===================================================================
--- interfaces/win32/win32callback.inc	(revision 29226)
+++ interfaces/win32/win32callback.inc	(working copy)
@@ -801,25 +801,23 @@
 
           if (Application <> nil) and (lWinControl <> nil) and
              (Application.MainForm <> nil) and
-             (Application.MainForm = lWinControl) then
-            Window := TWin32WidgetSet(WidgetSet).AppHandle;//redirection
+             (Application.MainForm = lWinControl) then begin
 
-          if (Window = TWin32WidgetSet(WidgetSet).AppHandle) and
-             (Application <> nil) then
-          begin
-            if (Application.MainForm <> nil) then
-            begin
-              Windows.SetWindowPos(Window, HWND_TOP,
-                Application.MainForm.Left, Application.MainForm.Top,
-                Application.MainForm.Width, 0, SWP_NOACTIVATE);
-              if Application.MainForm.HandleAllocated then
-                Windows.ShowWindow(Application.MainForm.Handle, SW_HIDE);
-            end;
+            PLMsg^.Result := Windows.DefWindowProc(Window, WM_SYSCOMMAND, WParam, LParam);
 
+            Window := TWin32WidgetSet(WidgetSet).AppHandle;//redirection
+
+            if Window = Application.MainForm.Handle then
+              ShowWindow(Window, SW_MINIMIZE)
+            else
+              ShowWindow(Window, SW_HIDE); // Because AppWindow showing somewhere.
             PLMsg^.Result := Windows.DefWindowProc(Window, WM_SYSCOMMAND, WParam, LParam);
             WinProcess := False;
             Application.IntfAppMinimize;
-          end;
+     {       SetWindowLong(TWin32WidgetSet(WidgetSet).FAppHandle, GWL_EXSTYLE,
+              GetWindowLong(TWin32WidgetSet(WidgetSet).FAppHandle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
+            ShowWindow(TWin32WidgetSet(WidgetSet).FAppHandle, SW_HIDE);
+     }     end;
         end;
 
       SC_RESTORE:
@@ -830,11 +828,6 @@
           begin
             PLMsg^.Result := Windows.DefWindowProc(Window, WM_SYSCOMMAND, WParam, LParam);
             WinProcess := False;
-            if (Application.MainForm <> nil) and Application.MainForm.HandleAllocated then
-            begin
-              if Application.MainForm.HandleObjectShouldBeVisible then
-                Windows.ShowWindow(Application.MainForm.Handle, SW_SHOWNA);
-            end;
             Application.IntfAppRestore;
           end;
         end;
@@ -1483,7 +1476,7 @@
     begin
       if WParam <> 0 Then
         LMessage.Msg := LM_SETEDITABLE;
-      if Window = TWin32WidgetSet(WidgetSet).FAppHandle then
+      if Window = Application.MainForm.Handle then
         if WParam = 0 then
         begin
           RemoveStayOnTopFlags(Window);
@@ -2083,7 +2076,7 @@
           Flags := SW_HIDE
         else
           Flags := SW_SHOWNOACTIVATE;
-        Windows.ShowWindow(TWin32WidgetSet(WidgetSet).FAppHandle, Flags);
+        Windows.ShowWindow(Application.MainForm.Handle, Flags);
       end;
     end;
     WM_SYSCHAR:
@@ -2309,7 +2302,8 @@
             Window := Application.MainForm.Handle;
           end;
         end;
-        if IsIconic(Window) then
+        //MainForm do not need to GetWindowPlacement now, otherwise the MainForm will be terrible
+        if IsIconic(Window) and (Window <> Application.MainForm.Handle) then
         begin
           GetWindowPlacement(Window, @WindowPlacement);
           with WindowPlacement.rcNormalPosition do
Index: interfaces/win32/win32object.inc
===================================================================
--- interfaces/win32/win32object.inc	(revision 29226)
+++ interfaces/win32/win32object.inc	(working copy)
@@ -169,6 +169,7 @@
       0, {Windows.GetSystemMetrics(SM_CYSCREEN) div 2,}
       0, 0, HWND(nil), HMENU(nil), HInstance, nil);
     {$endif}
+    SetWindowLong(FAppHandle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
     AllocWindowInfo(FAppHandle);
 
     // set nice main icon
Index: interfaces/win32/win32wscontrols.pp
===================================================================
--- interfaces/win32/win32wscontrols.pp	(revision 29226)
+++ interfaces/win32/win32wscontrols.pp	(working copy)
@@ -161,7 +161,10 @@
     FlagsEx := CreateParams.ExStyle;
     Parent := CreateParams.WndParent;
     if (Parent = 0) then
-      Parent := Win32WidgetSet.AppHandle;
+      if Assigned(Application) and (AWinControl = Application.MainForm) then
+        Parent := GetDesktopWindow
+      else
+        Parent := Win32WidgetSet.AppHandle;
     StrCaption := CreateParams.Caption;
 
     Left := CreateParams.X;
Index: interfaces/win32/win32wsforms.pp
===================================================================
--- interfaces/win32/win32wsforms.pp	(revision 29226)
+++ interfaces/win32/win32wsforms.pp	(working copy)
@@ -281,6 +281,8 @@
     FlagsEx := FlagsEx or WS_EX_TOPMOST;
   Flags := Flags or CalcBorderIconsFlags(AForm);
   FlagsEx := FlagsEx or CalcBorderIconsFlagsEx(AForm);
+  if Assigned(Application) and (AForm = Application.MainForm) then
+    FlagsEx := FlagsEx or WS_EX_APPWINDOW;
 end;
 
 procedure AdjustFormBounds(const AForm: TCustomForm; var SizeRect: TRect);
@@ -607,18 +609,33 @@
 var
   OldStyle, NewStyle: DWord;
   Visible, Active: Boolean;
+  bs: TBorderStyle;
 begin
   if not WSCheckHandleAllocated(AForm, 'SetShowInTaskbar') then
     Exit;
-  if Assigned(Application) and (AForm = Application.MainForm) then
-    Exit;
 
   OldStyle := GetWindowLong(AForm.Handle, GWL_EXSTYLE);
   NewStyle := OldStyle;
-  if AValue = stAlways then
-    NewStyle := NewStyle or WS_EX_APPWINDOW
-  else
-    NewStyle := NewStyle and not WS_EX_APPWINDOW;
+  if Assigned(Application) and (AForm = Application.MainForm) then
+  begin
+    if AValue <> stNever then
+    begin
+      bs := AForm.BorderStyle;
+      AForm.BorderStyle := bsSizeToolWin;
+      AForm.BorderStyle := bs;
+      OldStyle := GetWindowLong(AForm.Handle, GWL_EXSTYLE);
+      NewStyle := OldStyle;
+      NewStyle := NewStyle or WS_EX_APPWINDOW;
+    end
+    else
+      NewStyle := NewStyle and not WS_EX_APPWINDOW or WS_EX_TOOLWINDOW;
+  end else begin
+    if AValue = stAlways then
+      NewStyle := NewStyle or WS_EX_APPWINDOW
+    else
+      NewStyle := NewStyle and not WS_EX_APPWINDOW;
+  end;
+
   if OldStyle = NewStyle then exit;
 
   // to apply this changes we need either to hide window or recreate it. Hide is
TaskBar_MB2.patch (6,975 bytes)   

yang jixian

2011-01-28 04:55

developer   ~0045519

According to the tasbar_mb.patch, the taskBar_MB2.patch fixed the bugs.

malcome

2011-01-28 05:17

reporter   ~0045520

Last edited: 2011-01-28 06:10

Thanks yang.
I will create a patch for MainFormOnTaskBar prop after taskbar2.patch and preview4.patch(in 0013397 ) are merged.
So please hold using taskbar_mb.patch.

yang jixian

2011-01-28 08:18

developer   ~0045522

Last edited: 2011-01-28 08:19

Did the TApplication window of Lazarus IDE not appear after the preview4.patch applied and all of the IDE forms minimize when mainform minimize?

yang jixian

2011-01-28 09:03

developer   ~0045524

The TaskBar_MB2.patch still has bugs.

yang jixian

2011-01-28 17:58

developer   ~0045555

So I prefer MainFormOnTaskbar20110128.patch on 17311.

malcome

2011-01-29 07:00

reporter   ~0045562

>Did the TApplication window of Lazarus IDE not appear after the preview4.patch applied and all of the IDE forms minimize when mainform minimize?

Yes.
Use taskbar2.patch and preview4.patch.

yang jixian

2011-01-29 15:10

developer   ~0045571

I have tested taskbar2.patch and preview4.patch assembly.

If the mainform is the parent of other forms, there comes z-order issue like delphi 2007 and its higher version with the mainform under other forms forever. The TApplication window can be ignored for this solution.

In the patches, the TApplication window is the parent. So we must keep it invisible and it should not appear on taskbar and it should be tested on the cases of close, close query, close query in debugging.

malcome

2011-01-30 01:23

reporter   ~0045589

Last edited: 2011-01-30 01:26

taskbar2.patch and preview4.patch are for issues when "MainFormOnTaskBar = False".
I will create a patch for "MainFormOnTaskBar = True" after they are merged.

Felipe Monteiro de Carvalho

2011-10-03 09:06

developer   ~0052413

I tryed to apply the patch taskbar2.patch but it failled because the file changed in the mean time. Could you create a new patch?

Vincent Snijders

2012-03-13 14:12

manager   ~0057578

I matched Target Version and LazTarget.

2012-04-01 19:08

 

2012-04-01 19:08

 

Stas

2012-04-01 19:09

reporter   ~0058231

Last edited: 2012-04-01 19:14

When form1 created first , ShowInTaskBar = stNever it is ignored !

Application.Initialize;
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm1,Form1);
Application.Run;

form1 ShowInTaskBar = stNever is working , why i do not know

tested in linux gtk2 0.9.31
I attach two example projects , see difference in project1.lpr

if
Application.Initialize;
Application.CreateForm(TForm1,Form1);
Application.CreateForm(TForm2, Form2);
Application.Run;

form1 ShowInTaskBar = stNever is NOT working

Paul Ishenin

2012-04-02 00:19

manager   ~0058232

That's because stNever does not work for the main form. Also the behavior of ShowInTaskbar differs from widgetset to widgetset.

Stas

2012-04-02 11:47

reporter   ~0058244

Maybe lock a choice or hide stNever if form is main

Paul Ishenin

2012-04-05 08:07

manager   ~0058307

It is imposible to know in design time.

yang jixian

2012-09-03 16:16

developer   ~0062044

Maybe if mainform.ShowInTaskBar = stNever then it should not on taskbar and so should the TWin32WidgetSet(WidgetSet).AppHandle.

yang jixian

2012-09-03 16:17

developer   ~0062045

That makes the behavior useful.

Antônio Galvão

2015-06-26 13:33

reporter   ~0084718

Both of your examples, correct and not correct ShowTaskBar, work equal. The forms are shown in task bar.

Hrvoje Lončar

2015-12-26 01:21

reporter   ~0088254

Last edited: 2015-12-26 01:21

View 2 revisions

Any chance to fix this bug? It's almost 6 years having that bug and it's pretty usual thing to have when making desktop applications :(

Juha Manninen

2017-04-24 21:39

developer   ~0099882

yang jixian is not active recently, assigning to you Ondrej. Sorry...
You solved some similar taskbar issues.

Ondrej Pokorny

2017-04-25 09:16

developer   ~0099896

You must use "ShowInTaskBar = stNever" with "Application.MainFormOnTaskBar = True".

Issue History

Date Modified Username Field Change
2010-08-28 20:42 Antônio Galvão New Issue
2010-08-28 20:42 Antônio Galvão File Added: Example.zip
2010-08-28 20:42 Antônio Galvão Widgetset => Win32/Win64
2010-10-29 12:00 Vincent Snijders LazTarget => 1.0
2010-10-29 12:00 Vincent Snijders Status new => acknowledged
2010-10-29 12:00 Vincent Snijders Target Version => 1.0.0
2011-01-10 20:30 Simon Hart Note Added: 0045056
2011-01-11 06:42 malcome File Added: taskbar.patch
2011-01-11 06:44 malcome Note Added: 0045079
2011-01-11 11:32 malcome File Added: taskbar2.patch
2011-01-11 11:33 malcome Note Added: 0045092
2011-01-13 04:33 malcome File Added: taskbar_mb.patch
2011-01-13 04:39 malcome Note Added: 0045139
2011-01-13 04:45 malcome Note Edited: 0045139
2011-01-13 04:46 malcome Note Edited: 0045139
2011-01-13 04:46 malcome Note Edited: 0045139
2011-01-13 04:59 malcome Note Edited: 0045139
2011-01-13 05:00 malcome Note Edited: 0045139
2011-01-13 05:01 malcome Note Edited: 0045139
2011-01-13 05:28 malcome Note Edited: 0045139
2011-01-13 06:41 malcome Note Edited: 0045139
2011-01-14 03:13 malcome Note Edited: 0045139
2011-01-19 08:38 yang jixian Note Added: 0045291
2011-01-25 07:54 malcome Note Added: 0045463
2011-01-28 04:53 yang jixian Status acknowledged => assigned
2011-01-28 04:53 yang jixian Assigned To => yang jixian
2011-01-28 04:53 yang jixian File Added: TaskBar_MB2.patch
2011-01-28 04:55 yang jixian Note Added: 0045519
2011-01-28 05:17 malcome Note Added: 0045520
2011-01-28 05:30 malcome Note Edited: 0045520
2011-01-28 05:32 malcome Note Edited: 0045520
2011-01-28 06:09 malcome Note Edited: 0045520
2011-01-28 06:10 malcome Note Edited: 0045520
2011-01-28 08:18 yang jixian Note Added: 0045522
2011-01-28 08:19 yang jixian Note Edited: 0045522
2011-01-28 09:03 yang jixian Note Added: 0045524
2011-01-28 17:58 yang jixian Note Added: 0045555
2011-01-29 07:00 malcome Note Added: 0045562
2011-01-29 15:10 yang jixian Note Added: 0045571
2011-01-30 01:23 malcome Note Added: 0045589
2011-01-30 01:25 malcome Note Edited: 0045589
2011-01-30 01:26 malcome Note Edited: 0045589
2011-04-04 05:35 Paul Ishenin LazTarget 1.0 => 0.99.0
2011-04-04 05:38 Paul Ishenin Target Version 1.0.0 => 0.99.0
2011-10-02 23:01 Felipe Monteiro de Carvalho Relationship added related to 0017311
2011-10-02 23:06 Felipe Monteiro de Carvalho Relationship added related to 0013397
2011-10-03 09:06 Felipe Monteiro de Carvalho LazTarget 0.99.0 => -
2011-10-03 09:06 Felipe Monteiro de Carvalho Note Added: 0052413
2011-10-03 09:06 Felipe Monteiro de Carvalho Status assigned => feedback
2011-10-03 09:06 Felipe Monteiro de Carvalho Target Version 0.99.0 => 1.0.0
2011-12-13 15:44 yang jixian Relationship added related to 0020864
2012-03-13 14:12 Vincent Snijders LazTarget - => 1.0
2012-03-13 14:12 Vincent Snijders Note Added: 0057578
2012-04-01 19:08 Stas File Added: Example_correct_ShowInTaskBar.tar.gz
2012-04-01 19:08 Stas File Added: Example_not_correct_ShowInTaskBar.tar.gz
2012-04-01 19:09 Stas Note Added: 0058231
2012-04-01 19:14 Stas Note Edited: 0058231
2012-04-02 00:19 Paul Ishenin Note Added: 0058232
2012-04-02 11:47 Stas Note Added: 0058244
2012-04-05 08:07 Paul Ishenin Note Added: 0058307
2012-08-30 12:22 Vincent Snijders Target Version 1.0.0 => 1.0.2
2012-08-30 12:22 Vincent Snijders LazTarget 1.0 => 1.0.2
2012-08-31 22:08 Bart Broersma Relationship added related to 0022768
2012-09-03 16:16 yang jixian Note Added: 0062044
2012-09-03 16:17 yang jixian Note Added: 0062045
2012-10-09 13:42 Martin Friebe LazTarget 1.0.2 => 1.0.4
2012-10-09 13:46 Martin Friebe Target Version 1.0.2 => 1.0.4
2013-09-14 00:41 Martin Friebe LazTarget 1.0.4 => 1.2
2013-09-14 00:42 Martin Friebe Target Version 1.0.4 => 1.2.0
2014-02-15 20:51 Martin Friebe LazTarget 1.2 => 1.4
2014-02-15 20:52 Martin Friebe Target Version 1.2.0 => 1.4
2014-09-09 23:44 Juha Manninen LazTarget 1.4 => -
2014-09-09 23:44 Juha Manninen Target Version 1.4 =>
2015-06-26 13:33 Antônio Galvão Note Added: 0084718
2015-06-26 13:33 Antônio Galvão Status feedback => assigned
2015-12-26 01:21 Hrvoje Lončar Note Added: 0088254
2015-12-26 01:21 Hrvoje Lončar Note Edited: 0088254 View Revisions
2017-04-24 21:33 Juha Manninen Relationship added related to 0031248
2017-04-24 21:37 Juha Manninen Assigned To yang jixian => Ondrej Pokorny
2017-04-24 21:39 Juha Manninen Note Added: 0099882
2017-04-25 09:16 Ondrej Pokorny Fixed in Revision => 54721
2017-04-25 09:16 Ondrej Pokorny Note Added: 0099896
2017-04-25 09:16 Ondrej Pokorny Status assigned => resolved
2017-04-25 09:16 Ondrej Pokorny Resolution open => fixed