Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Tastensimulation Frage (https://www.delphipraxis.net/135168-tastensimulation-frage.html)

xxgoodboyxx 5. Jun 2009 21:48


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;

mleyen 5. Jun 2009 21:58

Re: Tastensimulation Frage
 
Zitat:

Zitat von xxgoodboyxx
Da ich mit den Tastensimulationen erst angefangen habe würde ich gerne wissen was an meinem bisherigen Programm falsch ist...

Wie der Compiler sagt, es ist nichts falsch, es funktioniert alles wie es soll.

Ansonsten, falls du wirklich programmieren lernen willst: da
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.

Luckie 5. Jun 2009 23:07

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.

xxgoodboyxx 6. Jun 2009 17:24

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;

toms 6. Jun 2009 18:02

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;

xxgoodboyxx 6. Jun 2009 18:21

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)

quendolineDD 6. Jun 2009 18:47

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:
procedure TForm2.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_F1 then
    ShowMessage('F1 gedrückt');
end;
Funktioniert wunderbar.
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 MSDN-Library durchsuchenSendMessage und MSDN-Library durchsuchenPostMessage.
Könnte es sein, das du die Funktion nicht über den OI sondern manuell eingetragen hast?

xxgoodboyxx 6. Jun 2009 18:56

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.

quendolineDD 6. Jun 2009 18:59

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:
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.
Edit: Da dir anscheinend das Wissen um den Umgang mit der IDE und der Einbindung von Funktionen und Prozeduren fehlt, lege ich dir das Grundlagentutorial ans Herz.

xxgoodboyxx 6. Jun 2009 19:22

Re: Tastensimulation Frage
 
brauche nicht dieses tutorial , da ich in der schule mit informatik unterrichtet werde :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:26 Uhr.
Seite 1 von 3  1 23      

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