AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Kann man die Maus durch Kommandos bewegen ?
Thema durchsuchen
Ansicht
Themen-Optionen

Kann man die Maus durch Kommandos bewegen ?

Offene Frage von "LingNeu"
Ein Thema von LingNeu · begonnen am 7. Jul 2007 · letzter Beitrag vom 8. Jul 2007
Antwort Antwort
Seite 1 von 2  1 2      
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#1

Kann man die Maus durch Kommandos bewegen ?

  Alt 7. Jul 2007, 17:10
Liebe Delphifans,
Ich habe ein simples Zeichenprogramm über ein Imageobjekt für meine Nichte gemacht ,mit dem ich über die Maus einfache Symbole zeichnen kann.
Jetzt meine Frage:
gibt es eine Möglichkeit, die Mausbewegung und das Drücken der Maustaste zu simulieren (ich habe da zwar einige Artikel hier mit der Suche gefunden, aber es war nicht das passende dabei)?
Ich möchte einige Testsequenzen vorbelegen und dann ablaufen lassen, d.h. z.B. ein beliebiges Zeichenobjekt vorgeben. Meine kleine Nichte hätte dann die Möglichkeit, das nachzuzeichnen.
So ein Code würde sich auch für irgendwelche Werbezwecke anbieten.

Habe schon einiges probiert, ist mir aber leider nicht gelungen.

Die Ereignissprozedure OnMouseDown und OnMouseMove hat ja verschiedene Parameter, die ich übergeben müsste.
Da ich noch ein Newbie bin, hab ich natürlich einige Probleme.

procedure TForm1.ImageMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure TForm1.ImageMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

Vielleicht hat jemand von euch Lust, mir zu helfen.
vielen Dank für jede HIlfe

LingNeu
Wenn man denkt, dann denkt man nur, das man denkt!
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: Kann man die Maus durch Kommandos bewegen ?

  Alt 7. Jul 2007, 17:19
Du kannst mit MSDN-Library durchsuchenSetCursorPos die Mausposition setzen und mit mouse_MSDN-Library durchsuchenevent einen Mausklick simulieren
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Kann man die Maus durch Kommandos bewegen ?

  Alt 7. Jul 2007, 17:49
Hi,

wenn es nur um das Image geht, halte ich das direkte Aufrufen der Ereignisse ohne SetCursorpos usw. für sinnvoller. Das ist auch nicht schwer:
Delphi-Quellcode:
down := point(random(image.width), random(image.height));
move := point(random(image.width), random(image.height));
ImageMouseDown(self, mbLeft, ssLeft, down.x, down.y);
ImageMouseMove(self, ssLeft, move.x, move.y);
ImageMouseUp(self, mbLeft, ssLeft, move.x, move.y);
Der Code müsste eine beliebige Linie auf das Image zeichnen, wenn ich mich nicht irre (ungetestet).
  Mit Zitat antworten Zitat
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Kann man die Maus durch Kommandos bewegen ?

  Alt 7. Jul 2007, 19:09
@jfheins
vielen Dank für Deinen Hinweis!
Habe das mit der API noch nicht probiert und ich kenne das auch noch nicht. Aber irgendwann muss man das auch lernen.

@NamenLozer
ebenfalls vielen Dank für Deinen Code
sieht ja echt cool aus. Habe den Code mal in einem Buttonereignis eingegeben um es zu testen, leider kommt eine Meldung, das inkompatible Tpyen "TPoint und dynamic array" da sind.
Wie muss ich die beiden Variablen deklarieren ?
Wenn ich die beiden als array mit integer deklariere bekomme ich "inkompatible Typen "Array und TPoint"

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
down: array of TPoints;
move: array of TPoints;
begin
down := point(random(image1.width), random(image1.height));
move := point(random(image1.width), random(image1.height));
ImageMouseDown(self, mbLeft, ssLeft, down.x, down.y);
ImageMouseMove(self, ssLeft, move.x, move.y);
ImageMouseUp(self, mbLeft, ssLeft, move.x, move.y);
end;
Besten Dank nochmals!
Lingneu
Wenn man denkt, dann denkt man nur, das man denkt!
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Kann man die Maus durch Kommandos bewegen ?

  Alt 7. Jul 2007, 20:21
Lass mal das array of weg, dann sollte es eigentlich funktionieren.

Delphi-Quellcode:
var
down: TPoint;
move: TPoint;
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Kann man die Maus durch Kommandos bewegen ?

  Alt 7. Jul 2007, 20:43
@dunkel,
danke für den Tipp.
Leider habe ich

Inkompatible Typen 'TShiftState' und 'Enumeration'
bei ssLeft

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
down: TPoint;
move: TPoint;
begin
down := point(random(image1.width), random(image1.height));
move := point(random(image1.width), random(image1.height));
ImageMouseDown(self, mbLeft, ssLeft, down.x, down.y);
ImageMouseMove(self, ssLeft, move.x, move.y);
ImageMouseUp(self, mbLeft, ssLeft, move.x, move.y);
end;
ciao
LingNeu
Wenn man denkt, dann denkt man nur, das man denkt!
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Kann man die Maus durch Kommandos bewegen ?

  Alt 7. Jul 2007, 20:48
Hi,

ImageMouseDown(self, mbLeft, [ssLeft], down.x, down.y); ist es so besser?
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Kann man die Maus durch Kommandos bewegen ?

  Alt 7. Jul 2007, 21:00
hi bitsetter,
danke,jetzt habe ich keine Fehlermeldung mehr.
Allerdings wird nichts gezeichnet

ohje
ciao
LingNeu
Wenn man denkt, dann denkt man nur, das man denkt!
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Kann man die Maus durch Kommandos bewegen ?

  Alt 7. Jul 2007, 21:09
Aber das Zeichnen, wenn Du die Mouse manuell bewegst & die Tasten drückst, funktioniert?
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Kann man die Maus durch Kommandos bewegen ?

  Alt 7. Jul 2007, 21:10
Hast du den Ereignissen onMouseDown und onMouseUp Code hinzugefügt?
Zum Beispiel so:
Delphi-Quellcode:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 image1.Canvas.MoveTo(x,y);
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  image1.Canvas.LineTo(x,y);
end;
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:26 Uhr.
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