http://www.swissdelphicenter.ch/torry/showcode.php?id=2133 i to działa elegancko.
Ale chciałbym aby po najechaniu kursorem na pasek rozmiaru przy kolumnie kursor nie
zmieniał się na strzałki (do zmiany rozmiaru) tylko pozostał standardowy. Szukałem już
w google, kombinowałem w Timerze ze Screen.Cursor := crDefault; jednak po tym, jak
najeżdzałem na kolumne kursor i tak się zmienia. Czy i jak można jakoś temu zaradzić?
Podmień ikonkę kursora w zasobach na standardową.
to usunie ten kursor w całym programie, więc nie jest to najlepsze rozwiązanie.
Dzięki Opi za sugestie, ale tego kursora nie widzę w ResHacku w zasobach. Jest on podobny do
crHSplit ale ma pojedyńczą wąską kreskę między dwoma strzałkami poziomymi. Jednak dla testu
podmieniłem go na kursor rączki (crHandPoint), ale po uruchomieniu programu i najechaniu na
linie oddzielającą kolumny nadal jest ten sam kursor, więc jest on raczej w systemie, może ktoś
z Was ma jakieś inne pomysły jak by go podmienić. Najlepiej poprzez kod, żeby nie babrać się
po kompilacji w edycję zasobów tylko w trakcie działania programu podmienić go na np. zwykły.
Może spróbuj poszukać w źródłach samego komponentu?
Używam Delphi 7 Personal i z tego co widzę nie ma żadnych źródeł do komponentu ListView do instalacji.
a zrob sobie zmienna typu TListView, przytrzymaj ctrl i kliknij napis TListView, powinna Ci sie otworzyc nowa karta, na której zaznaczona będzie klasa TListView.
Nic takiego się nie dzieje dałem var Cosik : TListView; i zaznaczyłem TListView, kliknąłem na napis
TListView trzymając wciśnięty Ctrl i nic to nie dało. Jesteś pewny że pod Delphi 7 Perosnal to działa?
hmm, dziwne, a sprobuj to samo zrobic np na typie TStringList, jesli zadziala, znaczy ze jednak nie dali zrodel tego komponentu, wtedy mozesz uzyc jego odpowiednika z JVCL (Jedi Visual Code Library)
pozdrawiam
Również to nic nie dało. A kombinowałem jeszcze z ListView i dawałem wyświetlanie na Form.Caption
pozycji kursora w zdarzeniu OnMouseMove dla ListView i co się okazuje, kiedy poruszamy kursorem
nad belką z nazwami kolumn, zdarzenie nie zachodzi. Czyli tak belka to jakiś Panel albo coś w tym
stylu tworzone dynamicznie na ListViewie. Przeglądałem pobieżnie źrodła modułu Comctrls dołączone
do Delphi 3 - Professional, ale nie widze tam nigdzie ustawiania kursora dla belki kolumn ListView'a.
A skoro nie da się nic zaradzić, to daruje sobie kombinowanie, niech ten kursor będzie skoro musi ;/
ale do odpowiednika z JVCL dostaniesz pelne zrodla, wiec mozesz odnalezc konkretna linijke kodu i usunac ja, tylko jest troche zabawy z szukaniem.
ciekawi mnie dlaczego to nie dziala, a ktory ctrl naciskales? prawy czy lewy? mi to smiga z lewym ctrl + klikniecie (po najechaniu myszki przy trzymaniu lewego ctrl myszka powinna sie zmienic na raczke i napis pod nia powinien zmienic kolor)
Oczywiście z lewym Ctrl klikam, nie zmienia się kursor. Może to kwestia np. jakiegoś dodatkowego
wpisu w Rejestrach tak jak dla uzyskania polskich znaków diakrytycznych po wciśnięciu klawiszy z
AltGr albo coś trzeba w opcjach środowiska może ustawić? Mi jedynie kursor zmienia się w strzałkę
z karteczką kiedy najade na jakiś tekst i przytrzymam lewy przycisk myszki - moge przesuwać tekst.
U mnie po kliknięciu na Ctrl+LPM pokazuje się okienko:
Moża ta informacja do czegoś Ci się przyda.:) Delphi 2009
czyli u ciebie to dziala, tylko nie moze znalezc tego pliku, wiec zapewne nie dali zrodel komponentow
Nie ma pliku ComCtrls.pas jest tylko ComCtrls.dcu ;)
I nic dziwnego ze u mnie nie działa ten motyw z Controlem. Ze screena wnioskuje że Wy mace Turbo
Delphi CodeGeara, a ja mam jeszcze Delphi 7 - Personal Borlanda, przy którym to wole pozostać :)
no ja akurat mam Delphi 7 Personal i mi jakos to dziala, dlaczego Tobie nie to nie wiem
nie szukajcie tej ikony. ona jest gdzieś w zasobach windowsa (może comctl32.dll?). komponent nie jest napisany w delphi tylko wprowadzany z comctl32.dll (zbiór Common Controls), więc nic nie zmienicie.