AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Memo-Schriftgröße verändern per Tastenkombination
Thema durchsuchen
Ansicht
Themen-Optionen

Memo-Schriftgröße verändern per Tastenkombination

Ein Thema von DevidEspenschied · begonnen am 9. Mär 2018 · letzter Beitrag vom 12. Mär 2018
Antwort Antwort
DevidEspenschied

Registriert seit: 7. Sep 2006
Ort: Berlin
444 Beiträge
 
Delphi 12 Athens
 
#1

Memo-Schriftgröße verändern per Tastenkombination

  Alt 9. Mär 2018, 17:39
Hallo,

ich möchte gerne die Möglichkeit schaffen, die Schriftgröße in einem Memo per Tastenkombination zu vergrößern bzw. verkleinern.

Zum Vergrößern habe ich Strg + (Plus Nummernblock) vorgesehen, zum Verkleinern Strg - (Minus Nummernblock).

Mein erster Ansatz war eine ActionList, aber leider existiert bei den ShortCuts diese Tastenkombination nicht.

Sicher könnte ich zwei Buttons erstellen, die die gleiche Funktionalität haben, aber aus Platzgründen wollte ich das gerne per Tastenkombination lösen.

Hat jemand evtl. eine Idee, wie ich das elegant hinbekomme? Danke für Eure Antworten...
Devid
Devid Espenschied
Pre-sales Consultant
Embarcadero Germany GmbH
germany.info@embarcadero.com

Kein Support per PN
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.555 Beiträge
 
Delphi 7 Professional
 
#2

AW: Memo-Schriftgröße verändern per Tastenkombination

  Alt 9. Mär 2018, 17:54
Actionlist + Shortcut ist schon ok.

Nur die von Dir gewählte Tastenkombination funktioniert nicht.

Strg++ und Strg+- klappen nicht in jedem Kontext.

Im Objektinspektor kann man beim Shortcut das Gewünschte eingeben, auch wenn es nicht in der Auswahlliste enthalten ist.

strg+umsch+alt++ oder strg+umsch+alt+- sollte eingegeben werden können, nur ob's auch funktioniert, weiß ich nicht.

Für die Vergrößerung bzw. die Verkleinerung der Schrift hab' ich mir angewöhnt Strg+F11 bzw. Strg+F12 zu nehmen und das einheitlich bei allen meinen Programmen. Funktioniert klaglos.
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.087 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Memo-Schriftgröße verändern per Tastenkombination

  Alt 10. Mär 2018, 02:50
Ich mache solche Sachen gerne im Form.OnShortcut.

Beispiel:
Delphi-Quellcode:
procedure TMain.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
var Key:TShortCut; Shift:TShiftState;
begin
   Shift:=[ssShift,ssCtrl,ssAlt]*KeyDataToShiftState(Msg.KeyData);
   Key:=Msg.CharCode;
   if Shift=[ssCtrl] then begin
      case Key of
         VK_Add : ShowMessage('Plus');
         VK_Subtract : ShowMessage('Minus');
         else Exit;
      end;
      Handled:=True;
   end;
end;
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Memo-Schriftgröße verändern per Tastenkombination

  Alt 10. Mär 2018, 10:28
Noch eine Möglichkeit:

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (ssCtrl in Shift) and (chr(Key) in ['A', 'a']) then ShowMessage('Ctrl-A pressed!');
end;
Einfach ein KeyDown Event in deiner Edit-Komponente hinzufügen, den Key noch abändern und was dann passieren soll.
In diesem Beispiel, wer hätte es gedacht, wird nur auf STRG+A reagiert.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.087 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Memo-Schriftgröße verändern per Tastenkombination

  Alt 10. Mär 2018, 11:33
Noch eine Möglichkeit:

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (ssCtrl in Shift) and (chr(Key) in ['A', 'a']) then ShowMessage('Ctrl-A pressed!');
end;
Einfach ein KeyDown Event in deiner Edit-Komponente hinzufügen, den Key noch abändern und was dann passieren soll.
In diesem Beispiel, wer hätte es gedacht, wird nur auf STRG+A reagiert.
Und wenn das Memo gerade nicht den Fokus hat?
Deshalb lieber das KeyDown-Event der Form verwenden. Und Form.KeyPreview=True setzen.
Es ist auch nicht nötig auf 'a' zu prüfen, denn Key bezeichnet die Taste auf der Tastatur.
Und es ist nicht nur überflüssig sondern auch falsch.
Wenn nämlich Chr(Key)='a' ist, dann wurde die 1 auf dem Ziffernblock gedrückt.
Auch nur zu prüfen of ssCtrl in Shift enthalten ist, ist nicht ausreichend, bzw. führt zu vermutlich unerwarteten Ereignissen.
Stell dir vor du wolltest z.B. auf Ctrl-E reagieren.
Nun schreibst du deinen Text, und um ein '€' (Euro) zu tippen drückst du AltGr-E.
In dem Fall ist ssCtrl ebenfalls in Shift enthalten, denn AltGr ist ja im Prinzip [ssCtrl,ssAlt]
Aus diesem Grund: if [ssShift,ssCtrl,ssAlt]*Shift=[ssctrl] then ...
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.555 Beiträge
 
Delphi 7 Professional
 
#6

AW: Memo-Schriftgröße verändern per Tastenkombination

  Alt 10. Mär 2018, 12:01
Deshalb nehme ich für sowas 'ne TActionList. Da muss ich mir weder über Ereignisse noch das Wo noch irgendwelche Tastaturkombinationen und deren Nebenwirkungen Gedanken machen. Und es funktioniert im gesamten Programm.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz