AGB  ·  Datenschutz  ·  Impressum  







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

upDown-Button mit float-Werten

Ein Thema von LokutusvB · begonnen am 25. Jul 2006 · letzter Beitrag vom 28. Okt 2008
Antwort Antwort
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#1

upDown-Button mit float-Werten

  Alt 25. Jul 2006, 08:37
Hallo Leute,

ich bin noch ein Delphi-Anfänger und habe da mal eine Frage. Ich brauche für ein Edit-Feld ein UpDown-Button, da gibt es ja verschiedene unter Delphi. Jedoch habe ich keinen gefunden, mit dem man auch Komma-Zahlen eintragen kann und in 0.1-Schritten nach oben bzw. unten zählen kann. Am besten wäre auch noch, hinter die zahl eine Einheit eintragen zu können. Wie stelle ich das am besten an?
MFG
LokutusvB
  Mit Zitat antworten Zitat
marabu

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

Re: upDown-Button mit float-Werten

  Alt 25. Jul 2006, 10:03
Herzlich willkommen in der Delphi-PRAXiS.

Wenn das Edit-Feld nicht direkt manipuliert werden muss, dann erreichst du dein Ziel über die Komponente TUpDown recht einfach:

Delphi-Quellcode:
procedure TDemoForm.UpDownChanging(Sender: TObject;
  var AllowChange: Boolean);
begin
  with Sender as TUpDown do
    Edit.Text := Format('%.1f mm', [Position / 10]);
end;
Soll der Benutzer das Edit-Feld auch direkt bearbeiten können, dann ist mehr Aufwand zu treiben.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#3

Re: upDown-Button mit float-Werten

  Alt 25. Jul 2006, 10:07
Nein, der Nutzer soll das feld nicht direkt bearbeiten können. Er soll lediglich Werte zwischen 0.1 und 3.0 in 0.1 er Schritten auswählen können, also 0,1 W bis 3 W.


EDIT:

Nun soll auch noch zusätzlich ein aus einer TextDatei herausgelesener Wert automatisch eingetragen werden können. Geht das dann ganz einfach mit der Textfunktion des Edit-Feldes oder muß ich da noch mehr beachten?
MFG
LokutusvB
  Mit Zitat antworten Zitat
marabu

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

Re: upDown-Button mit float-Werten

  Alt 25. Jul 2006, 17:26
Zitat von LokutusvB:
Geht das dann ganz einfach mit der Textfunktion des Edit-Feldes oder muß ich da noch mehr beachten?
Nein - du musst die Eigenschaft Position des UpDown-Controls mit diesem Wert belegen:

Delphi-Quellcode:
function Before(const s, subStr: String): String;
var
  i: Integer;
begin
  i := Pos(subStr, S);
  if i = 0
    then Result := S
    else Result := Copy(S, 1, Pred(i));
end;

const
  DEFAULT_WATT = 1.7;

procedure Initialize(UpDown: TUpDown; const startValue: String);
var
  d: Double;
begin
  // startValue := '2,4 W'; // eingelesener Wert
  if not TryStrToFloat(Before(startValue, ' '), d) then
    d := DEFAULT_WATT;
  with UpDown do
    // Eine Dezimalstelle, deshalb mal 10
    Position := Round(10 * d);
end;
Getippt und nicht getestet.

marabu
  Mit Zitat antworten Zitat
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#5

Re: upDown-Button mit float-Werten

  Alt 26. Jul 2006, 08:00
Ok, danke für die Hilfe! . Werde damit mal experimentieren.
MFG
LokutusvB
  Mit Zitat antworten Zitat
martinf16

Registriert seit: 26. Aug 2007
99 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: upDown-Button mit float-Werten

  Alt 28. Okt 2008, 23:18
Wie genau verbindet man die Initialize-Funktion mit dem TUpDown?!
  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 14:07 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