Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

titlebar - iscrtavanje slike po njemu(menjanje boje)

[es] :: Pascal / Delphi / Kylix :: titlebar - iscrtavanje slike po njemu(menjanje boje)

[ Pregleda: 2375 | Odgovora: 3 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

keze
Dragan Kesic
Beograd

Član broj: 41395
Poruke: 11
*.sr.gov.yu.



Profil

icon titlebar - iscrtavanje slike po njemu(menjanje boje)07.12.2004. u 18:06

Treba mi ono sto u naslovi poruke pise ,znaci da se iscrta neka tekstura na titlebar,
ne mogu to da uradim rucno(sakrijem titlebar i napravim svoj,jer mi treba meni ispod toga, a to ne ide)

Hvala unapred.
07.12.2004. u 18:06 

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1402
82.208.201.*

ICQ: 246436949


Profil

icon Re: titlebar - iscrtavanje slike po njemu(menjanje boje)07.12.2004. u 19:53
Zasto ne bi mogao da sakrijes titlebar? :)
Radio sam to odavno, ali sam posle ipak odlucio da je lepse kad moj prozorcic izgleda kao ostatak okruzenja, ali sad nije bitno sta se meni svidja nego sta nama treba ;)

Ja sam to radio ovako:
1. sakrijem toolbar
2. postavim na formu panel (align postavis na top) tako da bude skroz na vrhu i on ce ti predstavljati titlebar;OnMouseDown dogadjaj sredis tako da se forma pomera dok "vuces" taj panel;crtkas po njemu sta hoces + stavljas kontrole za min, max, close...
3. postavis ispod njega ActionMainMenuBar koji ce ti sluziti kao main menu
4. ostatak forme uradis kako zelis :)

Postoji jos jedan nacin, ali onda moras da iscrtavas i titlebar i border uz pomoc Win API-a. Ubacis message handle za WM_NCPAINT i kad god se tvoja funkcija pozove imac DC na koji treba da crtas okvir.
DirectX na srpskom | GLScene na srpskom

There are only 10 types of people in this world; those who understand binary and those who don't.
07.12.2004. u 19:53 

sasas
Saša Slavnić
radim za neke švabe

Član broj: 35478
Poruke: 616
195.246.3.*



Profil

icon Re: titlebar - iscrtavanje slike po njemu(menjanje boje)07.12.2004. u 20:06
Evo mali primer za WM_NCPAINT. Da bi stvar radila, mora se hendlovati i WM_NCACTIVATE, koji sluzi da ti se tvoj caption iscrtava lepo u zavisnosti da li je forma aktivna ili ne.

Deklaracija:

Code:
procedure MyTitleBar(var m: TMessage); message WM_NCPAINT;


Izvedba

Code:

procedure TVeselaForma.MyTitleBar(var m: TMessage);
var
  MyHDC: HDC;
  r: TRect;
begin
  inherited;
  r.Top := 0;
  r.Left := 0;
  r.Bottom := GetSystemMetrics(SM_CYCAPTION); // ovo ti odredjuje visinu caption-a
  r.Right := self.Width;

  self.Canvas.Brush.Style := bsCross;
  self.Canvas.Brush.Color := clRed;
  self.Canvas.Pen.Color := clSilver;

  MyHDC := GetWindowDC(self.Handle); // ne moze self.canvas.handle jer su dimenzije lose
  FillRect(MyHDC, r, self.Canvas.Brush.Handle); //ovo je crtanje po non-client-area
  ReleaseDC(self.Handle, MyHDC); // obavezno osloboditi resurs na kraju

end;


ss.
When something is hard to do, then it's not worth doing.
07.12.2004. u 20:06 

keze
Dragan Kesic
Beograd

Član broj: 41395
Poruke: 11
*.sr.gov.yu.



Profil

icon Re: titlebar - iscrtavanje slike po njemu(menjanje boje)08.12.2004. u 13:25
Trazio sam ovo drugo resenje,preko api-ja ,ali hvala i tebi srki
08.12.2004. u 13:25 

[es] :: Pascal / Delphi / Kylix :: titlebar - iscrtavanje slike po njemu(menjanje boje)

[ Pregleda: 2375 | Odgovora: 3 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.