AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Formular ausserhalb des Screens verhindern
Thema durchsuchen
Ansicht
Themen-Optionen

Formular ausserhalb des Screens verhindern

Ein Thema von Logan · begonnen am 2. Jan 2006 · letzter Beitrag vom 3. Jan 2006
Antwort Antwort
Seite 1 von 2  1 2      
Logan

Registriert seit: 27. Dez 2005
Ort: Hamburg
42 Beiträge
 
#1

Formular ausserhalb des Screens verhindern

  Alt 2. Jan 2006, 14:29
Hallo,

ich muss ein Programm schreiben, dass nicht ausserhalb des Bildschirmes rausdarf. Ich weiss nicht welche Ereignisprozedur (beim Formular) nötig für ist oder handelt es sich nur um eine Einstellung im IO?

Danke schon im Vorraus!

MfG
Logan
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#2

Re: Formular ausserhalb des Screens verhindern

  Alt 2. Jan 2006, 14:35
Zitat von Logan:
IO
Ibjekt-Onspektor ?
Beim Verschieben des Fenster werden die Messages WM_MOVING (davor) und WM_MOVE (danach) an es geschickt, diese könntest du abfangen.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Formular ausserhalb des Screens verhindern

  Alt 2. Jan 2006, 14:36
Die TForm Eigenschaft

  Position := poScreenCenter; sollte dir weiterhelfen
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Benutzerbild von dahead
dahead

Registriert seit: 16. Mai 2005
620 Beiträge
 
#4

Re: Formular ausserhalb des Screens verhindern

  Alt 2. Jan 2006, 14:39
Zitat von Tyrael Y.:
Die TForm Eigenschaft

  Position := poScreenCenter; sollte dir weiterhelfen ;)
das bewirkt ja nur, dass es beim programmstart im screen zentriert ist.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Formular ausserhalb des Screens verhindern

  Alt 2. Jan 2006, 14:41
Oder du machst einfach einen Timer oder einen Thread der immer überprüft wo die Form ist und dann z.B

if Form.Left < 0 then Form.Left := 0; Beim Timer müsstest du dann den Intervall ziemlich klein stellen.
Michael
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#6

Re: Formular ausserhalb des Screens verhindern

  Alt 2. Jan 2006, 14:45
Hi!

Ein Timer ist da wohl wenig sinnvoll.
Vielleicht im onPaint des Forms? Beim verschieben wird es ja wohl neu gezeichnet.


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
thomasch

Registriert seit: 7. Apr 2005
57 Beiträge
 
Delphi 2007 Architect
 
#7

Re: Formular ausserhalb des Screens verhindern

  Alt 2. Jan 2006, 15:31
Ich würde TWMMoving auswerten und die Ausdehnung des Forms gegen den screen testen.
Als Ansatz :
Delphi-Quellcode:
type
  TWMMoving = record
    Msg: Cardinal;
    fwSide: Cardinal;
    lpRect: PRect;
    Result: Integer;
  end;
  TForm1 = class(TForm)
    Image1: TImage;
    cxLabel2: TcxLabel;
  private
  procedure OnMoving(var Msg: TWMMoving); message WM_MOVING;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.OnMoving(var Msg: TWMMoving);
begin
  if self.Top<1 then
  begin
    self.Top:=1;
  end;
  if (self.Left<1) then
  begin
    self.Left:=1;
  end;
  if ((self.Left+self.Width)>screen.Width) then
  begin
    self.Left:=(screen.Width-self.Width);
  end;
  if ((self.Top+self.Height)>screen.Height) then
  begin
    self.Top:=screen.Height-self.Height;
  end;
end;
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Formular ausserhalb des Screens verhindern

  Alt 2. Jan 2006, 15:44
Zitat von dahead:
Zitat von Tyrael Y.:
Die TForm Eigenschaft

  Position := poScreenCenter; sollte dir weiterhelfen
das bewirkt ja nur, dass es beim programmstart im screen zentriert ist.
Das ist mir bewusst...ich dachte mir eher, daß er genau das sucht und sich unglücklich ausgedrückt hat....eine Form die als maximale Größe die Screengröße hat, wird denke ich für den Benutzer sehr umständlcih zu händeln sein und ihn verwirren...

...ich zieh die Form zur Seite und die Form wird schmaler, dadurch werden eventuell Controls auf der Form falsch dargestellt...mhhh..nicht so gut...besonders wenn man das ganze noch erweitern möchte.....falls der Weg gesucht wurde sry für meine Antwort...

wie gesagt dachte eher, daß es unglücklich formuliert wurde

Gruß
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Logan

Registriert seit: 27. Dez 2005
Ort: Hamburg
42 Beiträge
 
#9

Re: Formular ausserhalb des Screens verhindern

  Alt 2. Jan 2006, 23:37
Danke Thomasch hat sehr geholfen!!!
  Mit Zitat antworten Zitat
Logan

Registriert seit: 27. Dez 2005
Ort: Hamburg
42 Beiträge
 
#10

Re: Formular ausserhalb des Screens verhindern

  Alt 2. Jan 2006, 23:49
was ich aber nicht ganz vertstehe ist das hier:
procedure OnMoving(var Msg: TWMMoving);
message WM_MOVING; //<----

Wärst du so nett und könntest es mir erklären
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:35 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