AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Form verschwindet nicht von Taskleiste trotz code !
Thema durchsuchen
Ansicht
Themen-Optionen

Form verschwindet nicht von Taskleiste trotz code !

Ein Thema von dazar_t · begonnen am 24. Mär 2008 · letzter Beitrag vom 25. Mär 2008
Antwort Antwort
dazar_t

Registriert seit: 1. Dez 2007
Ort: NRW
118 Beiträge
 
Delphi 2007 Professional
 
#1

Form verschwindet nicht von Taskleiste trotz code !

  Alt 24. Mär 2008, 17:30
Guten Tag..

Ich Programmiere grade ein Programm ( in Delphi 2007 ) das wärend der Laufzeit immer wieder sein Größe und seinne Sichtbarkeit ändert.

Um eine Form nun von der Taskleiste zu nehmen nehme ich gewöhnlich diesen Code :
Delphi-Quellcode:
  ShowWindow( Application.Handle, SW_HIDE );
  SetWindowLong( Application.Handle, GWL_EXSTYLE,
                 GetWindowLong(Application.Handle, GWL_EXSTYLE) or
                 WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
  ShowWindow( Application.Handle, SW_SHOW );
Doch wirkt dieser bei meinem Programm nicht mehr !

Hier mal mein QuellCode :
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled := True;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Height := Screen.Height;
Form1.Width := 215;
ShowWindow( Application.Handle, SW_HIDE );
SetWindowLong( Application.Handle, GWL_EXSTYLE,
                 GetWindowLong(Application.Handle, GWL_EXSTYLE) or
                 WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
ShowWindow( Application.Handle, SW_SHOW );
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
while Not(Form1.Width = 1) do
Form1.Width := Form1.Width - 1;
Form1.Visible := False;
Timer1.Enabled := False;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
Form1.Visible := True;
while Not(form1.Width = 215) do
Form1.Width := Form1.Width + 1;
Timer2.Enabled := False;
end;

procedure TForm1.Timer3Timer(Sender: TObject);
begin
if Mouse.CursorPos.x = Screen.Width - 1 then
Timer2.Enabled := True;
Timer4.Enabled := True;
end;

procedure TForm1.Timer4Timer(Sender: TObject);
begin
if (Form1.Width = 215) and (Mouse.CursorPos.X < Screen.Width - Form1.Width) then
Timer1.Enabled := True;
Timer4.Enabled := False;
end;

procedure TForm1.WMWindowPosChanging(var Message: TWMWINDOWPOSCHANGING);
begin
  Message.WindowPos.y := 0;
  Message.WindowPos.x := Screen.WorkAreaWidth - Width;
end;

end.

EDIT: // Habe grade mal nen TestProjeckt erstellt und gemerkt das der Code garnicht mehr wirkt das Programm bleibt immer in der Taskbar.
Als ich es aber in D7 probierte funktionierte es !???
Daniel
  Mit Zitat antworten Zitat
VnCoders

Registriert seit: 19. Mär 2008
4 Beiträge
 
#2

Re: Form verschwindet nicht von Taskleiste trotz code !

  Alt 25. Mär 2008, 01:20
You cannot resize the Form Width to 0 with Form's BorderStyle is bsSizable. You should change it to bsNone.
Build your own Defragger, File Recovery... at: http://VnCoders.com
  Mit Zitat antworten Zitat
dazar_t

Registriert seit: 1. Dez 2007
Ort: NRW
118 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Form verschwindet nicht von Taskleiste trotz code !

  Alt 25. Mär 2008, 12:42
Zitat von VnCoders:
You cannot resize the Form Width to 0 with Form's BorderStyle is bsSizable. You should change it to bsNone.
Hey
That's not the problem. The Form Style is set to bsNone. The Problem is that the form is visible on the taskbar and the Code (what should make the button on the taskbar invisible) doesn't work on D2007 but i've tried it on D7 and there it works..

Sorry for my bad englisch
Daniel
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#4

Re: Form verschwindet nicht von Taskleiste trotz code !

  Alt 25. Mär 2008, 12:50
Hallo

Dies versteckt doch auch die Hauptform von der Taskleiste?

ShowWindow(Application.Handle, SW_HIDE); Zudem: Sind wirklich 4 Timer nötig? Überdenke evtl. mal das Programmdesign.
Thomas
  Mit Zitat antworten Zitat
dazar_t

Registriert seit: 1. Dez 2007
Ort: NRW
118 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Form verschwindet nicht von Taskleiste trotz code !

  Alt 25. Mär 2008, 13:44
Nja die Timer sind inzwischen schon in funktionen "umgewandelt".

Aber der Code : ShowWindow(Application.Handle, SW_HIDE); Funktioniert ebend nicht...(Delphi 2007).
In D7 funktioniert es aber schon.
Daniel
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Form verschwindet nicht von Taskleiste trotz code !

  Alt 25. Mär 2008, 13:45
ich hab die Erfahrung gemacht dass, das Create-Event dafür ein schlechter Platz ist. Denn wenn danach noch ein Recreatewnd aufgerufen wird, so wird das Handle neu alociert und deine Änderungen werden nicht auf das neue Handle übertragen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Form verschwindet nicht von Taskleiste trotz code !

  Alt 25. Mär 2008, 13:49
Zitat von dazar_t:
Funktioniert ebend nicht...(Delphi 2007).
In D7 funktioniert es aber schon.
Kann das u.U. mit dem geänderten verhalten hidden Application-Form bezüglich Vista-Support zusammenhängen
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
dazar_t

Registriert seit: 1. Dez 2007
Ort: NRW
118 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Form verschwindet nicht von Taskleiste trotz code !

  Alt 25. Mär 2008, 13:50
Zitat von SirThornberry:
ich hab die Erfahrung gemacht dass, das Create-Event dafür ein schlechter Platz ist. Denn wenn danach noch ein Recreatewnd aufgerufen wird, so wird das Handle neu alociert und deine Änderungen werden nicht auf das neue Handle übertragen.
Dankeschön habe es jetzt mal versetzt un nun funktioniert es..
Daniel
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz