Jak przypisać skrót shift+<

0

Ktoś wie jak tego dokonać w MainMenu lub ogólnie w programie aby po tych klawiszach wykonywał odpowiednią procedurę ?
Za żadne skarby nie mogę uporać się z taką kombinacją klawiszy

0
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
{$WARN COMPARING_SIGNED_UNSIGNED OFF}
  if (Shift = [ssShift]) and (Key = VkKeyScan((','))) then
    ShowMessage('Działa.');
end;
0

z ciekawosci zaczalem szukac czym jest wlasciwie typ TShortCut.
znalazlem:

TShortCut = Low(Word)..High(Word);

tylko ze nie lapie tej budowy, moze to ktos wyjasnic?
i jak np z poziomu kodu przypisac do tego skrot?

//znalazlem fajne funkcje:

function ShortCut(Key: Word; Shift: TShiftState): TShortCut;
begin
  Result := 0;
  if WordRec(Key).Hi <> 0 then Exit;
  Result := Key;
  if ssShift in Shift then Inc(Result, scShift);
  if ssCtrl in Shift then Inc(Result, scCtrl);
  if ssAlt in Shift then Inc(Result, scAlt);
end;

procedure ShortCutToKey(ShortCut: TShortCut; var Key: Word; var Shift: TShiftState);
begin
  Key := ShortCut and not (scShift + scCtrl + scAlt);
  Shift := [];
  if ShortCut and scShift <> 0 then Include(Shift, ssShift);
  if ShortCut and scCtrl <> 0 then Include(Shift, ssCtrl);
  if ShortCut and scAlt <> 0 then Include(Shift, ssAlt);
end;

a wracajac do samego pytania.... reczne wpisanie z klawiatury frazy: "Shift+," i wcisniecie Enter powoduje przypisanie skrotu wiec nie wiem w czym problem...
i nie wiem czemu pytasz o "<" skoro to jest to samo co Shift+przecinek.

0

Boże... jaki ja jestem głupi...
Ja uporczywie próbowałem wklepać shift+< a nie pomyślałem i nawet do głowy mi nie przyszło, że to jest to samo co shift+,

Dzięki :)

0

TShortCut = Low(Word)..High(Word);
tylko ze nie lapie tej budowy, moze to ktos wyjasnic?

typ zakresowy, od wartości low(word) do wartości high(word) - czyli od 0 do 65535, w rezultacie po prostu word.
podobnie można:

type cyfra = 0..9;
     tsign = -1 ..+1;

a ile taka zmienna zajmuje? tyle co najblizszy typ „prawdziwy”, czyli w powyższych wypadkach byte

 i <code noframe>shortint

.
więc po co to? żeby lepiej wyrazić nasze intencje, poza tym możemy włączyć kontrolę zakresów {$R+} i będzie nam się ładnie wysypywać po przekroczeniu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1