Czemu to nie działa?? :( (CombineRgn)

Odpowiedz Nowy wątek
2004-02-21 16:24
0

Mam poniższy kod:
[code]SetWindowRgn(kraje.Handle,CombineRgn(CreateRectRgn(0,0,kraje.Width,kraje.Height),CreateRoundRectRgn(0,0,kraje.Width,kraje.Height,24,24),CreateRectRgn(kraje.Height,0,119,70), RGN_OR), true);
i niestety nie działa.. Czy moglibyście mi powiedzieć co robię nie tak?? "kraje" to listobox. Dzięki


Pozostało 580 znaków

2004-02-21 19:25
0

Nie działa, bo czytasz helpa bez zrozumienia (jeśli w ogóle).

var r:HRGN;
begin
  r:=CreateRectRgn(0,0,kraje.Width,kraje.Height);
  CombineRgn(r,r,CreateRoundRectRgn(0,0,kraje.Width,kraje.Height,24,24),RGN_OR);
  CombineRgn(r,r,CreateRectRgn(kraje.Height,0,119,70),RGN_OR);
  SetWindowRgn(kraje.Handle,r,true);
end;

Zresztą coś mi sie tu nie zgadza... Co ty chcesz w ogóle osiągnąć? Bo do tej pory osiągnąłes standardowy prostokąt wielkości pierwotnego okna. Wykombinowałeś standardowy kształt okna, czyli lepiej byłoby , gdybyś nic nie robił.


Linuksa, czy innego Uniksa, można opisać za pomocą logiki boolowskiej a nie za pomocą prawdopodobieństwa.

'System szesnastkowy jest wspaniały! W skali od 1 do 10 daję mu E'

extreme safety for Ubuntu:
sudo echo -e 'Defaults targetpw\nDefaults timestamp_timeout=0' >> /etc/sudoers

Pozostało 580 znaków

2004-02-21 21:06
-WoJTeK-
0

Chodzi mi o to, żeby listbox(wnętrze) był zaokrąglony, a paski przewijania całe.

Pozostało 580 znaków

2004-02-21 21:23
0
var r:HRGN;
begin
  r:=CreateRoundRectRgn(0,0,kraje.Width-szerpaska_ver,kraje.Height-wyspaska_hor,24,24);
  CombineRgn(r,r,CreateRectRgn(kraje.Width-szerpaska_ver,0,kraje.Width,kraje.Height);,RGN_OR);
  CombineRgn(r,r,CreateRectRgn(0,kraje.Height-wyspaska_hor,kraje.Width,kraje.Height);,RGN_OR);
  SetWindowRgn(kraje.Handle,r,true);
end;

Mozesz sie jeszcze pozbyc kwadracika, w dolnym prawym rogu:

var r:HRGN;
begin
  r:=CreateRoundRectRgn(0,0,kraje.Width-szerpaska_ver,kraje.Height-wyspaska_hor,24,24);
  CombineRgn(r,r,CreateRectRgn(kraje.Width-szerpaska_ver,0,kraje.Width,kraje.Height-wyspaska_hor
);,RGN_OR);
  CombineRgn(r,r,CreateRectRgn(0,kraje.Height-wyspaska_hor,kraje.Width-szerpaska_ver,kraje.Height);,RGN_OR);
  SetWindowRgn(kraje.Handle,r,true);
end;

wyspaska_hor - wysokość paska horyzontralnego (poziomego)
szerpaska_ver - szerokość paska wertykalnego (pionowego)

// I pewnie jeszcze grubość ramki i takie tam trzeba uwzględnić.


Linuksa, czy innego Uniksa, można opisać za pomocą logiki boolowskiej a nie za pomocą prawdopodobieństwa.

'System szesnastkowy jest wspaniały! W skali od 1 do 10 daję mu E'

extreme safety for Ubuntu:
sudo echo -e 'Defaults targetpw\nDefaults timestamp_timeout=0' >> /etc/sudoers

Pozostało 580 znaków

2004-02-21 21:30
0

Dzięki, ale właśnie przy pomocy tej: http://www.republika.pl/delphipl/wyklady/region/region.htm doszedłem do tego. :D
Dziękuję zły obolu :D

//A czy da się zrobić wokół wnętrza listboxa jeszcze powiedzmy czarną ramkę??


Pozostało 580 znaków

2004-02-21 21:48
delphi-master
0

chyba nie.

Pozostało 580 znaków

2004-02-21 22:26
0

Da się... Trzeba albo pobawić sie canvasem (jesli jest), albo zrobić to poprzez api (device context... getdc() i funkcje/procedury z tej grupy). Chyba nawet jest drawellipse(), czy drawrectangle(). To znaczy jest na pewno, ale nie wiem, czy akurat pod tymi nazwami.


Linuksa, czy innego Uniksa, można opisać za pomocą logiki boolowskiej a nie za pomocą prawdopodobieństwa.

'System szesnastkowy jest wspaniały! W skali od 1 do 10 daję mu E'

extreme safety for Ubuntu:
sudo echo -e 'Defaults targetpw\nDefaults timestamp_timeout=0' >> /etc/sudoers

Pozostało 580 znaków

2004-02-21 22:28
0

Jednym słowem dużo roboty.... :( Jak będziesz miał czas to mógłbyś się tym pobawić ??


Pozostało 580 znaków

2004-02-21 22:39
1

Witam wszystkich na forum.

Jak ktoś do tego nie doszedł to prezentuje sprawdzony kod na zaokrąglanie panelu co może być stosowane do róznych komponentów ,a także do formularzy:

http://www.noribo.prv.pl/faq/faq.html
Pytanie: 53

Pozdrawiam Grupa Noribo Częstochowa

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0