Ĺadny brzuch
Jak można zrobić, aby dało się przeciągać zakładki(np. z trzeciej pozycji na pierwszą) tak jak to jest w Firefoxie lub w Delphi tam gdzie są komponenty do wybrania
musisz dać obsługę zakładki onmousedown (chyba nie pamiętam :D ) i wniej wrzucić jakąś graficzną rezprezentację przeciąganej zakładki
a na opuszczenie dać obsługę
całego kontrola żeby go przebudował i przerysował :D
to znaczy musisz się dobrać do zakłądek PageControla i pozmieniać im indeksy :)
Użytkownik j-mail edytował ten post 26 luty 2006, 18:47
musisz dać obsługę zakładki onmousedown (chyba nie pamiętam :D ) i wniej wrzucić jakąś graficzną rezprezentację przeciąganej zakładki
a na opuszczenie dać obsługę
całego kontrola żeby go przebudował i przerysował :D
to znaczy musisz się dobrać do zakłądek PageControla i pozmieniać im indeksy :)
Ma ktoś inne propozycje, jakieś komponenty(jeśli nie to sobię chyba odpuszcze) :(
bosh. Przecież to nie jest takie trudne. :/
po kolei to robisz tak ;)
tworzysz dynamicznie jedną zakładkę.
następnie jak przeciągasz którąś to zapisujesz jej indeks (w zmiennej). następnie sprawdzasz czy tam gdzie ją opuszczono indeks jest mniejszy czy większy od tego zapamiętanego. jeżeli jest większy to robisz tak. przeciąganą zakładkę wrzucasz w dynamiczną. następnie wszystkie od indeksu + 1 zmieniasz im indeks na o jeden mniejszy. jak dojdziesz do tego gdzie masz wrzucić wkładasz tam tą zapamietana zakładkę i przerysowujesz komponent. (chyba będzie PageControl.ReDraw bosh jak ja dawno z dephi nie korzystałem :D ) albo sam to zrobi nie pamietam.
W drugą stronę możesz sam sobie wymyślić ;)
....
lycon -> dopbra postaram się to wytłumaczyć prościej :D
na początek deklarujemy zmienne nam potrzebne
cos : Zakladka; i, i2:integer;
klikasz zakładkę :D
zapisujesz jej indeks w zmiennej :D
a samą zakładkę ładujesz do zmiennej typu zakładka ;P
onzakladkaClick i: indexZakladki cos := zakladka[i]
teraz na puszczenie przycisku myszysz sprawdzasz nad która zakładką była mysza :D
i2 := indexZakladkiNadKtoraJestMysz :D
i teraz proste ;)
if (i<i2) then begin for j:= i+1 to i2 do zakladka{j].index := zakladka{j].index - 1; end else begin for j:= i-1 downto i2 do zakladka{j].index := zakladka{j].index + 1; end;
i na zakończenie ładujesz swoją zakładkę ze zmiennej do konkretnej w pagecontrol :D
zakladka[i2] := cos
teraz jaśniej ;) ?
następnie sprawdzasz czy tam gdzie ją opuszczono...
No właśnie... A jak sprawdzić gdzie ją opuszczono??
ej no chyba mi nie powiesz że nie przejrzałeś metod tabsheet'ów :|
przeciez ma metody ondragdrop onenddrag onstartdrag ondragover :|
wymyśl której użyć ;)
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
musisz dać obsługę zakładki onmousedown (chyba nie pamiętam :D ) i wniej wrzucić jakąś graficzną rezprezentację przeciąganej zakładki
a na opuszczenie dać obsługę
całego kontrola żeby go przebudował i przerysował :D
to znaczy musisz się dobrać do zakłądek PageControla i pozmieniać im indeksy :)
Użytkownik j-mail edytował ten post 26 luty 2006, 18:47
musisz dać obsługę zakładki onmousedown (chyba nie pamiętam :D ) i wniej wrzucić jakąś graficzną rezprezentację przeciąganej zakładki
a na opuszczenie dać obsługę
całego kontrola żeby go przebudował i przerysował :D
to znaczy musisz się dobrać do zakłądek PageControla i pozmieniać im indeksy :)
Ma ktoś inne propozycje, jakieś komponenty(jeśli nie to sobię chyba odpuszcze) :(
bosh. Przecież to nie jest takie trudne. :/
po kolei to robisz tak ;)
tworzysz dynamicznie jedną zakładkę.
następnie jak przeciągasz którąś to zapisujesz jej indeks (w zmiennej). następnie sprawdzasz czy tam gdzie ją opuszczono indeks jest mniejszy czy większy od tego zapamiętanego. jeżeli jest większy to robisz tak. przeciąganą zakładkę wrzucasz w dynamiczną. następnie wszystkie od indeksu + 1 zmieniasz im indeks na o jeden mniejszy. jak dojdziesz do tego gdzie masz wrzucić wkładasz tam tą zapamietana zakładkę i przerysowujesz komponent. (chyba będzie PageControl.ReDraw bosh jak ja dawno z dephi nie korzystałem :D ) albo sam to zrobi nie pamietam.
W drugą stronę możesz sam sobie wymyślić ;)
....

lycon -> dopbra postaram się to wytłumaczyć prościej :D
na początek deklarujemy zmienne nam potrzebne
cos : Zakladka; i, i2:integer;
klikasz zakładkę :D
zapisujesz jej indeks w zmiennej :D
a samą zakładkę ładujesz do zmiennej typu zakładka ;P
onzakladkaClick i: indexZakladki cos := zakladka[i]
teraz na puszczenie przycisku myszysz sprawdzasz nad która zakładką była mysza :D
i2 := indexZakladkiNadKtoraJestMysz :D
i teraz proste ;)
if (i<i2) then begin for j:= i+1 to i2 do zakladka{j].index := zakladka{j].index - 1; end else begin for j:= i-1 downto i2 do zakladka{j].index := zakladka{j].index + 1; end;
i na zakończenie ładujesz swoją zakładkę ze zmiennej do konkretnej w pagecontrol :D
zakladka[i2] := cos
teraz jaśniej ;) ?
następnie sprawdzasz czy tam gdzie ją opuszczono...
No właśnie... A jak sprawdzić gdzie ją opuszczono??
ej no chyba mi nie powiesz że nie przejrzałeś metod tabsheet'ów :|
przeciez ma metody ondragdrop onenddrag onstartdrag ondragover :|
wymyśl której użyć ;)