AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

F10 abfangen

Ein Thema von janjan · begonnen am 11. Feb 2003 · letzter Beitrag vom 11. Feb 2003
Antwort Antwort
Seite 1 von 2  1 2      
janjan

Registriert seit: 16. Jan 2003
Ort: Bonn ("links über Königswinter ")
240 Beiträge
 
Delphi 4 Standard
 
#1

F10 abfangen

  Alt 11. Feb 2003, 13:53
ich fange in meinem programm die tastendrücke folgendermaßen ab:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Memo1: TMemo;
    procedure WMKey(var Message: TWMKey); message WM_KEYDOWN;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.WMKey(var Message: TWMKey);
begin
  form1.Caption:=inttostr(message.CharCode);
end;
end.
das klappt soweit bei allen tasten die ich brauche, nur F10 verweigert die zusammenarbeit. normalerweise kommt man mit F10 in den meisten programmen ins menü, in meinem programm gibts aber kein menü, was mach ich falsch?
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 11. Feb 2003, 13:57
Starte mal das Programm ausserhalb der Delphi-Umgebung. Wahrscheinlich (hoffentlich) funktioniert es dann ohne Probleme. Delphi hat einen global Hook auf der F10 Taste, da Deine App aber im Delphi-Debugger läuft, kann es zu "Interferenzen" kommen.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3
  Alt 11. Feb 2003, 14:03
Stimmt damit wird das Menü aktiviert.

Aber du machst es sowieso etwas umstaändlich:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_F10 then
    ShowMessage('Hello world');
end;
Eventuell noch KeyPreview auf TRUE stellen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
janjan

Registriert seit: 16. Jan 2003
Ort: Bonn ("links über Königswinter ")
240 Beiträge
 
Delphi 4 Standard
 
#4
  Alt 11. Feb 2003, 14:14
danke für die antworten, aber so richtig klappts immer noch nicht.

@luckie: ich weiß das das umständlich ist, aber ich hatte das erst so gemacht wie du es vorgeschlagen hast. als das nicht klappte, hab ichs mit dem TWMKey probiert, leider mit dem selben ergebnis.


wenn ich einmal F10 drücke muss ich eine andere taste zweimal drücken damit dieser erkannt wird

ob Keypreview auf true oder false steht ist egal, bei beiden passiert das selbe.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5
  Alt 11. Feb 2003, 14:17
Weil F10 von Windows vorbelegt wird. Probier meinen Code mal mit F12 aus. Bei mir tut er es zu mindest ohne weiteres. Aus der IDe sogar mit F10.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
janjan

Registriert seit: 16. Jan 2003
Ort: Bonn ("links über Königswinter ")
240 Beiträge
 
Delphi 4 Standard
 
#6
  Alt 11. Feb 2003, 14:26
hm, komisch:

-wenn ichs mit dem TWMKey mache, dann muss ich nach einmal F10 drücken eine andere taste zweimal drücken damit ich an deren wert komme.

-wenn ich mit dem FormKeyDown mache, dann muss ich nach einmal F10 drücken nochmal F10 drücken um andere tasten abzufragen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7
  Alt 11. Feb 2003, 14:31
Einmal F10 Fentermenü aktiviert, zweimal F10 Fenstermenü wieder deaktiviert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#8
  Alt 11. Feb 2003, 14:32
Ändere mal Deine Procedure
Delphi-Quellcode:
procedure TForm1.WMKey(var Message: TWMKey);
begin
  form1.Caption:=inttostr(message.CharCode);
end;
nach
Code:
procedure TForm1.WMKey(var Message: TWMKey);
begin
  form1.Caption:=inttostr(message.CharCode);
  [color=#ff0008]inherited;[/color]
end;
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
janjan

Registriert seit: 16. Jan 2003
Ort: Bonn ("links über Königswinter ")
240 Beiträge
 
Delphi 4 Standard
 
#9
  Alt 11. Feb 2003, 14:32
ups
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10
  Alt 11. Feb 2003, 14:33
Nimm eine andere Taste oder probier sakuras Code aus.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 02:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz