Shortcut-Folgen
-
diogenes
- Beiträge: 202
- Registriert: So 11. Jul 2010, 18:39
- OS, Lazarus, FPC: Linux
- CPU-Target: 64 Bit
- Wohnort: Wien
Shortcut-Folgen
In der IDE geht es zum Beispiel, bei gedrückter Strg-Taste nicht nur eine, sondern zwei (oder vielleicht noch mehr?) tasten zu drücken, um etwas auszulösen, z.B. einen ausgewählten Block im Editor auf konsequente Kleinschreibung umzustellen, was mit Ctrl+K,O geschieht. Wie krieg' ich das bei einer Anwendung hin?
Ceterum censeo computatores per Pascal docendos esse.
Re: Shortcut-Folgen
Ich fürchte das geht nicht so out-of-the-box. Musst wahrscheinlich mit OnKeyUp/Down arbeiten.
Ich glaube auch, dass in der IDE nur Synedit das macht, mit dem eigenen Command Processor.
Ich glaube auch, dass in der IDE nur Synedit das macht, mit dem eigenen Command Processor.
-
diogenes
- Beiträge: 202
- Registriert: So 11. Jul 2010, 18:39
- OS, Lazarus, FPC: Linux
- CPU-Target: 64 Bit
- Wohnort: Wien
Re: Shortcut-Folgen
Schade. Un wie wird das bei dem SynEdit gemacht?
Ceterum censeo computatores per Pascal docendos esse.
Re: Shortcut-Folgen
Ich habe keine Ahnung.
Aber die gute Nachricht ist: Du hast sämtlichen Quellcode, sowohl für Synedit wie für die IDE.
Aber die gute Nachricht ist: Du hast sämtlichen Quellcode, sowohl für Synedit wie für die IDE.
Re: Shortcut-Folgen
K.A., wie das in SynEdit implementiert ist, könntest aber auch einfach sowas machen:
Code: Alles auswählen
uses ..., LCLType;
type
{ TForm1 }
TForm1 = class(TForm)
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
FControlKeys: Array of Word;
...
procedure TForm1.FormKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if (Shift = [ssCtrl]) and (Key <> VK_CONTROL) then
begin
SetLength(FControlKeys, Length(FControlKeys) + 1);
FControlKeys[High(FControlKeys)]:=Key;
end
else
SetLength(FControlKeys, 0);
if (Length(FControlKeys) = 2) and
(FControlKeys[0] = VK_K) and
(FControlKeys[1] = VK_O) then
begin
ShowMessage('<CTRL> + <K> + <O> pressed');
SetLength(FControlKeys, 0);
end;
end; Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection; -
Mathias
- Beiträge: 7317
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Shortcut-Folgen
Ich habe es probiert, mit einem Menu geht es.
Die ShortCuts können natürlich auch im Objectinspector angegeben werden.
Kleiner Wermutstropfen im Menu-Eintrag werden Ctrl+K, O vertauscht angezeigt.
So wird es richtig angezeigt, aber es funktioniert nicht.
Die ShortCuts können natürlich auch im Objectinspector angegeben werden.
Code: Alles auswählen
MenuItem2.ShortCut:=TextToShortCut('O');
MenuItem2.ShortCutKey2:=TextToShortCut('Ctrl+K');So wird es richtig angezeigt, aber es funktioniert nicht.
Code: Alles auswählen
MenuItem2.ShortCutKey2:=TextToShortCut('O');
MenuItem2.ShortCut:=TextToShortCut('Ctrl+K');Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Shortcut-Folgen
So wird die Aktion einfach bei jedem "O" ausgelöst. Das ist wohl nicht der Sinn der Sache.Mathias hat geschrieben:Ich habe es probiert, mit einem Menu geht es.
Die ShortCuts können natürlich auch im Objectinspector angegeben werden.Code: Alles auswählen
MenuItem2.ShortCut:=TextToShortCut('O'); MenuItem2.ShortCutKey2:=TextToShortCut('Ctrl+K');
-
Mathias
- Beiträge: 7317
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Shortcut-Folgen
Stimmt, das habe ich gar nicht gemerkt.So wird die Aktion einfach bei jedem "O" ausgelöst. Das ist wohl nicht der Sinn der Sache.
Dafür habe ich festgestellt, das ShortCutKey2 auf keine Art und Weise reagiert.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2906
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Shortcut-Folgen
Was vermutlich im Zusammenhang damit steht, dass die Eigenschaft im Trunk überhaupt nicht mehr vorhanden ist.Mathias hat geschrieben:Dafür habe ich festgestellt, das ShortCutKey2 auf keine Art und Weise reagiert.
0118999881999119725-3
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
Re: Shortcut-Folgen
Bei TMenuItem ist sie noch da. Bei TAction giibt es SecondaryShortCuts. Afaik sind beide aber für Alternativen und nicht für Sequenzen.m.fuchs hat geschrieben: Was vermutlich im Zusammenhang damit steht, dass die Eigenschaft im Trunk überhaupt nicht mehr vorhanden ist.
-
diogenes
- Beiträge: 202
- Registriert: So 11. Jul 2010, 18:39
- OS, Lazarus, FPC: Linux
- CPU-Target: 64 Bit
- Wohnort: Wien
Re: Shortcut-Folgen
Ich seh schon, das werd' ich wohl mit der Hand irgendwie stricken müssen.
Und wie krieg' ich die Anzeige im Menü hin? Wenn ich einfach den Eintragstext mit Tabulator und, sagen wir, "STRG+K,O" erweitere, werden die Erweiterungen nicht rechtsbündig angezeigt, sondern nur mit einem Abstand vom eigentlichen Text.
Und wie krieg' ich die Anzeige im Menü hin? Wenn ich einfach den Eintragstext mit Tabulator und, sagen wir, "STRG+K,O" erweitere, werden die Erweiterungen nicht rechtsbündig angezeigt, sondern nur mit einem Abstand vom eigentlichen Text.
Ceterum censeo computatores per Pascal docendos esse.
-
Mathias
- Beiträge: 7317
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Shortcut-Folgen
Ich wollte in den Lazarus Code der IDE gucken.
Weis jemand wie die Komponente heisst, dort wo das Menü und die Komponenten-leiste ist ?
Im Menu Bearbeiten hat es auch solche Doppel-ShortCuts.
Weis jemand wie die Komponente heisst, dort wo das Menü und die Komponenten-leiste ist ?
Im Menu Bearbeiten hat es auch solche Doppel-ShortCuts.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
martin_frb
- Beiträge: 610
- Registriert: Mi 25. Mär 2009, 21:12
- OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
- CPU-Target: mostly 32 bit
Re: Shortcut-Folgen
Soweit ich mich erinnere, reicht die IDE die keystrokes einfach an SynEdit durch, und kriegt das Ergebnis dann in einem Event OnCommandProcess / OnUserCommandProcess oder aehnlich)
keystrokes ide/*key*.pas
menu: search for TIDEMenuItem
keystrokes ide/*key*.pas
menu: search for TIDEMenuItem
-
diogenes
- Beiträge: 202
- Registriert: So 11. Jul 2010, 18:39
- OS, Lazarus, FPC: Linux
- CPU-Target: 64 Bit
- Wohnort: Wien
Re: Shortcut-Folgen
Danke. Ich schau mir's an.
Ceterum censeo computatores per Pascal docendos esse.
-
Mathias
- Beiträge: 7317
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Shortcut-Folgen
Ich habe den ganzen Lazarus-Ordner, inklusive Datei-Inhalt, nach TIDEMenuItem durchsucht.menu: search for TIDEMenuItem
Konnte aber nichts finden.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot