Label mit den Pfeiltasten der Tastatur bewegen???

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Noob1994
Beiträge: 11
Registriert: Mo 28. Jun 2010, 12:12
OS, Lazarus, FPC: Ubuntu10.10 x86 (Lazarus: 0.9.28.2Beta FPC 2.2.4)
CPU-Target: 32bit

Label mit den Pfeiltasten der Tastatur bewegen???

Beitrag von Noob1994 »

Hallo weiß jemand mit welchen befehlen man den label sagen kann , dass wenn ich jetzt z.b die rechte pfeiltaste der tastatur drücke
das er dann z.b beim jeden drücken der taste 2 schritte in die entsprechende richtung geht ich habe es schon mit folgenden befehlen ausprobiert:

Label1.left := 500

Mit diesen befehl springt er dann aber zu Position 500

Kann mir da jemand helfen??? :?:

Benutzeravatar
theo
Beiträge: 10871
Registriert: Mo 11. Sep 2006, 19:01

Re: Label mit den Pfeiltasten der Tastatur bewegen???

Beitrag von theo »

Noob1994 hat geschrieben: Mit diesen befehl springt er dann aber zu Position 500
Was soll er denn sonst tun?
Wie wär's mit:
Label1.Left:=Label1.Left+ZweiSchritte;

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Label mit den Pfeiltasten der Tastatur bewegen???

Beitrag von pluto »

Ach ja, die Pfeiltasten kannst du z.b. im OnKeyDown Event deines Froms abfangen.
Die Konstanten wie VK_Left, VK_Right, VK_Down, VK_UP solltest du in der unit: lcltype finden.

hier mal ein kleines Beispiel für nach Links Springen:

Code: Alles auswählen

case Key of
  vk_Left: Label1.left:=Label1.left-10;
end;
Wobei du hier noch Prüfen solltest ob z.b. Label1.Left-10 nicht kleiner als 0 ist.
MFG
Michael Springwald

Noob1994
Beiträge: 11
Registriert: Mo 28. Jun 2010, 12:12
OS, Lazarus, FPC: Ubuntu10.10 x86 (Lazarus: 0.9.28.2Beta FPC 2.2.4)
CPU-Target: 32bit

Re: Label mit den Pfeiltasten der Tastatur bewegen???

Beitrag von Noob1994 »

thx für die antworten

Noob1994
Beiträge: 11
Registriert: Mo 28. Jun 2010, 12:12
OS, Lazarus, FPC: Ubuntu10.10 x86 (Lazarus: 0.9.28.2Beta FPC 2.2.4)
CPU-Target: 32bit

Re: Label mit den Pfeiltasten der Tastatur bewegen???

Beitrag von Noob1994 »

und wie kann man jetzt z.b Label2 dazu bringen das es wie eine mauer ist z.b Label1 kommt von rechts an label2 und label1 kann nicht durch label2 also wie eine mauer
weiss jemand wie es geht.

Ich hatte so was mal in der schule gehabt aber mit visual basic.

Würde mich auf antworten freuen^^

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Label mit den Pfeiltasten der Tastatur bewegen???

Beitrag von Socke »

Vor jedem Verschieben überprüfst du, ob Label1 nach dem Verschieben Label2 überschneidet und dann passt du den Wert, um den verschoben wird an (ggf. auf 0 setzen).
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Label mit den Pfeiltasten der Tastatur bewegen???

Beitrag von pluto »

Wenn du die Unit "lclintf" hinzufügen würdest, könntest du auf die Funktion ptInRect zurückgreifen. Ich denke, der Aufruf ist selbst erklärend. Wenn das schon mal in VBS gemacht hast: Genau sogeht das auch hier nur mit anderen Anweisungen *G*

Beide "Objekte" müssen von PTinRect geprüft werden. Wobei Vielleicht wäre für dich die Funktion "IntersectRect" besser geeignet.
MFG
Michael Springwald

Noob1994
Beiträge: 11
Registriert: Mo 28. Jun 2010, 12:12
OS, Lazarus, FPC: Ubuntu10.10 x86 (Lazarus: 0.9.28.2Beta FPC 2.2.4)
CPU-Target: 32bit

Re: Label mit den Pfeiltasten der Tastatur bewegen???

Beitrag von Noob1994 »

was ist die "lclintf" unit???? und wo?

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Label mit den Pfeiltasten der Tastatur bewegen???

Beitrag von Socke »

Vielleicht solltest du mal ein Delphi-Tutorial durcharbeiteten: http://www.delphi-treff.de/tutorials/grundlagen/

Zu der Frage:
Eine Pascal-Unit ist eine Quelltext-Datei. Diese beginnt mit dem Schlüsselwort "unit" und dem Namen der unit (steht meistens in der ersten Zeile). Über diesen Namen kann man aus einer Unit eine andere einbinden. Suche also in der Unit mit deinem Formular nach dem Wort "uses". Nach diesem Schlüsselwort werden die eingebundenen Units (jeweils ein Komma dazwischen) aufgezählt und du kannst diese dann benutzen. Füge dort einfach die Unit "LCLIntf" hinzu.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Noob1994
Beiträge: 11
Registriert: Mo 28. Jun 2010, 12:12
OS, Lazarus, FPC: Ubuntu10.10 x86 (Lazarus: 0.9.28.2Beta FPC 2.2.4)
CPU-Target: 32bit

Re: Label mit den Pfeiltasten der Tastatur bewegen???

Beitrag von Noob1994 »

ok ich sehe mir dann das tutorial an

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Re: Label mit den Pfeiltasten der Tastatur bewegen???

Beitrag von creed steiger »

Hier gibts jede Menge Freepascal/Lazarus Video Tutorials:
http://www.youtube.com/user/SchoolFreeware#p/a" onclick="window.open(this.href);return false;

Petermaennchen
Beiträge: 5
Registriert: Mo 27. Sep 2010, 19:16

Re: Label mit den Pfeiltasten der Tastatur bewegen???

Beitrag von Petermaennchen »

ja sogeht's:

//zm Bsp. keypreview aktiviert

Code: Alles auswählen

Const distanz : byte = 10;
begin
.
.
case key of
..
  vkleft: if Label1.left - (distanz) > label2.left +label2.width then
               Label1.left:= Label1.left - distanz
             else
               Label1.left := Label2.left + Label2.width +1;  //oder annulieren  
..
end;
Gruß

Peter

Noob1994
Beiträge: 11
Registriert: Mo 28. Jun 2010, 12:12
OS, Lazarus, FPC: Ubuntu10.10 x86 (Lazarus: 0.9.28.2Beta FPC 2.2.4)
CPU-Target: 32bit

Re: Label mit den Pfeiltasten der Tastatur bewegen???

Beitrag von Noob1994 »

ok jetzt versuche ich z.b label2 als hinderniss für label1 also das label das ich bewege zu benutzen.

z.b wenn das bewegliche labe(label1) gegen das unbewegliche(label2) kommt soll label1 nicht durch label 2 gehen können von allen seiten also so wie das spiel sokoban :mrgreen:

kann mir da jemand helfen???

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Label mit den Pfeiltasten der Tastatur bewegen???

Beitrag von pluto »

Warum möchtest du unbedingt Komponenten dafür verwenden ? Aber gut, es geht natürlich auch.

Du müsstest erst die AutoSize Eigenschaft auf False stellen. Dann bräuchtest du eine Funktion, die Prüft ob sich die Labels "zu nahe" kommen.
MFG
Michael Springwald

Noob1994
Beiträge: 11
Registriert: Mo 28. Jun 2010, 12:12
OS, Lazarus, FPC: Ubuntu10.10 x86 (Lazarus: 0.9.28.2Beta FPC 2.2.4)
CPU-Target: 32bit

Re: Label mit den Pfeiltasten der Tastatur bewegen???

Beitrag von Noob1994 »

ich habe versucht eine variable z.b Dim sperre und Dim Mauersteine einzubauen aber irgendwie klappt das nicht könnt ihr mir da irgendwie helfen :|

Antworten