Delphi-PRAXiS

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/)
-   -   Delphi Fenster wie bei ICQ (https://www.delphipraxis.net/17226-fenster-wie-bei-icq.html)

billi 1. Mär 2004 15:04


Fenster wie bei ICQ
 
Hallo,
ich weis der Titel ist nicht ganz passend, aber ich wusste net wie ich ihn besser formulieren sollte...
Also, wenn man ICQ über den Rand des Bildschirms zieht, setzt es sich dort "fest". Außerdem nimme es so einfulss auf andere Fenster, die nämlich nun beim MAximieren immer den Platz von ICQ frei lassen. Wie ereiche ich das?
gruß
billi

mgubler 1. Mär 2004 15:10

Re: Fenster wie bei ICQ
 
da gibt es eine Komponente zu.
Also wie beim Winamp beispielsweise?
Wird beim Drag vom Fensterrand angezogen???

Ich schau mal nach!

mgubler 1. Mär 2004 15:13

Re: Fenster wie bei ICQ
 
Hier: ScreenDocker - Component

Gruß,
mgubler

billi 1. Mär 2004 15:15

Re: Fenster wie bei ICQ
 
jein, das auch, nur was mich auch interessiert ist, wie das läuft, dass nachdem icq sich am Bildschirmrand "breit gemacht" hat, die eine Seite zur neuen Begrenzung für die Fenstergröße anderer Fenster im "Maximiert"-Modus ist.
Aber den NAmen der Komponente den du erwähnt hast interessiert mich auch mal...
gruß
billi
edit: da warjemand schnelle... :wink:

fylo 1. Mär 2004 16:25

Re: Fenster wie bei ICQ
 
hi

Ich hatte auch mal solch eine Komponente, zu finden _war_ sie unter
http://www.geocities.com/SiliconValley/9486
(ist aber leider down...)

Kannst aber mal nach im Internet unter "Appbar" suchen.

billi 1. Mär 2004 16:49

Re: Fenster wie bei ICQ
 
wie sieht es damit aus? und dann appbar.zip

tobster 2. Mär 2004 05:58

Re: Fenster wie bei ICQ
 
Bei D7 ist das schon Bestandteil der IDE!

billi 2. Mär 2004 06:05

Re: Fenster wie bei ICQ
 
leider hab ich "nur" Delphi 5 Standard, gibt es als Schüler unserer Schule kostenlos lizensiert (solange man an der Schule ist) ;-)
gruß
billi

fylo 2. Mär 2004 20:37

Re: Fenster wie bei ICQ
 
hi

@tobster: wie meinst du das? :?:

gibst es dort schon eine fertige komponente?

tobster 3. Mär 2004 05:30

Re: Fenster wie bei ICQ
 
Zitat:

Zitat von fylo
gibst es dort schon eine fertige komponente?

Nein, es ist Bestandteil der Klasse TForm. Der genaue Name der Eigenschaft ist mir im Moment entfallen, aber auf jeden Fall springen die Fenster wie Winamp und Co. an die Bildschirmkanten, wenn aktiviert.

Wenn jemand eien Appbar generieren will, empfehle ich die drei Zeilen noch selbst zu schreiben. Wenn gewünscht grabbe ich die paar Zeilen mal aus nem Proggi von mir.

billi 3. Mär 2004 07:31

Re: Fenster wie bei ICQ
 
Zitat:

Wenn gewünscht grabbe ich die paar Zeilen mal aus nem Proggi von mir.
Jo, das wär nett...
gruß
billi

fylo 3. Mär 2004 09:18

Re: Fenster wie bei ICQ
 
hi

Ja, das was du meinst ist ScreenSnap und SnapBuffer.
Das hat aber doch nichts mit einer AppBar zutun, oder :?:

Eine AppBar ist doch so was wie die Windowstaskleiste, die meistens
unten am Bildschirm verankert ist.

billi 3. Mär 2004 09:20

Re: Fenster wie bei ICQ
 
so ist es... aber wo finde ich die Komps ScreenSnap und SnapBuffer
gruß
billi

fylo 3. Mär 2004 09:23

Re: Fenster wie bei ICQ
 
Es sind keine Komponenten, sondern bei Delphi7 sind es Eigenschaften einer TForm.
Musst mal im Objektinspektor die Form auswählen und die einzelnen Eigenschaften
betrachten.

billi 3. Mär 2004 09:24

Re: Fenster wie bei ICQ
 
ich hab aber nur version 5 und wie mach ich das dann?

fylo 3. Mär 2004 09:31

Re: Fenster wie bei ICQ
 
Sorry hat ich übersehen :oops:
Na dann kann ich dir noch die JEDI Komponenten empfehlen.
In dem Paket (ca. 10mb) gibt es einige Komponentne für die Form unter anderem auch ScreenMagnet.

tobster 3. Mär 2004 19:35

Re: Fenster wie bei ICQ
 
Zitat:

Zitat von billi
Zitat:

Wenn gewünscht grabbe ich die paar Zeilen mal aus nem Proggi von mir.
Jo, das wär nett...
gruß
billi

Zum Thema Appbar zurück:

Code:
uses [...], ShellAPI;

type
  TForm1 = class(TForm)
   [...]
  private
    { Private-Deklarationen }
    AppBar: TAppBarData;
  end;
   
[...]

procedure TForm1.DoAppbar(Sender: TObject);
begin
 with AppBar do begin
  cbSize := SizeOf(TAppBarData);
  hWnd := Form1.Handle;
  uEdge := ABE_TOP;
 end;
 SHAppBarMessage(ABM_NEW, AppBar);
 SystemParametersInfo(SPI_GETWORKAREA, 0, @AppBar.rc, 0);
 AppBar.rc.Bottom := AppBar.rc.Top+100;
 SHAppBarMessage(ABM_QUERYPOS, AppBar);
 SHAppBarMessage(ABM_SETPOS, AppBar);
 Application.ProcessMessages;
 [...]
 MoveWindow(Form1.Handle,AppBar.rc.Left,AppBar.rc.Top,AppBar.rc.Right,AppBar.rc.Bottom,true);
 SendMessage(Form1.Handle, wm_sizing,0,0);
end;
Spätestens beim Beenden seines Proggies sollte man dann den reservieren Bereich (hier 100 Pixel am oberen Rand) wieder freigeben:

Code:
 SHAppBarMessage(ABM_REMOVE, AppBar);
Ich habs nicht so mit Kommentaren, aber eigentlich sollte man ja sehen, wo was hingehört. :twisted:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:39 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