| Autor |
Beitrag |
Xion
      

Beiträge: 1952
Erhaltene Danke: 128
Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
|
Verfasst: So 09.05.10 11:56
Alles quatsch ^^
Du hast doch irgendwo stehen
Delphi-Quelltext 1:
| MousePos: array of TPoint; |
jetzt schreibst du stattdessen
Delphi-Quelltext 1:
| MousePos: array of TMousePosData; |
und schon kannst du per MousePos[x].Button:=mbLeft z.B. die linke Taste zuweisen
_________________ a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
|
|
Stread 
      
Beiträge: 188
Win 7
Delphi XE
|
Verfasst: So 09.05.10 19:33
|
|
Bergmann89
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: So 09.05.10 19:57
Hey,
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| type TMouseButton = (mbLeft, mbRight, mbDouble); TMouseButtons = set of TMouseButton;
TMouseData = record Pos: TPoint; Button: TMouseButtons; end;
var MouseButtons: TMouseButtons; MouseData: array of TMouseData;
procedure TForm1.FormDblClick(Sender: TObject); begin MouseButtons := MouseButtons + [mbDouble]; end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin case Button of mbLeft : MouseButtons := MouseButtons + [mbLeft]; mbRight: MouseButtons := MouseButtons + [mbRight]; end; end;
procedure TForm1.TimerAufzeichnenTimer(Sender: TObject); var L: Integer; begin L:=Length(MouseData); SetLength(MouseData, L+1); MouseData[L].Pos := Mouse.CursorPos; MouseData[L].Button := MouseButtons; MouseButtons := []; end; |
Ich hab das TMouseButton mal noch im ein Set erweitert, jetz kannst du da alle Buttons rein haun, die du brauchst. Wenn auf die Form geklickt wird, dann speichert er in MouseButtons, welche Buttons gedrückt wurden und schreibt sie dann wenn der Timer zuschlägt in dein Array. Für das Abspielen machste dir jetzt mal selber Gedanken, eig is es ja das gleich, bloß rumgedreht
MfG Bergmann
_________________ Ich weiß nicht viel, lern aber dafür umso schneller^^
|
|
Stread 
      
Beiträge: 188
Win 7
Delphi XE
|
Verfasst: So 09.05.10 20:48
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: So 09.05.10 20:53
Also Bergmanns Version wirst du doch noch mit deiner kombinieren können. Wenn nicht das brich das Projekt vorläufig mal ab und widme dich denk Grundlagen des Programmierens in Delphi. Ansonsten könnten wir ja gleich das ganze Programm für dich schreiben...
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 09.05.10 21:05
Wenn der Timer genau vor und nach dem Mausklick ausgelöst wird, dann bemerkt dein Tool so aber auch nix von dem Klick. Und bei der Länge eines Mausklicks ist die Wahrscheinlichkeit dafür relativ hoch.
Die einzige Möglichkeit wirklich alle Klicks mitzubekommen führt über Hooks. Das Thema ist aber für dich vermutlich definitiv zu schwierig. Deshalb ist die Prüfung zum Zeitpunkt des Timerereignisses wohl dennoch das Sinnvollste.
|
|
|