[ MatezYU @ 19.09.2004. 18:56 ] @
Pisem jedan mali program za pustanje muzike pa me muci problem... Posto sam iskljucio sa:

form1.borderstyle:=bstoolwindow

nemam gornji deo i ne mogu da pomeram program sa misem sa jednog dela ekrana na drugi... Hteo bih da to odradim ali ne znam kako... Recimo kao kada se klikne misem na winamp i kada se vuce po ekranu on se pomera... Ali nebitno na koji deo programa se stisne... ne samo na gornju traku...

Hvala
[ Almedin @ 19.09.2004. 19:39 ] @
Obradi poruku WM_NCHITTEST. Vrati HTCAPTION i windowsi će smatrati da je kliknuto na naslovnu traku.
[ bancika @ 19.09.2004. 19:45 ] @
za to ima lepo resenje, samo sto trenutno nemam pri sebi
ideja je da na OnMouseDown event komponente koja ce da ti sluzi za drag (recimo neka slicka ili nesto) posaljes poruku da se pocne pomeranje.
ovde nemam kod, ali ako hoces ima u nekom mom programu to, evo ti adresa za dl source-a, ako hoces (100 KB), pa pogledaj :)

http://www.storm-software.co.yu/software/cool_shutdown_source.zip
[ freespace @ 19.09.2004. 19:54 ] @
code:

var

Form1: TForm1;
status:boolean; //s need to be global
xdif,ydif:integer; //need to be global
implementation
{$R *.DFM}
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if status = false then exit;
form1.left := mouse.cursorpos.x -xdif;
form1.top := mouse.cursorpos.y -ydif;
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
xdif := mouse.cursorpos.x - form1.left;
ydif := mouse.cursorpos.y - form1.top;
status := true;
end;
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
status := false;
end;

[ marcha @ 20.09.2004. 08:11 ] @
Evo ti jos jednog resenja.
Code:

//dodaj deklaraciju u private deo unita 
procedure WMNCHitTest(var Msg: TWMNCHitTest);message wm_NCHitTest;

//implementacija

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

//OnMouswDown - panela (paCaption) koji zamenjuje caption bar i sluzi za setanje prozora

procedure TForm1.paCaptionMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture;
  SendMessage(Handle, WM_SYSCOMMAND, 61458, 0);
end;

Pozdrav,
Marcha
[ bancika @ 20.09.2004. 23:07 ] @
mislim da radi i samo sa zadnjom procedurom
[ sergio @ 21.09.2004. 12:23 ] @
Mala izmena postojeceg koda :


void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
if (status == false) {
xdif = X;
ydif = Y;
exit;
}
Form1->Left += X - xdif;
Form1->Top += Y - ydif;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
xdif = X;
ydif = Y;
status = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
status = false;
}



Keep on going ...
_______________
[ MatezYU @ 21.09.2004. 12:39 ] @
A kako mogu sada da namestim da klikom na jedno dugme da mi se prozor minimizira? probao sam ali samo mi se spusti u donji levi ugao ekrana tj. nece da nestane prozor sa ekrana i da stoji samo u system tray-u
[ reiser @ 21.09.2004. 17:17 ] @
Code:
Application.Minimize