AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Andocken an Rändern

Offene Frage von "meisterwms"
Ein Thema von theomega · begonnen am 28. Aug 2002 · letzter Beitrag vom 18. Mai 2005
Antwort Antwort
Seite 2 von 2     12   
delphi-anfänger

Registriert seit: 19. Dez 2003
7 Beiträge
 
#11

Re: Andocken an Rändern

  Alt 17. Dez 2004, 20:23
sch.. aaaaadeee
trotzdem danke
  Mit Zitat antworten Zitat
meisterwms

Registriert seit: 19. Mär 2005
13 Beiträge
 
#12
  Alt 16. Mai 2005, 00:19
Zitat von DieHardMan:
für den bildschirmrand

Code:
  private
    { Private declarations }
    procedure WMWindowPosChanging(var Message: TWMWINDOWPOSCHANGING);
    message WM_WINDOWPOSCHANGING;

procedure TForm1.WMWindowPosChanging(var Message: TWMWINDOWPOSCHANGING);
const
  distance = 10;
begin
  { Obere und untere Festerkante }
  if (Message.WindowPos.y <= distance) AND
    (Message.WindowPos.y >= -distance) then
      Message.WindowPos.y := 0
  else
    if (Message.WindowPos.y + Height > (Screen.WorkAreaHeight - distance)) AND
      (Message.WindowPos.y + Height < (Screen.WorkAreaHeight + distance)) then
        Message.WindowPos.y := Screen.WorkAreaHeight - Height;

  { Linke und rechte Fensterkante }
  if (Message.WindowPos.x <= distance) AND
    (Message.WindowPos.x >= -distance) then
      Message.WindowPos.x := 0
  else
    if (Message.WindowPos.x + Width > (Screen.WorkAreaWidth - distance)) AND
      (Message.WindowPos.x + Width < (Screen.WorkAreaWidth + distance)) then
        Message.WindowPos.x := Screen.WorkAreaWidth - Width;
end;
Kann mir einer sagen, wie ich diese procedure so aufrufe, daß das Programm z.b. unten am Bildschirmrand andockt?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: Andocken an Rändern

  Alt 18. Mai 2005, 07:54
Zitat von meisterwms:
Kann mir einer sagen, wie ich diese procedure so aufrufe, daß das Programm z.b. unten am Bildschirmrand andockt?
Nicht du rufst sie auf, sondern sie wird automatisch ausgeführt, wenn du zur Laufzeit deine Form in die Nähe der Bildschirmränder bewegst. Dazu musst du die entsprechende Form in deinem Programm so erweitern, wie der Code-Autor angedeutet hat. Im private-Bereich deiner Form-Deklaration trägst du den oben angegebenen Message-Handler ein und im implementation-Abschnitt deiner Form-Unit die abgebildete Prozedur.

Grüße vom marabu
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#14

Re: Andocken an Rändern

  Alt 18. Mai 2005, 09:40
Die Screen.WorkAreaWidth / Height scheint es in Delphi 3 noch nicht zu geben. Du kannst Dir mit Screen.Width / Height behelfen, allerdings werden da die AppBars (Taskbar, Office Mumpf etc.) nicht eingerechnet. Entweder Du ignorierst das, oder musst Dir selber die Liste der AppBars von Windows geben und die WorkArea berechnen.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Fingolfin

Registriert seit: 8. Okt 2003
62 Beiträge
 
#15

Re: Andocken an Rändern

  Alt 18. Mai 2005, 09:47
Im Anschluß an alzaimars Beitrag:

Den verfügbaren Platz auf dem Bildschirm abzüglich der AppBars kannst du mit

SystemParametersInfo(SPI_GETWORKAREA, 0, @IrgendeinRect, 0); ermitteln.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 08:00 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