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: 4317 | Odgovora: 3 ] > FB > Twit

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 - pre 235 meseci
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.
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: titlebar - iscrtavanje slike po njemu(menjanje boje)07.12.2004. u 19:53 - pre 235 meseci
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.
 
Odgovor na temu

sasas
Saša Slavnić
radim za neke švabe

Član broj: 35478
Poruke: 617
195.246.3.*



Profil

icon Re: titlebar - iscrtavanje slike po njemu(menjanje boje)07.12.2004. u 20:06 - pre 235 meseci
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.
 
Odgovor na temu

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 - pre 235 meseci
Trazio sam ovo drugo resenje,preko api-ja ,ali hvala i tebi srki
 
Odgovor na temu

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

[ Pregleda: 4317 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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