Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi [Help] Fenster aus Sysbar... (https://www.delphipraxis.net/130932-%5Bhelp%5D-fenster-aus-sysbar.html)

Gabberjool 16. Mär 2009 07:01


[Help] Fenster aus Sysbar...
 
Hallo...
Ich wollte eine sidebar schrieben jedoch bringe ich das Fenster nicht aus dem sysbar raus.
Ich hoffe ihr versteht was ich meine ich weiss nicht wie ich das beschrieben sollte finde nicht die richtigen worte dazu und deshalb finde ich bei der sufu auch nicht viel.

Es geht um das...

http://s10b.directupload.net/images/...p/kggb9ec7.jpg

Wie schafe ich es das man das da unten nicht mehr sieht ?

Liebe grüsse ralf

Mithrandir 16. Mär 2009 07:06

Re: [Help] Fenster aus Sysbar...
 
Deine Delphi-Version zu wissen wäre ganz toll...

Ab 2007 gibt es die Eigenschaft
Delphi-Quellcode:
Application.MainFormOnTaskbar
Ansonsten hilft dir vielleicht das hier: http://www.delphipraxis.net/internal...=609083#609083

Gruß,
Daniel

Gabberjool 16. Mär 2009 07:39

Re: [Help] Fenster aus Sysbar...
 
Es wäre DELPHI 7 werd mir das mal anschauen.
Danke

Gabberjool 16. Mär 2009 07:45

Re: [Help] Fenster aus Sysbar...
 
Zitat:

Zitat von Gabberjool
Es wäre DELPHI 7 werd mir das mal anschauen.
Danke


edit//
Hat leider nicht funktioniert weil er:
[Fehler] Unit1.pas(25): Undefinierter Bezeichner: 'HideFromTaskBar'

Bernhard Geyer 16. Mär 2009 07:47

Re: [Help] Fenster aus Sysbar...
 
Zitat:

Zitat von Gabberjool
Zitat:

Zitat von Gabberjool
Es wäre DELPHI 7 werd mir das mal anschauen.
Danke


edit//
Hat leider nicht funktioniert weil er:
[Fehler] Unit1.pas(25): Undefinierter Bezeichner: 'HideFromTaskBar'

D2007 ist ja auch eine andere (neuere) Delphi-Version als Delphi7

Gabberjool 16. Mär 2009 07:54

Re: [Help] Fenster aus Sysbar...
 
ich meinte ja auch den link von Daniel:
http://www.delphipraxis.net/internal...=609083#609083

Gabberjool 16. Mär 2009 07:59

Re: [Help] Fenster aus Sysbar...
 
Habe nun das gefunden:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure WMSysCommand(var Message: TWMSysCommand); message WM_SysCommand;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
  if Message.CmdType and $FFF0 = SC_MINIMIZE then
    Hide
  else
    inherited;
end;

procedure TForm1.FormShow(Sender: TObject);
var Owner : HWnd;
begin
  Owner:=GetWindow(Handle, GW_OWNER);
  ShowWindow(Owner, SW_HIDE);
end;

end.
Jedoch ist er nur weg wen ich es minimiere... könnte man daran was machen damit er von haus aus nicht Angezeigt wird.

Gabberjool 16. Mär 2009 12:09

Re: [Help] Fenster aus Sysbar...
 
*push*

keiner sonst ne Idee ?

Gabberjool 17. Mär 2009 13:20

Re: [Help] Fenster aus Sysbar...
 
*push again*

Hat etwa noch nie jemand versucht den Taskbar auszublenden seit es D7 gibt...

Reinhardtinho 17. Mär 2009 14:20

Re: [Help] Fenster aus Sysbar...
 
Hast du das schon probiert: http://www.swissdelphicenter.ch/de/showcode.php?id=54 ?

Mithrandir 17. Mär 2009 14:43

Re: [Help] Fenster aus Sysbar...
 
Zitat:

Zitat von Gabberjool
ich meinte ja auch den link von Daniel:
http://www.delphipraxis.net/internal...=609083#609083

Hmm, wie lange arbeitest du schon mit Delphi?

Gabberjool 17. Mär 2009 15:31

Re: [Help] Fenster aus Sysbar...
 
Zitat:

Zitat von Reinhardtinho

ne noch nicht danke !!!

Zitat:

Zitat von Daniel G
Zitat:

Zitat von Gabberjool
ich meinte ja auch den link von Daniel:
http://www.delphipraxis.net/internal...=609083#609083

Hmm, wie lange arbeitest du schon mit Delphi?

eig. schon länger, aber ich kann besser mit den Componenten arbeiten als selbst die Funktionene zu schrieben oder so...
Ich verstehe die sprache irgendwie schon, jedoch habe ich einfach zuviele fragen die mir keiner Beatnworten kann/will.

Das ganze auch mir C/C++ ich versteh den zweck den aufbau aber die ausführung nicht.

sry... :cry:

Ich bräcuhte sowas änliches wie ein Meister oder ein Lehrer... ^^ den für meine fragen die ich hab lohnt es sich nicht ein Post auf zu machen da es nur heissen würde sowas weiss man doch usw...
Ich denke Einfach manchmal viel zu weit

Gabberjool 17. Mär 2009 15:48

Re: [Help] Fenster aus Sysbar...
 
Also:
Ich hab nun das versucht : http://www.swissdelphicenter.ch/de/showcode.php?id=54

Das ganze sollte dan ja So aussehen:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormShow(Sender: TObject);
  private
    procedure WMSysCommand(var msg: TWMSysCommand); message WM_SysCommand;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

    {$R *.dfm}



procedure TMainForm.WMSysCommand(var msg: TWMSysCommand);
begin
  if msg.CmdType and $FFF0 = SC_MINIMIZE then
    hide
  else
    inherited;
end;


procedure TForm1.FormShow(Sender: TObject);
var
  hwndOwner: HWnd;
begin
  hwndOwner := GetWindow(Handle, GW_OWNER);
  ShowWindow(hwndOwner, SW_HIDE);
  // For Windows 2000, additionally call the ShowWindowAsync function:
  ShowWindowAsync(hwndOwner, SW_HIDE);
  ShowWindowAsync(Self.Handle, SW_HIDE);
end;

end.
Jedoch Gibt er nur fehler meldungen... sprich:

[Fehler] Unit1.pas(24): ';' erwartet, aber '.' gefunden
[Fehler] Unit1.pas(24): ';' erwartet, aber ')' gefunden
[Fehler] Unit1.pas(27): Undefinierter Bezeichner: 'hide'
[Fehler] Unit1.pas(29): Diese Form des Methodenaufrufs ist nur in Methoden von abgeleiteten Typen erlaubt

usw...

Bitte was mach ich falsch...

Sherlock 17. Mär 2009 15:55

Re: [Help] Fenster aus Sysbar...
 
Ich glaube worauf Daniel hinaus wollte ist, daß Du offenkundig vergessen hast, die Funktion HideFromTaskBar zu deklarieren. ;)

Dann kommt nämlich auch die Fehlermeldung nicht. Auch wenn Du nur mit Komponenten bisher gewerkelt hast, sollte Dir aufgefallen sein, daß der Kopf von Funktionen/Prozeduren komischerweise immer zweifach im Quellcode vorkommt. Das sollte Dir helfen, das Problem jetzt zu lösen.

Sherlock

Reinhardtinho 17. Mär 2009 15:58

Re: [Help] Fenster aus Sysbar...
 
Und das Problem in #13:

Dein Formular ist vom Typ TForm1, bei der Methode schreibst du TMainForm.

Sherlock 17. Mär 2009 16:01

Re: [Help] Fenster aus Sysbar...
 
Um es auf den Punkt zu bringen, lies mal das eine oder andere Einsteigerbuch oder auch Tutorial zu Delphi. Dann machst Du auch keine Fehler mehr, wenn Du Codeschnipsel aneinanderklebst.

:)

Sherlock

Gabberjool 17. Mär 2009 16:09

Re: [Help] Fenster aus Sysbar...
 
ach... die Procedur deklaration vergess... Danke !!!

Das mit dem procedur/funktion kopf weiss ich jedoch hab ich ja (via swissdelphi) ja die private deklarirt. nur halt Copy/past und somit den namen der procedurkopf ned geändert.

aber genau sowas meine ich woher wisst ihr oder die von swissdelphi, das man dass in die Privat schreiben muss:

Delphi-Quellcode:
procedure WMSysCommand(var msg: TWMSysCommand); message WM_SysCommand;
Wie kommt man auf sowas nur mit rum testen wohl kaum...

Ich schau viel die units (in demfall die message.pas) an um das ganze zu verstehen jedoch .....

Danke an alle die nerven mit mir hatten.


Ich werde es nun selber Probieren den es funktioniert zwar jetzt jedoch ist das ganze form1 Hide.
Will euch jedoch nicht mehr nerven und schau das ich das nun doch selbst irgendwie hin krige.
Danke.

Gabberjool 17. Mär 2009 16:36

Re: [Help] Fenster aus Sysbar...
 
So hab es geschaft... =)

musst nur:

Delphi-Quellcode:
ShowWindowAsync(Self.Handle, SW_HIDE);
entfernen.

besten Danke.

Mithrandir 17. Mär 2009 16:58

Re: [Help] Fenster aus Sysbar...
 
Zitat:

Zitat von Sherlock
Ich glaube worauf Daniel hinaus wollte ist, daß Du offenkundig vergessen hast, die Funktion HideFromTaskBar zu deklarieren. ;)

Jenau. ;)

mr_emre_d 21. Mär 2009 20:23

Re: [Help] Fenster aus Sysbar...
 
Hier, in kryptischer Form :P
Delphi-Quellcode:
function HideFromToolbar( ApplicationHandle: Cardinal ): LongInt; assembler;
asm
  push eax
  push -20
  push eax
  call GetWindowLong
  or   eax,  128
  pop  edx
  push eax
  push GWL_EXSTYLE
  push edx
  call SetWindowLong
end;
Wäre auch mit nur einem Befehl (bestehend aus einem weiterem Befehl) in DP-Syntax machbar :P

MfG

lbccaleb 21. Mär 2009 20:29

Re: [Help] Fenster aus Sysbar...
 
Meinst du sowas??


Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  ShowWindow(Application.Handle, SW_HIDE);
  SetWindowLong(Application.Handle, GWL_EXSTYLE,
    GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
  ShowWindow(Application.Handle, SW_SHOW);
end;

mr_emre_d 21. Mär 2009 20:30

Re: [Help] Fenster aus Sysbar...
 
ShowWindow ist überflüssig !

MfG

lbccaleb 21. Mär 2009 20:33

Re: [Help] Fenster aus Sysbar...
 
Zitat:

Zitat von mr_emre_d
ShowWindow ist überflüssig !

MfG

Ja, aber nicht wenn es zB auf druck eines Buttons erst ausgeblendet werden soll, dann ist ShowWindow von nöten ;)

mr_emre_d 21. Mär 2009 20:36

Re: [Help] Fenster aus Sysbar...
 
Mal ausprobieren :coder:

xD

EDIT:
OK. Haste recht :P

Delphi-Quellcode:
function HideFromToolbar( ApplicationHandle: Cardinal ): LongInt; assembler;
asm
  push eax
  push 0
  push eax
  call ShowWindow
  pop  eax

  push eax
  push -20
  push eax
  call GetWindowLong
  or   eax,  128

  pop  edx
  push eax
  push GWL_EXSTYLE
  push edx
  call SetWindowLong

  push 5
  push eax
  call ShowWindow
end;
MfG


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz