AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Manuelle Roboter Steuerung - Button und Cursortasten
Thema durchsuchen
Ansicht
Themen-Optionen

Manuelle Roboter Steuerung - Button und Cursortasten

Ein Thema von CDI · begonnen am 13. Jan 2016 · letzter Beitrag vom 14. Jan 2016
 
CDI

Registriert seit: 13. Jan 2016
2 Beiträge
 
Delphi 10 Seattle Architect
 
#1

Manuelle Roboter Steuerung - Button und Cursortasten

  Alt 13. Jan 2016, 22:49
Hallo,

ich bin neu hier im Forum und wollte gleich mal mit Fragen starten.

Ich bau gerade eine GUI für ein Project, hierdrüber wird ein Fischertechnik Roboter über eine KI gesteuert [Fahr Bewegungen].
Da wir auch eine Manuelle Steuerung realisieren wollen, bin ich gerade dabei diese zu bauen.

In der VCL habe ich 6 Buttons [Links_Vor / Vor / Rechts_Vor / Links_Zurück / zurück / Rechts_zurück]
Der Roboter fährt immer so lange bis er einen neuen Befehl erhält (leider vorgegeben, nicht zu ändern).


ERSTE FRAGE:

Ich habe 6x OnMouseDown-Event, dabei fährt er jeweils in die entsprechende Richtung.
Außerdem 6x OnMouseUp-Event, hierbei wird ein Stopp Befehl gesendet.

Code:
procedure TForm_Roboter_GUI.Button_Manuell_Rechts_ZurueckMouseDown(
  Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  Robo.BewegenEiner(2,-Speed);
  Robo.BewegenEiner(1,round(-speed/10));
end;

procedure TForm_Roboter_GUI.Button_Manuell_Rechts_ZurueckMouseUp(
  Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  Roboter_Stopp;
end;

procedure TForm_Roboter_GUI.Button_Manuell_VorMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  Robo.BewegenAlle(speed,speed);
end;

procedure TForm_Roboter_GUI.Button_Manuell_VorMouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  Roboter_Stopp;
end;

...
D.h. ich habe schon 12 proceduren... wobei 6 mal wirklich genau das selbe ausgeführt wird.
Kann ich das anders lösen und in weniger Proceduren zusammenfassen???


ZWEITE FRAGE:

Ich möchte es auch realisieren das ich den Roboter mit den Cursortasten meiner Tastatur lenken kann.
Ich habe angefangen mit FormKeyDown abzufragen welche taste gedrückt wird, die abfrage ist auch kein Problem.

Code:
procedure TForm_Roboter_GUI.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  case Key of
    VK_UP : Button_Manuell_VorMouseDown;
    VK_DOWN : Button_Manuell_ZurueckMouseDown;
  end;

end;
Bricht so natürlich mit Fehlermeldung "Nicht genügend wirkliche Parameter" ab.
Was für Parameter muss ich da noch hinter schreiben damit ich die MouseDown-Events auch so ausführen kann, damit das funktioniert, fals ich das überhaupt so machen kann?

Ich hoffe ich habe das klar und verständlich beschrieben, und das man mir hier helfen kann

mfg
CDI
  Mit Zitat antworten Zitat
 


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 12:39 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 by Thomas Breitkreuz