Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Transparentes Formblatt auf dem Desktop (https://www.delphipraxis.net/146827-transparentes-formblatt-auf-dem-desktop.html)

mb1996 27. Jan 2010 14:56


Transparentes Formblatt auf dem Desktop
 
Ihr werdet bestimmt Vista oder auch Windows 7 kennen.
Da giebt es auf dem Desktop rechts so ein Feld, wo zum Beispiel Notizen, Wetter, Kalender, CPU und so weiter steht.
Sowas wollte ich auch machen.
Nun sieht das blöd aus, wenn einfach an der Seite ein Formblatt ist.
Also wollte ich fragen:

-Kann man ein Formblatt nicht in der Taskleiste haben, aber das es Sichbar ist?
-Kann ich ein Formblatt transparent machen, so das es wie der Desktop aussieht?

Man kann ja Application.Showmainform:=false machen, aber dann sieht man das Formblatt nicht.

Danke für Antworten :thumb:

MasterChief_88 27. Jan 2010 16:09

Re: Transparentes Formblatt auf dem Desktop
 
bei einer form kannst du transparentcolor angeben.
und wenn du dein formcolor genauso machst wie dein transparentcolor kann man durch die form durchgucken!

bsp:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

procedure TForm1.FormCreate(Sender: TObject);
begin
  form1.Color := clblack;
  form1.TransparentColorValue := clblack;
  form1.TransparentColor := true;
end;

end.

mb1996 27. Jan 2010 16:19

Re: Transparentes Formblatt auf dem Desktop
 
Danke, und wie sieht das mit der Taskleiste aus?

mb1996 27. Jan 2010 16:41

Re: Transparentes Formblatt auf dem Desktop
 
Der einziege Hacken ist, das die Schrieft in einem zum Beispiel Memo die Hintergrundfarbe hat.

mb1996 27. Jan 2010 16:52

Re: Transparentes Formblatt auf dem Desktop
 
Wie macht man das eigenlich, dass das Formblatt an der rechten Seite auf allen Auflösungen erscheint und sich genau an die Höhe und so weiter anpasst. :glaskugel:

mb1996 28. Jan 2010 16:04

Re: Transparentes Formblatt auf dem Desktop
 
Ich habe das mit der Taskleiste herausgefunden: :idea:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,JclSysInfo,StrUtils, StdCtrls, AdvSmoothListBox;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var
  Handle: HWND;
  WindowStyle : Integer;
begin
    Handle:=GetWindow(GetDesktopWindow(),GW_CHILD);
    while (Handle<>0) do
    begin
    if (IsMainAppWindow(Handle) and (AnsiContainsStr(GetWindowCaption(Handle),'Project1'))) then
    begin
      ShowWindow(Handle, SW_HIDE);
      SetWindowLong(Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
      ShowWindow(Handle, SW_SHOW);
      ShowWindow(Handle, SW_MAXIMIZE);
      ShowWIndow(Handle, SW_NORMAL);
      break;
    end;
    Handle:=GetWindow(Handle,GW_HWNDNEXT);
    end;
end;

end.
Aber wie sieht das jetzt mit der Position des Formblattes aus? :coder2:

mb1996 29. Jan 2010 11:33

Re: Transparentes Formblatt auf dem Desktop
 
Weiß jemand wo man eine schöne analoge Uhr für meine Toolbar herbekommt?
Wie zum Beispiel:
Uhr
Oben rechts.
Ich danke euch schonmal und an alle Schüler schöne Ferien :-D

Forlan 29. Jan 2010 11:35

Re: Transparentes Formblatt auf dem Desktop
 
[OT] Selten gesehen das einer so oft pusht :drunken: [/OT]

patti 29. Jan 2010 11:57

Re: Transparentes Formblatt auf dem Desktop
 
Zitat:

Zitat von mb1996
Wie macht man das eigenlich, dass das Formblatt an der rechten Seite auf allen Auflösungen erscheint und sich genau an die Höhe und so weiter anpasst. :glaskugel:

Besorge dir zuerst die Workarea. Dies ist der Bereich des Desktops, welcher nicht von der Task-Leiste (oder anderen App-Bars) reserviert wurde. Dies kannst du beispielsweise folgendermaßen machen:

Delphi-Quellcode:
var area : TRect;
begin
     //--
     SystemParametersInfo(SPI_GETWORKAREA,0,@area,0);
Dann musst du die Position deines Fensters nur noch dementsprechend setzen, also beispielweise für den rechten Bildschrimrand so:

Delphi-Quellcode:
Form1.Left  := area.Right - Form1.Width;
Form1.Top   := area.Top;
Form1.Height := area.Bottom - area.Top;
mfg

uligerhardt 29. Jan 2010 12:48

Re: Transparentes Formblatt auf dem Desktop
 
Wenn ich dich richtig verstanden habe, willst du eine Delphi-Referenz durchsuchenAppBar bauen.

HTH,
Uli.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:51 Uhr.
Seite 1 von 2  1 2      

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