Wie kann ich Modifikatortasten erfassen, während eine Delphi app starten einige Verhalten zu zwingen,

StackOverflow https://stackoverflow.com/questions/207212

  •  03-07-2019
  •  | 
  •  

Frage

Ich bin eine Anwendung in Delphi zu schreiben, die eine SQLite3 Datenbank verwendet. Ich möchte in der Lage sein, die Anwendung zu starten, während einiger Zusatztasten wie STRG + SHIFT gedrückt halten, Neu-Initialisierung der Datenbank zu signalisieren.

Wie kann ich erfassen, dass die Anwendung gestartet wurde, während diese Tasten gehalten wurden?

War es hilfreich?

Lösung

Tim hat die richtige Antwort, aber Sie könnten ein wenig mehr Rahmen brauchen:

procedure TForm56.Button1Click(Sender: TObject);
begin
  if fNeedReinit then
    ReinitializeDatabase;
end;

procedure TForm56.FormCreate(Sender: TObject);
begin
  fNeedReinit := False;
end;

procedure TForm56.FormShow(Sender: TObject);
begin
 fNeedReinit := (GetKeyState(VK_SHIFT) < 0) and (GetKeyState(VK_CONTROL) < 0);
end;

Ändern Button1Click mit Ihrem späteren Ereignisse, das überprüft, ob fNeedReinit eingestellt wurde. Sie können auch KeyPreview auf dem Hauptformular setzen, wenn Sie Schwierigkeiten haben, den Tastenhub zu fangen. Getestet habe ich nur den obigen Code und es funktioniert, aber wenn Sie einen Begrüßungsbildschirm, etc. haben, dann könnte es die Dinge ändern.

Andere Tipps

if (GetKeyState(VK_SHIFT) < 0) and (GetKeyState(VK_CONTROL) < 0) then
  ReinitializeDatabase;

Versuchen Sie eine GetAsyncKeyState , < a href = "http://msdn.microsoft.com/en-us/library/ms646301(VS.85).aspx" rel = "nofollow noreferrer"> GetKeyState oder

Sie müssen Tastatur Haken in Ihrer Anwendung erfassen. Here und dann die Haken verarbeiten, bevor Sie das Hauptformular zeigen - zum Beispiel vor dem Create und Ausführen in der dpr Datei

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top