![]() |
Frage zur mousemove Funktion!
Hallo
Hätte eine Frage zur Mousemove Funktion. Habe folgenden Quelltext:
Delphi-Quellcode:
Da ich aber über 1000 pixel habe,die eine entsprechenden Gradzahl im Label anzeigen soll und ich nicht stundenlang tippen möchte wäre meine Frage ob nicht sowas in der Art möglich wäre:
procedure TForm2.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); Begin case y of 0:Label7.Caption:='50,0°'; 1:Label7.Caption:='49,9°'; 2:Label7.Caption:='49,8°'; 3:Label7.Caption:='49,7°'; 4:Label7.Caption:='49,6°'; 5:Label7.Caption:='49,5°'; 6:Label7.Caption:='49,4°'; 7:Label7.Caption:='49,3°'; 8:Label7.Caption:='49,2°'; 9:Label7.Caption:='49,1°'; 10:Label7.Caption:='49,0°'; end;
Delphi-Quellcode:
Da ich noch Anfänger bin wäre ich Dankbar für einen Tip!
procedure TForm2.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); Begin case y of 0..10:Label7.Caption:='50,0°'..'49,0°'; end; [edit=Sharky]Delphi-Tags eingefügt Mfg, Sharky[/edit] |
Re: Frage zur mousemove Funktion!
Hallo,
kannst du etwas mehr zu dem Hintergrund deiner Frage schreiben? Die einfache Umrechnung von Pixel in Zehntelgrad kann es doch nicht sein, oder? Grüße vom marabu |
Re: Frage zur mousemove Funktion!
Doch genau,ich möchte ja nur das sobald ich mit meiner mouse auf einer bestimmten Stelle meiner Paintbox bin, eine Gradzahl für das bestimmte Pixel auf mein Label erscheint.Die Paintbox hat eine Höhe von 500 Pixel und z.B auf Pixel 137 soll die Anzeige eine 13.7° ausgeben.Ist ja soweit auch kein Problem, meine Frage ist ja auch nur ob ich dazu jetzt wirklich 500 Befehle in meine Case anweisung schreiben muss oder ob es eleganter geht?
|
Re: Frage zur mousemove Funktion!
Hi,
ist aus dem Kopf getippt:
Delphi-Quellcode:
procedure TForm2.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); Begin Label7.Caption := FloatToStr(Y / 100) + '°C'; end; |
Re: Frage zur mousemove Funktion!
Hallo,
ich würde die Darstellung von der Abbildungsfunktion trennen wollen:
Delphi-Quellcode:
Freundliche Grüße
function MapWordToFloat(x, xRange: Word; yRange: Extended;
negative: Boolean = False): Extended; begin if not negative then x := xRange - x; Result := x * yRange / xRange; end; // ----- procedure TForm2.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin with Sender as TPaintBox do Label7.Caption := Format('%.1f °C', [MapWordToFloat(Y, Height, 50, True)])); end; |
Re: Frage zur mousemove Funktion!
Vielen Dank Marabu,
Genau solch eine Variante habe ich gesucht.Hast mir eine Menge Schreibarbeit erspart. Mein Quelltext hätte auch mit 500 case Anweisungen ziemlich komisch ausgesehen. Danke auch an Muhkuh. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 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-2025 by Thomas Breitkreuz