Novo

Forum kao aplikacija na telefonu

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

  • 12 odgovora
  • 3.096 pregleda

Najnovija ↓

BorderStyle=bsNone? 12.12.2004. u 15:54 · pre 266 meseci #1
Ovako:
Stavio sam da mi je BorderStyle bsNone, i želi
U aplikaciji Cool Shutdown vidio sam nešto što mi se sviđa, a to je da je BorderStyle bsNone i da se ipak ta forma može micati, kao to napravit? Uradio sam neke Border Ikone (Close itd.) i sad mi još samo fali da se ta forma može pomicati (bsNone). Znači kako to uradit
Re: BorderStyle=bsNone? 12.12.2004. u 16:07 · pre 266 meseci #2
Pogledaj ovaj primer i videćeš kako.
Potpis
„Naposletku, suština saznavanja nije u tome gubimo li igru, već kako je gubimo,
šta time spoznajemo, čemu nas je poraz naučio i kako nas to menja. Gubiti na određen
način znači - dobijati.”

Richard Bach
Re: BorderStyle=bsNone? 12.12.2004. u 17:01 · pre 266 meseci #3
Ubaci sledece globalne promenljive:

Moving: Boolean;
OldX, OldY: Integer;

a za navedene evente kucaj:

MouseDown:

Moving := True;
OldX := X;
OldY := Y;

MouseMove:

if Moving then
begin
Form.Left := Form.Left + X - OldX;
Form.Top := Form.Top + Y - OldY;
end;

MouseUp:

Moving := False;

PS. Nisam pogledao Aleksandrov primer, cisto da ne bude da sam prepisao iz njega ukoliko je isto/slicno izvedeno...
Re: BorderStyle=bsNone? 12.12.2004. u 17:14 · pre 266 meseci #4
Primer koji je Alekstrade poslao je definitivno bolji. Time definises region koji se ponasao kao da je Title bar. Dakle ako recimo duplo kliknes na odredjeni deo forme za koji si definisao da je title bar windows ce poslati poruku WM_MAXIMIZE ili WM_RESTORE u zavisnosti od trenutnog stanja tvoje aplikacije. Ako imas okrugao prozor ovim nacinom mozes recimo definisati region koji je spoljni prsten tog tvog okriglog prozorcica, itd, itd... :)

P.S.
Hocu u tvoj tim :)
Potpis
Play Store
Re: BorderStyle=bsNone? 12.12.2004. u 17:46 · pre 266 meseci #5
Pa i u ovom mom primeru moze to da se uradi... razvuces jedan TImage koji ce ti biti title bar, i umesto za Formu, napises MouseUp, MouseMove i MouseDown evente za taj TImage...
Re: BorderStyle=bsNone? 12.12.2004. u 20:06 · pre 266 meseci #6
Citat:

PS. Nisam pogledao Aleksandrov primer, cisto da ne bude da sam prepisao iz njega ukoliko je isto/slicno izvedeno...


Ovaj kod nisam ja pisao, našao sam ga internetu.
Autor je Marco Cantu.
Potpis
„Naposletku, suština saznavanja nije u tome gubimo li igru, već kako je gubimo,
šta time spoznajemo, čemu nas je poraz naučio i kako nas to menja. Gubiti na određen
način znači - dobijati.”

Richard Bach
Re: BorderStyle=bsNone? 12.12.2004. u 21:07 · pre 266 meseci #7
@bancika
kao si ti to napravio u svom programu?
Re: BorderStyle=bsNone? 12.12.2004. u 21:37 · pre 266 meseci #8
ima sve u source-u, stavi dogadjaj OnMouseDown za komponentu koja hoces da ti pomera ceo prozor (recimo TImage koji ti sluzi kao novi TitleBar) i napisi sledece
Code:

 if Button = mbLeft then
  begin
   ReleaseCapture;
   Perform(WM_SYSCommand, $f019,0);
  end;

to je sve.
Potpis
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
Re: BorderStyle=bsNone? 12.12.2004. u 21:46 · pre 266 meseci #9
Nisam te dobro shvatio što sa OnMouseDown i onim kodom?
Re: BorderStyle=bsNone? 13.12.2004. u 00:01 · pre 266 meseci #10
cekaj: ako te dobro razumem, ti hoces da dragujes formu klikom na neku komponentu posto TitleBar-a vise nema. Napravi dogadjaj OnMouseDown za tu komponentu i upisi kod koji sam ti dao. Recimo napravi slicicu Image1 i Image1OnMouseDown sa tim kodom. Efekat je to sto ces klikom na slicicu mocu da pomeras formu. Mozes i za formu da definises OnMouseDown...
Potpis
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
Re: BorderStyle=bsNone? 13.12.2004. u 01:20 · pre 266 meseci #11
I dalje tvrdim da je WM_NCHITTEST bolje resenje jer ne zahteva nikakve dodatne komponente na formi, a osim title bara mogu se definisati i nove pozicije za bordere (top-left, top, top-right... itd) i windows sam pomera, menja velicinu ili sta vec treba kao da border stvarno postoji + panel i ostale komponente ne mogu biti recimo okrugle (jedino ako ne napravis nekoliko malih panelcica pa ih poredjas u krug), a kada radis hittest mozes da napravis okrugao region koji ce reagovati kao title bar ili nesto drugo. Mozes napraviti proizvoljan oblik za bilo sta.
Potpis
Play Store
Re: BorderStyle=bsNone? 13.12.2004. u 01:51 · pre 266 meseci #13
Otkud znamo da nije komplikovana stvar :P
Salim se. Upravu si. Uvek treba program uraditi sto jednostavnije... tako se lakse debug-uje i lakse kasnije dodaju nove stvarcice. Onda mu u tom kodu jos samo nedostaje da na OnDblClick doda da se forma maximizuje odnosno vrati na pravu velicinu ako je vec bila maximizirana, a to je prilicno lako :)
Potpis
Play Store
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme