![]() |
Tastensimulation Frage
Hallo ich wollte mal einen Bot programmieren.
Da ich mit den Tastensimulationen erst angefangen habe würde ich gerne wissen was an meinem bisherigen Programm falsch ist... Ich bekomme keine Fehlermeldung ; er zeigt mir lediglich die Showmessage nicht an :(
Code:
procedure TForm1.FormCreate(Sender: TObject);
begin keypreview:=true; pressed := 0 end; TKeyEvent = procedure TForm1.FormOnKeyPress(Sender: TObject; var Key: Word; Shift: TShiftState)of Object; property OnKeyDown: TKeyEvent; begin if key = VK_F1 then Pressed:=1; If Pressed=1 then Showmessage('Gut'); end; |
Re: Tastensimulation Frage
Zitat:
Ansonsten, falls du wirklich programmieren lernen willst: ![]() Der Rest ist Google -/ Forensuche. Bots sind insgesamt ungern gesehen und oft auch strikt verboten, daher solltest du nicht vorraussetzten, das irgendwer dir was vorkaut. |
Re: Tastensimulation Frage
Wird denn Pressed auch auf 1 gesetzte? Und formatier mal deinen Quellcode gescheit. Es erhöht auch die Lesbarkeit, wenn man sich auf eine Schreibweise der Schlüsselwörter festlegt.
|
Re: Tastensimulation Frage
danke erstmal für die antworten...
Ja sry , aber es ist eine gute Aufgabe meine Delphi Kenntnisse in Tastensimulationen zu verbessern. Aber wieso bekomm ich keine Message ausgespuckt? Keine Ahnung ob Pressed den Wert 1 erhält ... Hier nochmal der formatierte Quelltext:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin keypreview:=true; pressed := 0 end; TKeyEvent = procedure TForm1.FormOnKeyPress(Sender: TObject; var Key: Word; Shift: TShiftState)of Object; property OnKeyDown: TKeyEvent; begin if key = VK_F1 then Pressed:=1; If Pressed=1 then Showmessage('Gut'); end; |
Re: Tastensimulation Frage
Was ist denn das??
Delphi-Quellcode:
TKeyEvent = procedure TForm1.FormOnKeyPress(Sender: TObject; var Key: Word;
Shift: TShiftState)of Object; property OnKeyDown: TKeyEvent; |
Re: Tastensimulation Frage
hmm ich hab mir die delphi hilfe angeschaut und da stand des so
wenn ich es so mache funktioniert es auch nicht
Delphi-Quellcode:
procedure TForm1.FormOnKeyPress(Sender: TObject; var Key: Word;
Shift: TShiftState) |
Re: Tastensimulation Frage
Was benutzt du für eine Delphiversion? Bei mir gibt es nur OnKeyDown, OnKeyPress und OnKeyUp.
Das sieht dann ungefähr so aus:
Delphi-Quellcode:
Funktioniert wunderbar.
procedure TForm2.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if Key = VK_F1 then ShowMessage('F1 gedrückt'); end; Das hat jedoch bisher wenig mit Tastensimulation zu tun, da du ja bisher nur auf einen Tastendruck reagierst. Um deinem Thementitel gerecht zu werden gebe ich dir mal das Stichwort ![]() ![]() Könnte es sein, das du die Funktion nicht über den OI sondern manuell eingetragen hast? |
Re: Tastensimulation Frage
hi hmm ich verstehe deine Frage nicht...
benutze delphi 7 und dein code funktioniert bei mir ebenfalls nicht :( ich habe grade gesehen , dass ich wieso auch immer weiter oben ein " end." stehen hatte. Dadurch wurde der Text danach einfach ignoriert. Nachdem ich dieses jedoch entfernte wurde ich mit fehlermeldungen zugespamt... Zb. Undefinierter Bezeichner FormCreat oder Keypreview... Hier mal mein kompletter code :
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Panel1: TPanel; private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; Pressed:integer; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin keypreview:=true; pressed := 0 end; procedure TForm2.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_F1 then ShowMessage('F1 gedrückt'); end; end. |
Re: Tastensimulation Frage
Du scheinst die Zeilen einfach eingefügt zu haben. Gehe mal in deinen Objektinspektor (Standard-IDE links unten) und wähle deine Form aus. Nun gehst du auf den Reiter Ereignisse und suchst dir das OnKey-Ereignis aus, welches du benutzten willst und klickst in das leere Feld rechts daneben doppelt. Nun müsstest du dich im Quelltexteditor befinden mit dem Cursor in einer neuen Procedur.
Dürfte dann ca. so aussehen:
Delphi-Quellcode:
Edit: Da dir anscheinend das Wissen um den Umgang mit der IDE und der Einbindung von Funktionen und Prozeduren fehlt, lege ich dir das
unit Unit2;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm2 = class(TForm) procedure FormKeyPress(Sender: TObject; var Key: Char); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form2: TForm2; implementation {$R *.dfm} procedure TForm2.FormKeyPress(Sender: TObject; var Key: Char); begin end; end. ![]() |
Re: Tastensimulation Frage
brauche nicht dieses tutorial , da ich in der schule mit informatik unterrichtet werde :D
|
Re: Tastensimulation Frage
Hi,
na wenn du das so siehst, solltest du dich vielleicht auch erst damit beschäften nachdem du unterrichtet wurdest. Es gibt halt nicht viel Sinn etwas machen zu wollen, wenn die Grundlagen fehlen. Daher auch mein Tip: Schau dir das Tutorial ruhig an, schaden wirds nicht (und je nach Schule/Lehrer hast du damit vielleicht sogar mehr Wissen) |
Re: Tastensimulation Frage
hmmm komisch hab alles verbessert und nun bekomm ich in dieser zeile " inkompatible typen" angezeigt:
Delphi-Quellcode:
if Key = VK_F1 then
|
Re: Tastensimulation Frage
Zitat:
Zitat:
|
Re: Tastensimulation Frage
ja auf char... macht der aber automatisch wenn ich die onkey methode auswähle :P
|
Re: Tastensimulation Frage
Delphi-Quellcode:
if Ord(Key) = VK_F1 then
|
Re: Tastensimulation Frage
funktioniert auch nicht :( ich werde noch wahnsinnig... :D
mein bisheriger quellcode lautet :
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm1 = class(TForm) Panel1: TPanel; procedure FormCreate(Sender: TObject); procedure FormKeyPress(Sender: TObject; var Key: Word;Shift: TShiftState); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; pressed : Integer; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin keypreview:=true; pressed := 0 end; procedure TForm1.FormKeyPress(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Ord(Key) = VK_F1 then ShowMessage('F1 gedrückt') ; end; end. |
Re: Tastensimulation Frage
Das Formular reagiert sio nicht auf Tasten.
Ich würde es mit der Registrierung eine hotkey versuchen. zB. mit TJvApplicationHotKey aus der JVCL |
Re: Tastensimulation Frage
mhh wieso geht es denn so nicht?
|
Re: Tastensimulation Frage
Zitat:
zu OnKeyPress steht u.a.: Zitat:
|
Re: Tastensimulation Frage
ah okay danke :P
wie könnte ich es denn anders machen , sodass es funktioniert? |
Re: Tastensimulation Frage
|
Re: Tastensimulation Frage
Zitat:
|
Re: Tastensimulation Frage
edit : funktioniert nun wunderbar , danke an euch alle :)
|
Re: Tastensimulation Frage
Nun meine nächste Frage: Diese Methode funktioniert nur ,wenn das Programm im Vordergrund läuft.
Da es jedoch ein Bot werden soll ist dies weniger nützlich. Wie kann ich also das Programm so verändern , sodass ich auch während des Spiels Tasten drücken kann und der Bot darauf reagiert? |
Re: Tastensimulation Frage
Zitat:
|
Re: Tastensimulation Frage
ihr habt mir so viel geholfen da könnt ihr mir doch auch noch den letzten Schritt geben...
Ich bin wenigstens ehrlich :P |
Re: Tastensimulation Frage
Zitat:
* * * G E S C H L O S S E N * * * |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:04 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