Poste doch mal den Code der zum '+' fuehrt.
Ein Test:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls;
type
TForm1 =
class(TForm)
Edit1: TEdit;
SpeedButton1: TSpeedButton;
procedure SpeedButton1Click(Sender: TObject);
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
keybd_event(VK_SHIFT, MapVirtualKey(VK_SHIFT, 0), 0, 0);
keybd_event(Ord('
A'), MapVirtualKey(Ord('
A'), 0), 0, 0);
keybd_event(Ord('
A'), MapVirtualKey(Ord('
A'), 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_SHIFT, MapVirtualKey(VK_SHIFT, 0), KEYEVENTF_KEYUP, 0);
end;
end.
Dieser generiert im Editfeld ein grosses A. Kommentiert man dir VK_SHIFT-Zeilen aus, so generiert es ein kleines a.
Die Vermutung es gaebe ein VK_a ist falsch. Die Vermutung Ord('A') erzeuge ein 'A' ist falsch.
Man muss hier beachten das die VK_-Konstanten die Taste einer US-Tastatur benennen. Tastaturen sind aber immer in Grossbuchstaben benannt.
Das Druecken einer Taste generiert aber keinen Grossbuchstaben sondern einen Kleinbuchstaben.
Zum Spass teste das Programm mit auskommentierten VK_SHIFT-Zeilen und CAPS LOCK aktiv. Du bekommst ein grosses A.