Varcetti Napisano Sierpień 8, 2006 Zgłoś Share Napisano Sierpień 8, 2006 A więc tak: - dodaję do listboxa tło tą procką: [code=Delphi] var b: TBitmap; begin b:=Tbitmap.Create; b.loadfromfile('[ZY]^ ĘNBK]XHB [/code]No i jest wszystko dobrze tylko tło itemów jest białe a nie przezroczyste... Jak to rozwiązać? Screen: Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Sierpień 8, 2006 Zgłoś Share Napisano Sierpień 8, 2006 ustawiasz style na ownedDraw i przeciazasz metode OnDrawItem, a w niej robisz rysowanie tego kawalka ktory jest podany w parametrze jako rect.Od razu mowie ze trzeba niezle pokombinowac aby dobrze dzialalo scrollowanie Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Max1414 Napisano Sierpień 8, 2006 Zgłoś Share Napisano Sierpień 8, 2006 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 tlotroche nakombinowalem więc bede wdzieczny za "pomógł" Moje projekty: http://wojciechkulik.pl Link do komentarza Udostępnij na innych stronach More sharing options...
KKKas Napisano Sierpień 8, 2006 Zgłoś Share Napisano Sierpień 8, 2006 Po co w OnDraw przerysowujesz wsystkie itemy ? Przecież OnDrawItem jest wywoływane dla każdego z osobna i masz numer tego itema w parametrze Index. ҉ Link do komentarza Udostępnij na innych stronach More sharing options...
Max1414 Napisano Sierpień 8, 2006 Zgłoś Share Napisano Sierpień 8, 2006 jak ich nie odmalujesz to bedzie widoczny tylko zaznaczony Moje projekty: http://wojciechkulik.pl Link do komentarza Udostępnij na innych stronach More sharing options...
KKKas Napisano Sierpień 8, 2006 Zgłoś Share Napisano Sierpień 8, 2006 Bo powinieneś bitmapę załadować przy starcie programu np a później tylko CopyRect w OnDrawItem.Strasznie mało optymalny ten Twój kod ;) ҉ Link do komentarza Udostępnij na innych stronach More sharing options...
Max1414 Napisano Sierpień 8, 2006 Zgłoś Share Napisano Sierpień 8, 2006 zacytuje mojego kolege z jego kultowym tekstem "dobry bo działa" 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... Moje projekty: http://wojciechkulik.pl Link do komentarza Udostępnij na innych stronach More sharing options...
KKKas Napisano Sierpień 8, 2006 Zgłoś Share Napisano Sierpień 8, 2006 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 More sharing options...
Max1414 Napisano Sierpień 8, 2006 Zgłoś Share Napisano Sierpień 8, 2006 Powiem tak odnosnie podejscia 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 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 :D:D:DTylko 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 More sharing options...
Toster Napisano Sierpień 9, 2006 Zgłoś Share Napisano Sierpień 9, 2006 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 okienka6. 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 /> Link do komentarza Udostępnij na innych stronach More sharing options...
Max1414 Napisano Sierpień 9, 2006 Zgłoś Share Napisano Sierpień 9, 2006 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 More sharing options...
krajew4 Napisano Sierpień 9, 2006 Zgłoś Share Napisano Sierpień 9, 2006 [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 More sharing options...
Varcetti Napisano Sierpień 9, 2006 Autor Zgłoś Share Napisano Sierpień 9, 2006 [quote] To samo możesz troche zmienic i wywolac w OnCreate jak chcesz miec od razu te tlotroche nakombinowalem więc bede wdzieczny za \"pomógł\" Wink [/quote]Hmm... Uniemożliwia scrollowanie ale dam "pomógł" bo szanuje czyjąś robotę... Link do komentarza Udostępnij na innych stronach More sharing options...
Max1414 Napisano Sierpień 9, 2006 Zgłoś Share Napisano Sierpień 9, 2006 dzieki nastepnym razem jak cos postaram sie bardziej Teraz nie mialem za bardzo czasu bo w sobote wyjezdzam i jeszcze spiesze sie ze swoim progsem ;] Moje projekty: http://wojciechkulik.pl Link do komentarza Udostępnij na innych stronach More sharing options...
KKKas Napisano Sierpień 9, 2006 Zgłoś Share Napisano Sierpień 9, 2006 [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 More sharing options...
Toster Napisano Sierpień 9, 2006 Zgłoś Share Napisano Sierpień 9, 2006 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 /> Link do komentarza Udostępnij na innych stronach More sharing options...
Max1414 Napisano Sierpień 9, 2006 Zgłoś Share Napisano Sierpień 9, 2006 Ok, wporzo niestety tak to zrozumialem ... no to w takim razie dzieki :] Moje projekty: http://wojciechkulik.pl Link do komentarza Udostępnij na innych stronach More sharing options...
ktoś Napisano Sierpień 9, 2006 Zgłoś Share Napisano Sierpień 9, 2006 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 userapulpitI 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 ) Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.