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 Form lässt sich nicht verschieben (https://www.delphipraxis.net/108856-form-laesst-sich-nicht-verschieben.html)

daredd 20. Feb 2008 13:06


Form lässt sich nicht verschieben
 
:wall:
Hallo Freunde,

ich habe eine TForm die lässt im Programm nicht Verschieben, also mit gedrücktem linken Mauszeiger. Woran kann das liegen?

Bernhard Geyer 20. Feb 2008 13:13

Re: Form lässt sich nicht verschieben
 
Zitat:

Zitat von daredd
ich habe eine TForm die lässt im Programm nicht Verschieben, also mit gedrücktem linken Mauszeiger. Woran kann das liegen?

Hat dir jemand sowas eingebaut?

daredd 20. Feb 2008 13:18

Re: Form lässt sich nicht verschieben
 
Ich glaube das würde hinkommen. Nur wo kann ich das wieder raus machen?
Alle fenster lassen sich nur über Imagebuttons betätigen und die standart Windows Border sind ausgeschaltet.
Nun brauche ich aber ein Fenster das ich verschieben kann und das geht nicht.

DeddyH 20. Feb 2008 13:40

Re: Form lässt sich nicht verschieben
 
Zitat:

Zitat von daredd
und die standart Windows Border sind ausgeschaltet.

Was meinst Du damit? BorderStyle auf bsNone?

daredd 20. Feb 2008 14:06

Re: Form lässt sich nicht verschieben
 
Ja, der BorderStyle war auf bsNone. Dann habe ich den auf bsSingle gemacht.
Nun zeigt er mir das Form als Windows-Fenster im Programm an, jeddoch kann ich es nicht verschieben.

daredd 20. Feb 2008 14:10

Re: Form lässt sich nicht verschieben
 
Überhaupt funktioniert dir Ganze Form-Kopf nicht. Also Schließen, Maximieren, Minimiren.

taaktaak 20. Feb 2008 14:13

Re: Form lässt sich nicht verschieben
 
Moin, Moin,

zum Verständnis: Du hast ein Programm und auch den Source, hast es aber nicht selbst geschrieben - korrekt?

DeddyH 20. Feb 2008 14:14

Re: Form lässt sich nicht verschieben
 
Ich vermute, es wird auf WM_NCHITTEST reagiert.

taaktaak 20. Feb 2008 14:21

Re: Form lässt sich nicht verschieben
 
Joo, das ist schon recht wahrscheinlich...

daredd 20. Feb 2008 14:23

Re: Form lässt sich nicht verschieben
 
Korrekt @ taaktaak!!!

Ich habe das Programm aus der Ukraine bekommen und nun will ich das ein bisschen bearbeiten. Bin leider kein 100% Delphianer. Somit habe ich an manchen stellen meine Schwierigkeiten.
Der Programmierer in der Ukraine ist leider auch nicht mehr auffindbar und darum bin ich auf mich selber angewiesen.

DeddyH 20. Feb 2008 14:25

Re: Form lässt sich nicht verschieben
 
Nur eben falsch herum XD

Mal ein Versuch:
Delphi-Quellcode:
type
  TFormBlubb = class(TForm)
  ...
  private
    procedure WMNCHitest(var Msg: TWMNCHITTEST);
      message WM_NCHITTEST;
  ...
  end;

...

procedure TFormBlubb.WMNCHitest(var Msg: TWMNCHITTEST);
begin
  if Msg.Result = htClient then
    Msg.Result := htCaption;
end;
Falls ich nichts übersehen habe, sollte sich das Form dann auch ohne Titelbar verschieben lassen.

[edit] Jetzt hab ich das schon selber verdreht :oops: [/edit]

taaktaak 20. Feb 2008 14:34

Re: Form lässt sich nicht verschieben
 
Was ist denn das Ziel?
Geht es darum, es verschieben zu können, oder möchtest du die TitleBar wie in einem StandardWindow dargestellt haben?

daredd 20. Feb 2008 14:37

Re: Form lässt sich nicht verschieben
 
Das will auch nicht klappen. Komisch ist das Hauptmenü-Form lässt sich verschieben wenn ich bsSingle einstelle. @ DeddyH

Ja ich will es einfach nur verschieben können! @ taaktaak

DeddyH 20. Feb 2008 14:39

Re: Form lässt sich nicht verschieben
 
Zeig doch mal den private-Abschnitt des Forms. Wir haben keine Lust, hier zu raten.

Luckie 20. Feb 2008 14:41

Re: Form lässt sich nicht verschieben
 
Dann wird in der anderen Form ein Code sein, der das Verschieben unterbindet. Wie der aussehen könnte, wurde dir hier im Thread aufgezeigt. Finde ihn und lösche ihn.

taaktaak 20. Feb 2008 14:42

Re: Form lässt sich nicht verschieben
 
Welche Windows-Botschaften werden denn vom Programm behandelt?

daredd 20. Feb 2008 14:42

Re: Form lässt sich nicht verschieben
 
Delphi-Quellcode:
private
    procedure AssignStringGrid(sg : TStringGrid; AValues : GraphValues);
    procedure CMHitTest(var Msg : TCMHitTest);
    message WM_NCHITTEST;
ICh glaube vielleicht hat das CMHitTest was damit zu tun.
Also so war ist das in der Ursprungsform drin im quellcode.

daredd 20. Feb 2008 14:43

Re: Form lässt sich nicht verschieben
 
und hier die Procedure an sich:
Delphi-Quellcode:
procedure TFormBigGraph.CMHitTest(var Msg : TWMNCHitTest);
begin
     if PtInRect(Graph.ClientRect, Graph.ScreenToClient(Point(Msg.XPos, Msg.YPos))) then Msg.Result := HTCAPTION;
end;

DeddyH 20. Feb 2008 14:45

Re: Form lässt sich nicht verschieben
 
Kommentiere mal alles aus, was mit dem HitTesting zu tun hat.

Luckie 20. Feb 2008 14:45

Re: Form lässt sich nicht verschieben
 
Zitat:

Zitat von daredd
ICh glaube vielleicht hat das CMHitTest was damit zu tun.

Dann nimm ihn doch einfach mal raus und guck, was passiert. Deine Mutter wird dich schon deswegen nicht schlagen. ;)

daredd 20. Feb 2008 14:53

Re: Form lässt sich nicht verschieben
 
JUNGS!!!! hegdl :-D

Hat geklappt als ich dieses dumme CMHitTest rausgenommen habe.
Besten dank an Alle


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