|
We własnej aplikacji możemy zmienić kursor myszy na jeden ze standardowych lub całkowicie własny. Każdy komponent sterujący oraz formatka zawiera właściwość Cursor, która określa wygląd kursora myszy dla danego komponentu. Domyślną wartością jest crDefault, co oznacza, że dla danego elementu sterującego kursor przyjmuje wygląd standardowy (np. dla pola edycyjnego pionowa kreska). Jeśli zmienimy wartość właściwości dla danego komponentu, to kursor zmieni wygląd tylko wtedy, kiedy znajdzie się nad tym komponentem. Podobnie jest z formatką: kursor zmieni wygląd tylko nad obszarem formatki nie przykrytym przez element sterujący (niezablokowany). Do zmiany wartości właściwości Cursor używamy stałych wymienionych w tabeli. Wygląd kursorów dla poszczególnych stałych można znaleźć w Pomocy dla właściwości Cursor dowolnego komponentu. property Cursor: TCursor; TCursor = -32768..32767; Stałe do określania kursora myszy (dla właściwości Cursor). crDefault crSizeNESW crDrag crNo crNone crSizeNS crNoDrop crAppStart crArrow crSizeNWSE crHSplit crHelp crCross crSizeWE crVSplit crHandPoint crIBeam crUpArrow crMultiDrag crSize crHourGlass crSQLWait Jeśli chcemy zmienić wygląd kursora globalnie w całej aplikacji, to musimy użyć właściwość Cursor obiektu Screen. Do zmiany wartości również używamy stałych wymienionych w tabeli. Zmiana kursora jest uwzględniana we wszystkich oknach danej aplikacji, oprócz standardowych okien systemu Windows (np. Otwórz plik, małe okna dialogowe otwierane za pomocą funkcji). Najlepiej odpowiednią instrukcję do zmiany kursora umieścić w metodzie obsługi zdarzenia OnCreate dla formatki: procedure TForm1.FormCreate(Sender: TObject);
begin
Screen.Cursor := crCross;
end;
Własny kursor myszy należy najpierw utworzyć za pomocą edytora zasobów (np. Image Editor). Zasoby są przechowywane w plikach z rozszerzeniem RES i mogą zawierać: ikony, bitmapy oraz kursory. Ikony i bitmapy można w aplikacjach Delphi używać bezpośrednio z plików ICO i BMP, natomiast kursorów myszy nie można wyciągnąć bezpośrednio z pliku CUR. Najpierw należy utworzyć plik zasobu RES, a następnie utworzyć w tym pliku nowy kursor (Resource|New|Cursor). Dobrze jest też zmienić domyślną nazwę kursora Cursor1 na inną (my nazwaliśmy KRZYZ). Plik zasobów należy dodać do projektu aplikacji za pomocą następującego wpisu, najlepiej w pliku projektu: {$R ZASOBY.RES} Tak utworzony kursor myszy dodajemy do aplikacji za pomocą właściwości Cursors obiektu Screen. Właściwość ta jest tablicą zawierającą uchwyty do wszystkich kursorów dostępnych w aplikacji. Aby dodać nowy kursor, należy do tablicy wpisać uchwyt obiektu kursora. property Cursors[Index: Integer]: HCursor; Standardowe kursory są indeksowane od zera w dół. Dla naszego kursora tworzymy stałą identyfikującą o wartości większej od zera. const crMojKrzyz = 2; Do pobrania kursora z zasobów używamy funkcji Win32API LoadCursor, która tworzy obiekt kursora i zwraca do niego uchwyt. Ten nowy uchwyt zapisujemy w tablicy Cursors na pozycji ustalonej przez naszą stałą. Jeśli zmienimy wartość właściwości Cursor na stałą crMojKrzyz, to kursor myszy przyjmie nasz własny wygląd. procedure TForm1.FormCreate(Sender: TObject); begin Screen.Cursors[crMojKrzyz] := LoadCursor (HInstance, 'KRZYZ'); Screen.Cursor := crMojKrzyz; end; Tak utworzony kursor nie należy samodzielnie usuwać za pomocą funkcji DestroyCursor. Aplikacja robi to automatycznie. ...powrót |