Cursor/fi

From Free Pascal wiki

Deutsch (de) English (en) suomi (fi)


Kohdistin eli kursorin määritellään Cursor - ominaisuudella TCursor objektilla.

Luettelo kohdistimen vakion nimistä

Vakion nimi Kokonaisluku arvo Kuvio
crDefault 0 crArrow.png
crNone -1 Näkymätön hiiren osoitin
crArrow -2 crArrow.png
crCross -3 crCross.png
crIBeam -4 crIBeam.png
crSize -22 crSize.png
crSizeNESW -6 crSizeNESW.png
crSizeNS -7 crSizeNS.png
crSizeNWSE -8 crSizeNWSE.png
crSizeWE -9 crSizeWE.png
crUpArrow -10 crUpArrow.png
crHourGlass -11 crHourGlass.png
crDrag -12 crDrag.png
crNoDrop -13 crNoDrop.png
crHSplit -14 crHSplit.png
crVSplit -15 crVSplit.png
crMultiDrag -16 crMultiDrag.png
crSQLWait -17 crSQLWait.png
crNo -18 CrNo.png
crAppStart -19 crAppStart.png
crHelp -20 crHelp.png
crHandPoint -21 crHandPoint.png



Esimerkit

Esimerkki 1: Näytä kaikki kohdistimen tyypit

(1) Lomakkeella Form1, vedä ja pudota ComboBox komponentti lomakkeelle.

(2) Laita ComboBox1:n Items (TStrings) kohtaan seuraavat merkkijonot:

crAppStart
crArrow
crCross
crDefault
crDrag
crHandPoint
crHelp
crHourGlass
crHSplit
crIBeam
crMultiDrag
crNo
crNoDrop
crNone
crSizeAll
crSizeNESW
crSizeNS
crSizeNWSE
crSizeWE
crSQLWait
crUpArrow
crVSplit


(3) Lisää ComboBox1Change tapahtuman käsittelijään seuraava koodi:

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
     Cursor := StringToCursor(ComboBox1.Text);
end;

Näin voidaan valita kohdistimen tyyppi ComboBoxista ja nähdä sen, kun hiirtä siirretään lomakkeella. Vain kun se siirretään ComboBoxin päälle, kohdistin palaa oletusarvoon (crDefault).


Esimerkki 2: Vaihda objektien kohdistin

procedure TForm1.FormCreate(Sender: TObject);
begin
     Cursor := crHourGlass;
     // Vaihtaa lomakkeen kursorin tiimalasiksi

     Button1.Cursor := crHourGlass;
     // Vaihtaa Button1-painikkeen kursorin tiimalasiksi.

     Memo1.Cursor := crHourGlass;
     // Vaihtaa Memo1:n kursorin tiimalasiksi.
end;


Esimerkki 3:Vaihtaa kaikkien muiden kontrollien tiimalasiksi lasiksi, paitsi TBitBtn-kontrollien

procedure TForm1.FormCreate(Sender: TObject);
var
   I: Integer;
begin
     Cursor := crHourGlass;
     for I := 0 to ControlCount - 1 do
     begin
          if (Controls[I].ClassType <> TBitBtn) then
             Controls[I].Cursor := crHourGlass;
     end;
end;

Jos käytössä on kuitenkin GroupBox, niin sen kontrollit olisi käsiteltävä sen sisällä erikseen.

procedure TForm1.FormCreate(Sender: TObject);
var
   I: Integer;
begin
     Cursor := crHourGlass;
     for I := 0 to ControlCount - 1 do
     begin
          if (Controls[I].ClassType <> TBitBtn) then
             Controls[I].Cursor := crHourGlass;
     end;
     for I := 0 to GroupBox1.ControlCount - 1 do
     begin
          if (GroupBox1.Controls[I].ClassType <> TBitBtn) then
             GroupBox1.Controls[I].Cursor := crHourGlass;
     end;
end;

Edellä esitetyllä esimerkillä, jossa oli käytössä Form1, sekä muita lomakkeen konrolleja kuten Memo, Edit, Image, BitBtn, jne. Tämä muuttaisi kaikki muut kuin BitBtn kontrollien kohdistimet tiimalasiksi. On olemassa konrolleja kuten TGroupBox, TPanel, joka toimii erillisinä "kontteina" muille konrolleille ja näiden kohteiden on oltava osoitteesta erillään päälomakkeesta, jotta niiden sisäistä ohjausta voidaan muuttaa toiseen kohdistimeen ajonaikaisesti.