![]() |
AW: SpinEdit.Value manuell verändern
Zitat:
Gruß Gerald |
AW: SpinEdit.Value manuell verändern
Zitat:
Danke ersmal für die Hilfe! Klappt wunderbar! Jetz hätt ich nur noch des Prob, dass ich n Max und n Min gern hätt! Sieht bei mir im mom so aus:
Delphi-Quellcode:
AMax und AMin sin Integer
procedure TForm1.SpinEdit2Change(Sender: TObject);
begin if SpinEdit2.Text <> '' then begin try radius := SpinEdit2.Value; except radius := 0; ShowMessage('ungültiger Wert'); end; end; AMax := 400; AMin := 1; if SpinEdit2.Value > AMax then begin AMax :=SpinEdit2.Value; SpinEdit2.Text := '400'; end; if SpinEdit2.Value < AMin then begin AMin :=SpinEdit2.Value; SpinEdit2.Text := '1'; end; end; Vielleicht könnt ihr mir da auch nochmal helfen! gruß approx |
AW: SpinEdit.Value manuell verändern
Guten Abend,
onChange wird bei jedem Tastendruck ausgelöst. Die Min und Max Werte würde ich im onExit Ereignis überprüfen. Nachtrag: Warum nutzt Du nicht auch für die manuelle Überprüfung die min und max Werte von TSpinEdit? Grüße Klaus |
AW: SpinEdit.Value manuell verändern
ok perfekt! Dank mit exit klappts! Vielen Dank! ;)
Deinen Nachtrag evrsteh ich nicht ganz! was meinst du mit manueller überprüfung? gruß approx |
AW: SpinEdit.Value manuell verändern
Zitat:
Delphi-Quellcode:
Wenn SpinEdit den Focus verliert, dann wird der eingegebene Wert automatisch überprüft
procedure TForm1.SpinEdit2Change(Sender: TObject);
begin if SpinEdit2.Text <> '' then begin try radius := SpinEdit2.Value; except radius := 0; ShowMessage('ungültiger Wert'); end; end; AMax := 400; AMin := 1; // von hier if SpinEdit2.Value > AMax then begin AMax :=SpinEdit2.Value; SpinEdit2.Text := '400'; end; if SpinEdit2.Value < AMin then begin AMin :=SpinEdit2.Value; SpinEdit2.Text := '1'; end; // bis hier end; Wenn er kleiner als SpinEdit.minValue ist wird er auf minValue gesetzt. Wenn der Wert größer als SpinEdit.maxValue ist wird der Wert auf maxValue geändert. Grüße Klaus |
AW: SpinEdit.Value manuell verändern
ah ja klar! Noch besser! ;)
Hab gar nicht gewusst, dass es das gibt... Habs n bissl umständlicher gemacht :-D Danke Klaus |
AW: SpinEdit.Value manuell verändern
Hallo zusammen...
Ich dachte ich schreib hier rein, weil ich ein ähnliches Problem habe. Ich wollte die SpinEdit auch benutzen, nur das ich damit meine Stiftstärke für mein Zeichenprogramm bestimm. Mein Code sieht jetzt wie folgt aus:
Code:
Nun bekomm ich den schon oben genannten fehler wenn ich was eingeb...Als ich die Sache mit AMax und AMin noch nicht drin hatte, bekam ich den Fehler aber nicht.
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin if SpinEdit1.Text <> '' then begin try Image1.Canvas.Pen.Width := SpinEdit1.Value; except Image1.Canvas.Pen.Width := 0; ShowMessage('ungültiger Wert'); end; end; AMax := 400; AMin := 1; if SpinEdit1.Value > AMax then begin AMax :=SpinEdit1.Value; SpinEdit1.Text := '400'; end; if SpinEdit1.Value < AMin then begin AMin :=SpinEdit1.Value; SpinEdit1.Text := '1'; end; end; Würde mich freuen, wenn ihr mir eine Antwort habt. Grüße |
AW: SpinEdit.Value manuell verändern
Dein Code sieht etwas unaufgeräumt aus, in Bezug auf die Einrückungen, aber ich versuche es mal:
Setze den Max/Min-Block mit in die Text<>'' - Prüfung. Sonst ist Value möglicherweise zwischendurch 0. Auch änderst Du die Werte von AMin und AMax bei überschreitungen. Ist das Absicht? Den korrigirten Minimal- und Maximalwert kannst Du m.E. auch direkt in Value schreiben und musst dies nicht als String zuweisen. |
AW: SpinEdit.Value manuell verändern
Danke schonmal für die Antwort. Ich hab ein bisschen rumgespielt und das meiste geht jetzt. Mein Code sieht folgendermaßen aus:
Delphi-Quellcode:
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin if SpinEdit1.Text <> '' then try Image1.Canvas.Pen.Width := SpinEdit1.Value; finally SpinEdit1.MaxValue := 80; SpinEdit1.MinValue := 1; if SpinEdit1.Value > SpinEdit1.MaxValue then SpinEdit1.Text := '80'; if SpinEdit1.Value < SpinEdit1.MinValue then SpinEdit1.Text := '1'; end; end; Nun kommt kein Fehler mehr bei Eingabe einer Zahl, dafür aber wenn ich z.B. ein "," oder ein Buchstabe eingeb. Kann ich hier noch was machen? |
AW: SpinEdit.Value manuell verändern
Delphi-Quellcode:
.. auch würde ich das ganze nicht im onChange abfragen,
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin if SpinEdit1.Text <> '' then try Image1.Canvas.Pen.Width := SpinEdit1.Value; // hier setzt Du einen Wert unabhängig davon ob er max über- oder min unterschreitet. finally SpinEdit1.MaxValue := 80; SpinEdit1.MinValue := 1; if SpinEdit1.Value > SpinEdit1.MaxValue then SpinEdit1.Text := '80'; if SpinEdit1.Value < SpinEdit1.MinValue then SpinEdit1.Text := '1'; end; end; sonder im onExit Ereignis. SpinEdit korrigiert den value Wert auf spindEdit.minValue oder spinEdit.maxValue wenn es den Fokus (onExit) verliert. Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:01 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