Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 8 odgovora
  • 4.847 pregleda

Najnovija ↓

Pomeranje programa 19.09.2004. u 19:56 · pre 269 meseci #1
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
Re: Pomeranje programa 19.09.2004. u 20:39 · pre 269 meseci #2
Obradi poruku WM_NCHITTEST. Vrati HTCAPTION i windowsi će smatrati da je kliknuto na naslovnu traku.
Re: Pomeranje programa 19.09.2004. u 20:45 · pre 269 meseci #3
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
Potpis
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
Re: Pomeranje programa 19.09.2004. u 20:54 · pre 269 meseci #4
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;

Potpis
http://filsko.100webspace.net
Re: Pomeranje programa 20.09.2004. u 09:11 · pre 269 meseci #5
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
Potpis
Marcha
-----------------------------------
Pretpostavka je majka zajeba.
Re: Pomeranje programa 21.09.2004. u 13:23 · pre 269 meseci #7
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 ...
_______________
Re: Pomeranje programa 21.09.2004. u 13:39 · pre 269 meseci #8
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
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme