Okay, da haben wir doch schon das Problem. Wenn du auf einen Button klickst, erstellt dir die Entwicklungsumgebung automatisch eine Prozedur, welche beim einem Event (nämlich dem Klick auf den Button) ausgeführt wird. Diese Prozedur muss zunächst deklariert werden, also wird dem Compiler gesagt "Hallo, dieses Forumlar besitzt eine Methode, die so und so heißt, und folgende Parameter besitzt". Dies ist im oberen Teil der Fall:
procedure Button1Click(Sender: TObject);
Später kommt dann die Implementierung der Prozedur, also die eigentliche Umsetzung, der Quelltext, der ausgeführt werden soll.
Dafür erstellt dir die Entwicklungsumgebung eine leere Prozedur, (die genauso heißen muss, wie vorher in der Deklaration)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
end;
Diese hast du aber gelöscht. Der Compiler sieht also die Deklaration im oberen Teil deiner
Unit, aber findet die Umsetzung, also die Implementierung nicht. Deswegen gibt es einen fehler.
//edit:
Du könntest das ganze z.B. so lösen:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 =
class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure SendKeyString(KStr:
String);
var
Scan: SHORT;
key: Byte;
i: Integer;
begin
for i := 0
to length(KStr)
do begin
key := Byte(Kstr[i]);
Scan := MapVirtualKey(key, 0);
keybd_event(key, Scan, 0, 0);
keybd_event(key, Scan, KEYEVENTF_KEYUP, 0);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SendKeyString('
test');
end;
end.
In diesem Beispielcode würde beim Klick auf den Button die Prozedur SendKeyString aufgerufen und der String 'test' übergeben.