Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Frage zu UpDown (https://www.delphipraxis.net/120661-frage-zu-updown.html)

Thomas F 14. Sep 2008 21:02


Frage zu UpDown
 
Wie kann ich mit dem Updown auf einen bereits existierenden Wert hochzählen ?
In Edit3.text steht meinetwegen der Wert '1000'
Beim klick auf Updown soll dann in 1-er oder 10-er Schritten hochgezählt werden,
je nachdem ob man kurz oder lange darauf drückt.

Delphi-Quellcode:
procedure TForm7.UpDown2Click(Sender: TObject; Button: TUDBtnType);
begin
Edit3.Text := Format( '%.d',[UpDown2.Position]);
end;
Wenn ichs so eingeb , funktioniert es zwar aber es fängt bei 0 an und nicht bei 1000

Thomas F 14. Sep 2008 21:43

Re: Frage zu UpDown
 
Ich habs selber rausgefunden

Delphi-Quellcode:
procedure TForm7.UpDown2Click(Sender: TObject; Button: TUDBtnType);
begin
Edit3.Text := Format('%d', [1000+UpDown2.Position]);
end;
So muß es heißen :-D :hi:

Roachford 14. Sep 2008 21:50

Re: Frage zu UpDown
 
Und nun noch eine spannende Frage: Warum weist du den neuen Wert nicht der Position Eigenschaft des TUpDown zu?

Jetzt wandelst du (recht aufwändig mit Format() anstatt IntToStr()) den neuen Wert in einen String um und weist es dem Edit zu, welches vom TUpDown überwacht wird und dadurch wieder den neuen Edit Inhalt überprüft und zurück umwandelt um dann das Ergebnis wieder in seiner Position Eigenschaft anzubieten.

Wenn du ein TUpDown an einem Edit verwendest, dann nutze programmiertechnisch nur noch das TUpDown für den Inhalt und nicht mehr das Edit Feld.

Thomas F 14. Sep 2008 21:57

Re: Frage zu UpDown
 
Zitat:

Zitat von Roachford
Und nun noch eine spannende Frage: Warum weist du den neuen Wert nicht der Position Eigenschaft des TUpDown zu?

Jetzt wandelst du (recht aufwändig mit Format() anstatt IntToStr()) den neuen Wert in einen String um und weist es dem Edit zu, welches vom TUpDown überwacht wird und dadurch wieder den neuen Edit Inhalt überprüft und zurück umwandelt um dann das Ergebnis wieder in seiner Position Eigenschaft anzubieten.

Wenn du ein TUpDown an einem Edit verwendest, dann nutze programmiertechnisch nur noch das TUpDown für den Inhalt und nicht mehr das Edit Feld.

Wie, das hab ich nicht ganz verstanden

Ich brauch doch ein TEdit um den Wert anzuzeigen

jfheins 14. Sep 2008 22:04

Re: Frage zu UpDown
 
Wie wäre es mit einenm SpinEdit ?

Roachford 14. Sep 2008 22:05

Re: Frage zu UpDown
 
Zitat:

Zitat von Thomas F
Ich brauch doch ein TEdit um den Wert anzuzeigen

Richtig, anzeigen, aber nicht bearbeiten. Dazu wende dich bitte an das TUpDown Control. :warn:

Hier dein Code wie er besser wäre:

Delphi-Quellcode:
UpDown2.Position := 1000 + UpDown2.Position;
Und benenne deine Komponenten aussagekräftig, so kann es sonst keiner mehr nachvollziehen, dass der UpDown2 zu dem Edit3 gehört. Wenn du es dann eher dem Wert zuordnest, wird es verständlicher. Angenommen das Edit mit dem UpDown zeigen einen Bestand an, dann würde ich das TUpDown udBestand nennen und das Edit edBestand. Dann sieht man doch eher was angezeigt wird und das beide den gleichen Wert dem Nutzer offerieren.

toms 14. Sep 2008 22:07

Re: Frage zu UpDown
 
Warum nicht gleich ein TSpinEdit verwenden?

Thomas F 14. Sep 2008 22:10

Re: Frage zu UpDown
 
Zitat:

Zitat von Roachford
Zitat:

Zitat von Thomas F
Ich brauch doch ein TEdit um den Wert anzuzeigen

Richtig, anzeigen, aber nicht bearbeiten. Dazu wende dich bitte an das TUpDown Control. :warn:

Hier dein Code wie er besser wäre:

Delphi-Quellcode:
UpDown2.Position := 1000 + UpDown2.Position;
Und benenne deine Komponenten aussagekräftig, so kann es sonst keiner mehr nachvollziehen, dass der UpDown2 zu dem Edit3 gehört. Wenn du es dann eher dem Wert zuordnest, wird es verständlicher. Angenommen das Edit mit dem UpDown zeigen einen Bestand an, dann würde ich das TUpDown udBestand nennen und das Edit edBestand. Dann sieht man doch eher was angezeigt wird und das beide den gleichen Wert dem Nutzer offerieren.

Ja , haste Recht.

Ich hab doch den Updown nur hier so genannt, damit jeder sofort weiß ,welche Komponente gemeint ist.

Thomas F 14. Sep 2008 22:15

Re: Frage zu UpDown
 
Zitat:

Zitat von toms
Warum nicht gleich ein TSpinEdit verwenden?

Weil das bei TDE gar nicht dabei ist. :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:33 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