AGB  ·  Datenschutz  ·  Impressum  







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

Programm verschieben...

Ein Thema von Störtebeker · begonnen am 7. Aug 2007 · letzter Beitrag vom 8. Aug 2007
Antwort Antwort
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#1

Programm verschieben...

  Alt 7. Aug 2007, 21:37
Wenn ich mit bsNone arbeite, kann ich im gestarteten Programm die Form nicht mehr verschieben. Also das Programm kann nicht verschoben werden.

Was kann ich machen, damit ich das Programm auch ohne die Windowstitelleiste verschieben kann?
"And he piled upon the whale´s white hump - a sum of all the rage and hate felt by his whole race.
If his chest had been a cannon, he would have shot his heart upon it."
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Programm verschieben...

  Alt 7. Aug 2007, 21:40
Genau für solche Fälle gibts die Suche und die CodeLibrary
http://www.delphipraxis.net/internal_redirect.php?t=133
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#3

Re: Programm verschieben...

  Alt 7. Aug 2007, 21:42
Danke.
"And he piled upon the whale´s white hump - a sum of all the rage and hate felt by his whole race.
If his chest had been a cannon, he would have shot his heart upon it."
  Mit Zitat antworten Zitat
Benutzerbild von PigfaceJoe
PigfaceJoe

Registriert seit: 17. Dez 2006
Ort: Saarland
24 Beiträge
 
Delphi 7 Personal
 
#4

Re: Programm verschieben...

  Alt 7. Aug 2007, 21:45
Hi!
Ich machs immer mit einem Timer, der das Intervall 1 hat und Anfangs enabled:= false gesetzt ist. Dann ziehe ich irgendeine Komponente mit der ich das Prog verschieben will aufs Forumular und schreibe ins OnMouseDown ereignis von der Kompo timer1.enabled:=true; und entsprechend ins OnMouseUp ereignis dann Timer1.enabled:=false;

Hier der Code im OnTimer ereignis vom Timer:
Delphi-Quellcode:
form1.Top:=mouse.CursorPos.Y;
form1.left:=mouse.CursorPos.x;
So mache ich das immer, ich lasse mich aber gerne einer besseren Methode belehren!

Gruss
PigfaceJoe

//Edit: Alles klar, die obige Methode ist besser
Max
Glühlampen brennen heller, wenn man sie vor dem Einschrauben aus der Verpackung nimmt.
  Mit Zitat antworten Zitat
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#5

Re: Programm verschieben...

  Alt 8. Aug 2007, 00:28
Also, ich habe mal beide Vorschläge ausprobiert und muss leider sagen, dass beide nicht funzen. Bei dem Programm regt sich nischt.

Das Grüne im Bild, ist die Grundform des Programmes.

Über "Switch"(Label Komponente) --> unten rechts auf der Form, soll die Form verschoben werden.
Miniaturansicht angehängter Grafiken
untitled-1_786.jpg  
"And he piled upon the whale´s white hump - a sum of all the rage and hate felt by his whole race.
If his chest had been a cannon, he would have shot his heart upon it."
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Programm verschieben...

  Alt 8. Aug 2007, 00:42
So geht es:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
  private
    { Private declarations }
    procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest);
begin
  inherited;
  if Message.Result = htClient then
    Message.Result := htCaption;
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#7

Re: Programm verschieben...

  Alt 8. Aug 2007, 00:57
Sry. aber ich weiß nicht, woran es liegt. Die Form sitzt fest, wie ein schwerer Stein.

Delphi-Quellcode:
unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, VrControls, VrGradient, ExtCtrls, StdCtrls, pngextra, SXPNGUtils;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    VrGradient1: TVrGradient;
    VrGradient2: TVrGradient;
    Label1: TLabel;
    Image1: TImage;
    Label2: TLabel;
  private
    { Private declarations }
    procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest);
begin
  inherited;
  if Message.Result = htClient then
    Message.Result := htCaption;
end;

end.
"And he piled upon the whale´s white hump - a sum of all the rage and hate felt by his whole race.
If his chest had been a cannon, he would have shot his heart upon it."
  Mit Zitat antworten Zitat
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#8

Re: Programm verschieben...

  Alt 8. Aug 2007, 01:24
Problem entdeckt. Enabled-Eigenschaft der Form stand auf FALSE.
"And he piled upon the whale´s white hump - a sum of all the rage and hate felt by his whole race.
If his chest had been a cannon, he would have shot his heart upon it."
  Mit Zitat antworten Zitat
Antwort Antwort


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