ERLEDIGT
NEIN
NEIN
ANTWORTEN
15
15
ZUGRIFFE
2149
2149
EMPFEHLEN
-
hi alle zusammen
ich hätte mal wieder ne frage! Wie kann ich eine Label z.B mit Hilfe der Pfeiltasten bewegen, wie Lese ich die Tastaur aus? Gibs so was wie GetKey ? also das man das Label um 1 pixel verschiebt 
plz mit Quellcode ;D
Danke Im vorraus
-
25.04.08 23:22 #2
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
Hi,
die VCL hab ich zwar immer nur mit Delphi verwendet, aber gibts für TForm nicht ein Ereignis wie KeyPress (o.ä.), auf das du reagieren kannst? In dem Fall kannst du ja einfach die Koordinaten des Labels neu setzen.
Grüße, D."You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse
-
mhhh also ich habe mal so in der Hilfe mich schlau gemacht und da steht das so:
Code :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
TColor FormColor; void __fastcall TForm1::FormCreate(TObject *Sender) { KeyPreview = true; } void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if (Key == Key_F1) { FormColor = Form1->Color; Form1->Color = clAqua; } } void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key, TShiftState Shift) { if (Key == Key_F1) Form1->Color = FormColor; }
aber er hat probleme wenn ich die "void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key, TShiftState Shift)" einsetzte :S
-
25.04.08 23:45 #4
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
Hi,
geh doch einfach den Weg über das Formular bzw. über den Objekt-Inspektor. Da müsstest du die Möglichkeit haben, eine Funktion für das Ereignis zuzuweisen (einfach doppelklicken
).
Grüße, D."You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse
-
aha ok
bloß jetzt breuchte ich noch die befehele womit ich die Komponente bewegen kann 1 px oda egal wie viel pixel
hauptsacht das dingen bewegt sich
;D
-
26.04.08 00:31 #6
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
Hi,
alle Objekte, die von TControl (?) abgeleitet sind, müssten Eigenschaften wie Top und Left haben, mit denen die Position vom Steuerelement im Formular festgelegt wird. Also einfach diese Eigenschaften ändern.
Code c:1 2
Label1->Left += dx; // dx Pixel nach rechts Label1->Top -= dy; // dy Pixel nach oben
Grüße, D."You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse
-
Cool danke
aber das mit dem dx check ich nicht xD sry is aber nen bischen spät :P also wie war das noch ma ? muss ich für dx was eintragen!?
-
26.04.08 00:41 #8
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
Hi,
dx oder dy sind Platzhalter für den Versatz, um den du das Element verschieben willst. Also entweder eine Variable anlegen oder den Wert fest eintragen.
Grüße, D."You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse
-
OK Dankööö
und noch was kann ich das label an meinem Cursor sozusagen gefestigen also das das Label mit dem Maus Zeiger gezogen wird ? :o
-
26.04.08 00:53 #10
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
Hi,
natürlich geht auch das. Schau dir dazu am besten mal das OnMouseMove-Ereignis an (hieß glaub ich so), da müsstest du die jeweils aktuellen Mauskoordinaten kriegen. Dann setzt du einfach das Label an diese Stelle.
Um ein Label mit festgehaltener Maustaste zu ziehen, müsstest du erst mit dem OnMouseDown-Ereignis in einen aktiven Zustand wechseln (z.B. mit einer booleschen Variable), den du durch das OnMouseUp-Ereignis wieder verlässt.
Grüße, D."You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse
-
uff naja das wird ya was
sach ma haste du msn oder icq oder so
?
-
26.04.08 00:57 #12
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
Naja, klingt jetzt vielleicht etwas schwer, ist es aber eigentlich gar nicht. Sind ja nur zwei zusätzliche Funktionen mit einem Einzeiler.

Ja, ICQ hab ich, geb ich aber nicht raus. Für Support ist das Forum da.
Grüße, D."You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse
-
uhhh
Undercover
naja danke erst mal ich werde erst mal schlafen gehen
und morgen/heute weiter machen ;D man schreibt sich
-
Könntest du mir vllt nen Code schreiben wie man auf Button1 die Tastatur KeyUp legen kann?
also wenn Button1 per KeyUp (Pfeiltaste nach Oben) gedrückt wird soll sich das Label1 nach oben verschieben!
wäre sehr Hilfreich ;D
-
26.04.08 11:45 #15
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
Hi,
im KeyUp-Ereignis (KeyPress wäre m. M. n. besser, weil KeyUp nur auf das Loslassen der Taste reagiert) hast du als Parameter an die Funktion den Code der gedrückten Taste. Mit einer ASCII-Tabelle lässt sich doch sicher heraus finden, welchen Code die Pfeiltasten haben.
Du musst also nur noch mit einer switch-Anweisung die gedrückte Taste mit den Pfeiltasten vergleichen.
Code c:1 2 3 4 5 6 7 8
switch(KeyCode) { case ARROW_UP: Label1->Top -= 1; break; case ARROW_DOWN: // ... }
Du müsstest mal nachschlagen, ob die Variablennamen und Konstanten tatsächlich so heißen. Hab mich seit Jahren nicht mehr mit der VCL beschäftigt.
Grüße, D."You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse
Ähnliche Themen
-
Rapper sucht Label oder Produzenten
Von YoungHustler im Forum Musik & MusikerAntworten: 24Letzter Beitrag: 08.01.09, 22:28 -
ascii zeichen mit pfeiltasten in 2darray bewegen
Von tameck im Forum JavaAntworten: 12Letzter Beitrag: 26.11.07, 10:46 -
Element per Pfeiltasten bewegen
Von Gregor_Samsa im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 07.11.07, 14:17 -
awt- oder swing-Label(panel) in Applets?
Von lowterm im Forum JavaAntworten: 4Letzter Beitrag: 08.10.07, 09:14 -
Rechnen mit eingabe in Label oder Textfeld
Von aneril im Forum Visual Basic 6.0Antworten: 6Letzter Beitrag: 12.06.03, 16:46





Zitieren
Login






