AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zur mousemove Funktion!

Ein Thema von Delphieinsteiger · begonnen am 26. Aug 2007 · letzter Beitrag vom 26. Aug 2007
Antwort Antwort
Delphieinsteiger

Registriert seit: 17. Aug 2007
45 Beiträge
 
#1

Frage zur mousemove Funktion!

  Alt 26. Aug 2007, 16:04
Hallo
Hätte eine Frage zur Mousemove Funktion.
Habe folgenden Quelltext:
Delphi-Quellcode:
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;
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:
Delphi-Quellcode:
procedure TForm2.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
  Begin
case y of
0..10:Label7.Caption:='50,0°'..'49,0°';
end;
Da ich noch Anfänger bin wäre ich Dankbar für einen Tip!

[edit=Sharky]Delphi-Tags eingefügt Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Frage zur mousemove Funktion!

  Alt 26. Aug 2007, 16:46
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
  Mit Zitat antworten Zitat
Delphieinsteiger

Registriert seit: 17. Aug 2007
45 Beiträge
 
#3

Re: Frage zur mousemove Funktion!

  Alt 26. Aug 2007, 17:07
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?
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Frage zur mousemove Funktion!

  Alt 26. Aug 2007, 17:23
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;
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Frage zur mousemove Funktion!

  Alt 26. Aug 2007, 17:37
Hallo,

ich würde die Darstellung von der Abbildungsfunktion trennen wollen:

Delphi-Quellcode:
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;
Freundliche Grüße
  Mit Zitat antworten Zitat
Delphieinsteiger

Registriert seit: 17. Aug 2007
45 Beiträge
 
#6

Re: Frage zur mousemove Funktion!

  Alt 26. Aug 2007, 18:30
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz