hopsender label
-
Ich möchte einen Label erstellen der mit Hilfe von 4 Buttons nach oben, unten, links und rechts um 10 pixel hopsen kann.
Wie erstelle ich in der Header Datei zwei private Variablen, mit der Bezeichnung client->With und client->HeightIch hab hier was reingestellt, aber das ist noch nicht so wie ich's will.
Ich will mit Hilfe von 2 If Abfragen abfragen wann Top und Left erreicht ist.
Ich hoffe ich hab's klar formuliert!//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Hopser.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button_obenClick(TObject *Sender) { Label_1->Top=10; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button_linksClick(TObject *Sender) { Label_1->Left=0; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button_rechtsClick(TObject *Sender) { Label_1->Left=650; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button_untenClick(TObject *Sender) { Label_1->Top=350; } //---------------------------------------------------------------------------Edit:
Bitte die Code-Tags verwenden. Danke!
-
Dein Label bewegt sich nicht um einen Wert weiter sondern springt auf fest vorgegebene Positionen. Was du brauchst ist etwas wie
Label_1->Top = Label_1->Top + 10;Private Variablen erstellt man in dem Abschnitt des Headers, der mit private gekennzeichnet ist.
-
Jansen schrieb:
Dein Label bewegt sich nicht um einen Wert weiter sondern springt auf fest vorgegebene Positionen. Was du brauchst ist etwas wie
Label_1->Top = Label_1->Top + 10;Private Variablen erstellt man in dem Abschnitt des Headers, der mit private gekennzeichnet ist.
Wie muss ich hier programmieren, dass der hopsende Label mit einem einmaligem click bis zum minimun oben, minimun links, maximum rechts und maximum unten hopst also quasi wie ein Ball
Ich dachte an eine for-Schleifeprivate: int maxheight; // Maximalhöhe festlegen int maxwidth; // Maximalbreite festlegen //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { maxheight = 350; maxwidth = 650; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button_obenClick(TObject *Sender) { if(Label_1->Top <= 11) { ShowMessage("minimun oben erreicht"); } else { Label_1->Top = Label_1->Top -10; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button_linksClick(TObject *Sender) { if(Label_1->Left <= 11) { ShowMessage("minimun links erreicht"); } else { Label_1->Left = Label_1->Left - 10; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button_rechtsClick(TObject *Sender) { if(Label_1->Left >= maxwidth) { ShowMessage("maximum rechts erreicht"); } else { Label_1->Left = Label_1->Left +10; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button_untenClick(TObject *Sender) { if(Label_1->Top >= maxheight) { ShowMessage("maximum unten erreicht"); } else { Label_1->Top = Label_1->Top + 10; } }
-
Es ist mir nicht klar, was Du erreichen möchtest. Der von Dir gezeigte Code paßt überhaupt nicht zu der Beschreibung was Du möchtest.
Wie soll sich das Label bewegen? Wo soll sich das Label am Ende befinden? Jeweisl in den Ecken? Hast Du schon eine Funktion für die Berechnung der Flugbahn eines Balls gesucht? Wenn nicht mach das mal und pass in der Vektorberechnung einfach die Richtungen an.