FreePascal (FPC) a Lazarus > Obecné

Klavesova zkratka

(1/2) > >>

raul:
Zdarec lidi,
leta jsem nepsal GUI apku a ted badam - delam mikroskopickou aplikacku s jednim tlacitkem a par edity, a rad bych tam dal moznost spustit cosi na stisknuti nejake klavesy - treba Shist+F7 nebo tak. A vubec netusim jak. Event je stejny s tlacitkem, ktere tam je (nekdy disabled), jen je to takovej override toho disabled - fakt to myslim vazne a chci danou akci udelat :)

Poradite ?

Delfin:

--- Citace: raul  13-02-2018, 22:45:36 ---Zdarec lidi,
leta jsem nepsal GUI apku a ted badam - delam mikroskopickou aplikacku s jednim tlacitkem a par edity, a rad bych tam dal moznost spustit cosi na stisknuti nejake klavesy - treba Shist+F7 nebo tak. A vubec netusim jak. Event je stejny s tlacitkem, ktere tam je (nekdy disabled), jen je to takovej override toho disabled - fakt to myslim vazne a chci danou akci udelat :)

Poradite ?

--- Konce citace ---

Predne, pokud je tlacitko disabled, nema vyznam nechavat aktivni klavesovou zkratku. Pokud si za tim vsak stojis, TAction, coz by byla moje rada Ti v takto zmatenem navrhu nepomuze ;) Nicmene dobra, pokud tedy chces klavesovou zkratku pro "kliknuti" na disablovane tlacitko, muzes pouzit napr. komponentu TApplicationEvents a napsat pro ni handler udalosti OnShortCut, napr. pro vytvoreni klavesove zkratky pro celou aplikaci lze napsat:


--- Kód: Delphi ---procedure TForm1.ApplicationEvents1ShortCut(var Msg: TWMKey; var Handled: Boolean);var  ShiftState: TShiftState;begin  if Msg.CharCode = VK_F7 then // pokud je prave stisknuta klavesa F7  begin    ShiftState := KeyDataToShiftState(Msg.KeyData); // "vestaveny" prevod KeyData na TShiftState    if ssShift in ShiftState then // pokud je (i mimo jine modifikacni klavesy) stisknuty Shift    begin      Button1.Click; // vyvola udalost kliknuti na tlacitko nehlede na jeho Enabled stav      Handled := True; // naznaci retezci udalosti ze byla klavesova zkratka zpracovana    end;  end;end;

raul:
Nechci klikat na disablovany tlacitko, na tom netrvam. Tlacitko je disablovane proto, ze neni uplne bezpecne na nej nekdy cvaknout (ci stisknout enter, coz nekdy je ok ale nekdy ne). Kdyz ne, tak tam misto jineho tlacitka (a pripadneho omylu jeho stisku) chci dat prave klavesovou zkratku. Tzn TAction ? Nevim co je na tom zmateneho ? Je to stupid easy utilitka, ktera proste vygeneruje nejake soubory, kde nekdy muze byt v poho je prepsat, ale nekdy ne a to tak, ze vubec - a proto treba ten shift+neco apod to dostatecne zkomplikuje (samozrejme posleze s dotazem).

Ja zel pisu spis ty jaderny veci ci ruzne optimalizace a s GUI prijdu do styku jednou za x let, takze vim prd co se jak pouziva.

raul:
Je to utilitka pro me, takze tady neresim skorem nic, jen se mi proste nechce vypisovat desitky souboru s podobnym obsahem, takze generator. TAction facha - zalozil jsem akci a do jeji obsluhy dal dialog a posleze zavolani onoho generovani.

= Vyreseno pres TAction

== Moc dekuji !

Delfin:
Neni zac. Ale tady jsem se spletl. Mel jsem za to ze jde o Delphi :-[

Navigace

[0] Seznam témat

[#] Další strana

Odpověď

Přejít na plnou verzi