Skocz do zawartości

[Delphi] ListBox - Jego tło i tło Itemów


Varcetti

Polecane posty

Dajesz wlasciwosc Style ListBoxa na 'lbOwnerDrawFixed' i w zdarzeniu OnDrawItem:

[code=Delphi]
procedure TForm1.ListBox1DrawItem(Control: TWinControl; In^[YBXX]N]]JNBB$D&FFVvW#Ś&VvFV&ĆT'VffW&VCŁG'V4(4(Ń
ŃQ1Ń ź4(4(
.Style:=bsClear;
try
BMP:=TBitmap.Create;
TYQ[J [Y[[][ÓX^[H[Y[Lć&r6f27G&WF6G&r6G&2DĆ7D&6ĆVŃI 4(ąą4( 5@4(4(4(or i:=0 to Items.Count-1 do
begin
Canvas.Font.CoHB[[X
X
NB[FWDWB\"bŚFV5śFĆwVŚRw77FśRFV4(4(4(4) [/code]

To samo możesz troche zmienic i wywolac w OnCreate jak chcesz miec od razu te tlo

troche nakombinowalem więc bede wdzieczny za "pomógł" wink.gif

Moje projekty: http://wojciechkulik.pl

Link do komentarza
Udostępnij na innych stronach

CYTAT(Max1414)zacytuje mojego kolege z jego kultowym tekstem \"dobry bo działa\" :lol: :lol: :lol: :lol:
Średnie podejście ;) [quote] Przy okazji jak skrócic sciezke zeby nie trzeba bylo podawac nazwy konta aby dostac sie na C:Documents and SettingsProfilPulpit? jakos wiem ze sie wstawia jakby taka windowsoską zmienna za Profil... [/quote]Może tak:
[delphi][/delphi]
? ;)

҉

Link do komentarza
Udostępnij na innych stronach

Powiem tak odnosnie podejscia smile.gif Mnie by osobiscie ten kod nie odpowiadal bo miga, a z canva to bawie sie drugi raz w zyciu pierwszy byl jak robilem kolorowe napisy w listbox smile.gif Inaczej nie potrafie tego zrobic, chcialem pomoc dalem kodzik, gosciu ma juz pomysl, teraz moze to ew. poprawic ;].

hehe odnosnie skrocenia sciezki to nie chodzilo mi o to biggrin.gif:D:D:D
Tylko ze np. podaje sciezke w editcie windowsoskim C:Documents and Settings{Profil}Pulpit i przenosi mnie do profilu aktualnego uzytkownika, ze te profil automatycznie windows zamienia na nazwe aktualnego uzytkownika :] ... no ale i tak juz sie skusilem na GetUserName :]

Moje projekty: http://wojciechkulik.pl

Link do komentarza
Udostępnij na innych stronach

po pierwsze, jak juz komus starasz sie pomoc to staraj sie pomoc dobrze. "Ten program jest slaby i ja o tym wiem ale dziala i dlatego jest dobry" to troche srednie jak dla mnie. tak jak mowi KKKas po ta sa przekazywane parametry do danej procki aby ona robila to co trzeba w sposob wydajny.
Moje zastrzezenia do twojego kodu po kilku zerknieciach oka:
1. W twoim kodzie rysujesz itemy od 0 to count-1 co jest bzdura. Zrob sobie listboxa o wielkosci 5 itemow i dodaj do niego 10 wpisow a pozniej sprobuj przeskrolowac okienko. Twoj kod to uniemozliwia.
2. Skad wiesz ze wysokosc fonta to 16 ? w moim systemie to 14, pobieraj te dane z odpowiedniego pola.
3. Dlaczego wymuszasz kolor fontow w okienku aby byl taki sam jak kolor fontow formy ?
4. Wczytywanie z pliku oraz zwalnianie bitmapy w procedurze rysujacej to jakies nieporozumienie, 4 takie komponenty duzo elementow do narysowania i program umiera.
5. dlaczego uzywasz Text out pomimo ze procedura dostaje cliprecta ? w efekcie moze to prowadzic do mazania po miejscach w ktorych nie powinienes, np na scrollbarze albo na obrzerzach okienka
6. Skoro ustalasz brush na clear jaki sens ma stosowanie proceduty FillRect ?
7. Skoro rysujesz wczesniej bitmape jaki sens ma stosowanie pozniej procedury FillRect ?
8. Wywolanie onDrawItem bedzie dla kazdego elementu po kolei. twoja procedura za kazdym razem narysuje bitmape, oraz wszystkie elementy. W efekce jesli masz na ekranie 10 elementow. Zostanie ona wywolana 10 raz, w kazdym wywolaniu wykona prace za 10. W efekcie samo rysowanie napisow wykonuje dokladnie 90% pracy ktora jest calkowicie bezuzyteczna (powinienes narysowac 10 elementow rysujesz 100). Jesli dorzucic do tego ze za kazdym razem odrysowujesz cala bitmape to wydjanosc spada o kolejne kilka procent.

Co do twojego rozwiazania odnosnie sciezki musze cie zmartwic, bowiem nazwa usera nijak sie ma do sciezek do pulpitu oraz moich dokumentow, po prostu wiekszosc userow nie zmienia defaultowych ustawien. Tak naprawde winda daje ci mozliwosc ustawienia tych dwoch katalogow w dowolnym miejscu na dysku, zeby bylo smieszniej mozesz je przeniesc na dowolny dysk. Korzystaj z odpowiednich funkcji API ktore zwracaja ci odpowiedeni informacje na temat np lokalizacji katalogow.

Always Dark<br />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link do komentarza
Udostępnij na innych stronach

Omg... co za ludzie...
Po pierwsze "dobre bo dziala" to byl zart...
Po drugie mowilem ze sie nie znam na canvie bo drugi raz w zyciu sie z nią bawilem,
Po trzecie mowilem ze inaczej nie umiem tego zrobić i pokazalem kod taki jaki wymyslilem, jak chce go dopracowac to niech juz sam to zrobi bo ja inaczej nie umiem,
Po czwarte kazdy sie kiedys uczyl :/ ale widze ze ty tego nie rozumiesz.
Po piąte nie wiem po co [b]ort! ten twoj post... jak mu sie kod moj przyda to dobrze jak nie to jego sprawa...

Odnosnie sciezki, to co to ma za znaczenie gdzie jest ten folder(o ile mozna zmieniac jego polozenie dowolnie) skoro i tak trzeba znac nazwe usera zeby dostac sie do pulpitu jego...

Moje projekty: http://wojciechkulik.pl

Link do komentarza
Udostępnij na innych stronach

[quote] Przy okazji jak skrócic sciezke zeby nie trzeba bylo podawac nazwy konta aby dostac sie na C:Documents and SettingsProfilPulpit? jakos wiem ze sie wstawia jakby taka windowsoską zmienna za Profil... [/quote]

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerShell Folders 8)

My life for Aiur!

Link do komentarza
Udostępnij na innych stronach

[quote] Omg... co za ludzie...
Po pierwsze \"dobre bo dziala\" to byl zart...
Po drugie mowilem ze sie nie znam na canvie bo drugi raz w zyciu sie z nią bawilem,
Po trzecie mowilem ze inaczej nie umiem tego zrobić i pokazalem kod taki jaki wymyslilem, jak chce go dopracowac to niech juz sam to zrobi bo ja inaczej nie umiem,
Po czwarte kazdy sie kiedys uczyl :/ ale widze ze ty tego nie rozumiesz.
Po piąte nie wiem po co [b]ort! ten twoj post... jak mu sie kod moj przyda to dobrze jak nie to jego sprawa...

Odnosnie sciezki, to co to ma za znaczenie gdzie jest ten folder(o ile mozna zmieniac jego polozenie dowolnie) skoro i tak trzeba znac nazwe usera zeby dostac sie do pulpitu jego... [/quote]Nie spinaj się. Bez nerwów ;) Po prostu post Tostera i mój chciał Ciebie poprawić co zrobiłeś nie tak, i żebyś następnym razem nie popełniał takiego błędu.

҉

Link do komentarza
Udostępnij na innych stronach

Rotfl, wyluzuj wypisalem na co warto zworoci uwage. Kazdy sie kiedys uczyl ale ciezko sie uczyc jak nikt nie chce pomoc. Dlatego wypisalem co jest zle abys w przyszlosci wiedzial na co zwracac uwage. Nie mialem zamiaru ciebie styrac, sorki jesli tak to zrozumiales.

Always Dark<br />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link do komentarza
Udostępnij na innych stronach

OT
[quote] skoro i tak trzeba znac nazwe usera zeby dostac sie do pulpitu jego... [/quote]
a gówno prawda.... jeżeli zależy Ci na dostępie do plików, (tj. bez oglądania tapety) to wystarczy przejść do dysk systemowy:document and settingsnazwa userapulpit

I z tego powodu myślę o zrobieniu jakiegoś progrsa, którzy będzie konntrolował który user ma aktywną sesję, i czy nie grzebie w moich plikach, jak tak to kill

(tj. ja jużraczej z tego nie [b]ort!, bo jak tylko dokońćzęaktualny projekt wywalam wingroze z dysku - a hooka zastąpi mi chmod biggrin.gif )

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

Gość
Temat jest zablokowany i nie można w nim pisać.
×
×
  • Utwórz nowe...