Mousekoordinaten in einer Statusbar anzeigen
-
Hi.
Wie kann ich die Mousekoordinaten in einer Statusbar anzeigen lassen. Wie ich mir die Koordinaten hole weis ich ja noch aber wie kann ich diese Koordinaten in meinem gewünschten Format in ein Array speichern und es dann anzeigen.
Bei mir sieht das so aus:
void __fastcall TForm1::RichEdit1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { // Koordinaten in der Statusbar anzeigen char mousekoord[20]; strcpy(mousekoord, "X: %d Y: %d", X, Y); // Das geht ja nicht StatusBar1->Panels->Items[3]->Text = mousekoord; }
Also wie kann ich Variablen gemischt mit Text in einen Array speichern?
-
Sebastian Thalhammer schrieb:
Das geht ja nicht
Doch, das geht! Und sogar genauso! Vielleicht solltest du die ´Größe des Array noch etwas nach oben verändern.
-
Oder so?
AnsiString AS;
AS=AS.FormatFloat("0000.0",12);PS: Die fuehrenden Nullen kannst Du durch blanc ersetzen, die Dezimalstellen auch weglassen. (Bei Mauskoordinaten auch sinnvoller!)
-
Warum nich so:
StatusBar1->Panels->Items[3]->Text = "X:"+IntToStr(X)+" Y:"+IntToStr(Y);
-
ja, danke jetzt gehts vorher hab ich immer die Feldermeldung zu viele Parameter in der Funktion strcpy bekommen. Ich hab nicht gewusst das man das so schreiben muss. Danke an alle.
-
Sebastian Thalhammer schrieb:
ja, danke jetzt gehts vorher hab ich immer die Feldermeldung zu viele Parameter in der Funktion strcpy bekommen.
Oh, das ist ja auch die falsche Funktion. Hatte ich total übersehen. Man benutzt dazu sprintf() bzw. wsprintf(). Also
void __fastcall TForm1::RichEdit1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { char mouse_coord[32]; wsprintf(mouse_coord, "X: %d Y: %d", X, Y); // Das geht! StatusBar1->Panels->Items[3]->Text = AnsiString(mouse_coord); }