AGB  ·  Datenschutz  ·  Impressum  







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

Form soll nicht verschiebbar sein!

Offene Frage von "rollstuhlfahrer"
Ein Thema von richard_boderich · begonnen am 19. Sep 2008 · letzter Beitrag vom 23. Jan 2011
Antwort Antwort
Seite 2 von 3     12 3      
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Form soll nicht verschiebbar sein!

  Alt 19. Sep 2008, 17:52
Form.BorderStyle := bsNone;
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#12

Re: Form soll nicht verschiebbar sein!

  Alt 19. Sep 2008, 18:01
@omata

Stimmt das wäre eine Möglichkeit, sieht aber auch nicht so toll aus.Kann man die SC Message nicht direkt abfangen?
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Form soll nicht verschiebbar sein!

  Alt 19. Sep 2008, 18:10
Delphi-Quellcode:
  private
    { Private-Deklarationen }
    procedure WMNCHitTest(var Msg: TWMNCHitTest); message WM_NCHITTEST;
:
:
procedure TForm.WMNCHitTest(var Msg: TWMNCHitTest);
begin
  DefaultHandler(Msg);
  if Msg.Result = HTCAPTION then
    Msg.Result:=0;
end;

procedure TForm.FormCreate(Sender: TObject);
const
  MnuCommand = SC_MOVE;
var
  SysMenu : HMenu;
begin
  SysMenu := GetSystemMenu(Handle, FALSE) ;
  DeleteMenu(SysMenu, MnuCommand, MF_BYCOMMAND);
end;
und Form.BorderStyle := bsSingle;
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#14

Re: Form soll nicht verschiebbar sein!

  Alt 19. Sep 2008, 20:29
@omata

Funktioniert perfekt!
Was ich nur nicht ganz verstehe ist, was das Menü damit zu tun hat. Konkret geht es mir um diese beiden Codezeilen. Wäre nett wenn du das noch etwas näher erläutern könntest.

Delphi-Quellcode:
const
  MnuCommand = SC_MOVE;
var
  SysMenu : HMenu;
begin
  SysMenu := GetSystemMenu(Handle, FALSE) ; <--Holt den Handle auf das Systemmenü? Meine Anwendung hat jedoch kein menü?!
  DeleteMenu(SysMenu, MnuCommand, MF_BYCOMMAND); <--Verhindert das ein nichtexistentes Menü verschoben werden kann?
end;
Vielen Dank schonmal an dich und an alle anderen für ihre Antworten.
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#15

Re: Form soll nicht verschiebbar sein!

  Alt 19. Sep 2008, 20:50
HI,

mit den beiden Anweisungen wird das System-Menü ausgelesen. Das ist nicht etwa dein Menü wenn du es auf die Form ziehst und dann unterhalb der Titelleiste auftaucht, sondern das Menü, dass z.B. auftaucht, wenn du einen Rechtsklick auf das AnwendungsIcon in der Titelleiste machst. Dort taucht dann allerlei auf, wie auch die Option Verschieben. Da diese Option deaktiviert sein soll (du willst ja die Form nicht verschiebbar machen) wird sie aus dem Menü herausgenommen (DeleteMenu).

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#16

Re: Form soll nicht verschiebbar sein!

  Alt 19. Sep 2008, 21:10
THX for the Info
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#17

Re: Form soll nicht verschiebbar sein!

  Alt 2. Nov 2009, 13:46
Hallo,

ich muss das Thema leider wieder aufwärmen:

Ich habe mittels
Delphi-Quellcode:
Procedure TDiktate.WMWindowPosChanging(Var Msg: TWMWindowPosMsg);
   // Message WM_WindowPosChanging;
Begin
   Inherited;
   Msg.WindowPos^.flags:=Msg.WindowPos^.flags Or SWP_NoMove;
End;
die Form unverschiebbar gemacht. Im ObjektInspektor habe ich Position:=poScreenCenter gesetzt. Leider funktioniert das nun nicht mehr. Das Fenster wird ausnahmslos dort angezeigt, wo ich es erstellt habe bzw. bei 0,0 (=links oben). Vermutlich liegt es daran, dass die Position erst später angepasst und dann WMWindowsPosChanging schon ausgeführt wird.

Wie erreiche ich es, dass das Fenster wieder poScreenCenter und unverschiebbar wird?

Es gleich in der Mitte zu positionieren scheidet aus, weil die Benutzer ja unterschiedliche Auflösungen haben könnten.

Gruß, Alex
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#18

Re: Form soll nicht verschiebbar sein!

  Alt 2. Nov 2009, 14:12
Bau dir eine Variable ein die nach dem anzeigen des Fensters
das verschieben deakviert.

Delphi-Quellcode:
Procedure ...WMWindowPosChanging(Var Msg: TWMWindowPosMsg);
   // Message WM_WindowPosChanging;
Begin
   Inherited;
   if not selfmove then Msg.WindowPos^.flags:=Msg.WindowPos^.flags Or SWP_NoMove
    else selfmove := false;
End;

procedure ...FormShow(Sender: TObject);
begin
  selfmove := ture;
end;
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#19

Re: Form soll nicht verschiebbar sein!

  Alt 2. Nov 2009, 15:24
Zitat von turboPASCAL:
Bau dir eine Variable ein die nach dem anzeigen des Fensters
das verschieben deakviert.
Genau das hatte ich auch schon probiert. Ich hatte die Variable aber vom MainForm "gesteuert". Das klappte - warum auch immer - nicht. So wie von Dir vorgeschlagen von OnShow aus geht es jetzt. 1000 Dank!

Gruß, Alex
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#20

Re: Form soll nicht verschiebbar sein!

  Alt 2. Nov 2009, 16:42
Das es so nicht geht, liegt wohl daran, daß die Form mehrfach verschoben wird und dann auch noch X und Y getrennt.

Und der Code hatte so nur eine Verschiebung zugelassen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 14:38 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