![]() |
AW: SpinEdit für ' ' Wert zuordnen
Also inzwischen verstehe ich auch das Problem nicht. Wenn man alles zahlen löscht, so dass das SpinEdit Feld leer ist, dann passiert zuerst nichts. Keine Fehlermeldung, Nichts. Also wo ist das Problem?
Oder soll es reagieren wenn das Feld verlassen wird? Dann das obere Beispiel in diese Prozedur packen:
Delphi-Quellcode:
procedure TForm1.SpinEdit1Exit(Sender: TObject);
begin //...wie gehabt end; |
AW: SpinEdit für ' ' Wert zuordnen
Liste der Anhänge anzeigen (Anzahl: 2)
bei mir gibt es aber eine Fehlermeldung ! das liegt daran das wenn ich eine 1 rein schreibe der das Teil sofort auf Schriftgröße 1 Macht und wenn ich nix eingebe kann der auch auf keine Schriftgröße machen und schwups habe ich einen Fehler
Anhang 38185 Anhang 38186 |
AW: SpinEdit für ' ' Wert zuordnen
Mein Code:
Code:
private
FUpdating: Boolean; function CurrText: TTextAttributes; function TForm1.CurrText: TTextAttributes; begin if RichEdit1.SelLength > 0 then Result := RichEdit1.SelAttributes else Result := RichEdit1.DefAttributes; end; procedure TForm1.SpinEdit1Change(Sender: TObject); begin if FUpdating then Exit; CurrText.Size := StrToInt(SpinEdit1.Text); end; |
AW: SpinEdit für ' ' Wert zuordnen
Ok, das Problem ist soweit ich es sehe nicht SpiEdit, sonder die Zeile mit
Delphi-Quellcode:
. Denn hier wird bei Änderung von SpinEdit der Text Wert sofort mit StrToInt konvertiert. Und hier erzeugt dann StrToInt die Fehlermeldung.
StrToInt(SpinEdit1.Text)
Mehrere Möglichkeiten: 1. statt
Delphi-Quellcode:
nimmst du
StrToInt
Delphi-Quellcode:
. Ist SpinEdit1.Text leer oder keine Integer Zahl, wird der Ersatzwert genommen.
StrToIntDef(SpinEdit1.Text, 12);
2. du setzt den Code von #9 in die SpinEdit1Change ganz an Anfang ein. Ist SpinEdit1.Text leer, wird zwar automatisch die 12 eingefügt, aber markiert, so dass der nächste Tastendruck den Wert überschreibt. |
AW: SpinEdit für ' ' Wert zuordnen
Und hättest du von Anfang an erwähnt, dass du im OnChange agierst, wäre der Thread hier sicherlich um 50% und einen Haufen Verwirrung kürzer gewesen. (TSpinEdit hat imho übrigens auch eine Property "Value" vom Typ Integer. Du musst überhaupt nicht selber umwandeln. Ansonsten ist Popovs Vorschlag natürlich auch prima.)
|
AW: SpinEdit für ' ' Wert zuordnen
Bei Popov Vorschlag gibt es nur ein Problem.
Es wird zwar die 12 markiert aber nicht überschreiben, da hängt der einfach meine Zahl an die 12 rann! Also so etwa 129 |
AW: SpinEdit für ' ' Wert zuordnen
so geht das doch oder :?:
Delphi-Quellcode:
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin Caption := IntToStr(TSpinEdit(Sender).Value); end; procedure TForm1.SpinEdit1Exit(Sender: TObject); begin if length(TSpinEdit(Sender).Text) = 0 then TSpinEdit(Sender).Value := 12; end; |
AW: SpinEdit für ' ' Wert zuordnen
Zitat:
|
AW: SpinEdit für ' ' Wert zuordnen
So habe das jetzt in der Zwischenzeit anders gelöst :-)
Delphi-Quellcode:
Da steht dann zwar wenn ich 8 eingebe 08 da aber das ist wie eine 8 !
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin with Sender as TSpinEdit do begin if Text = '' then Text := '0'; SelStart := Length(Text); end; begin if FUpdating then Exit; CurrText.Size := StrToInt(SpinEdit1.Text); end; end; Danke für eure Hilfe |
AW: SpinEdit für ' ' Wert zuordnen
Dir ist schon klar was
Delphi-Quellcode:
bewirkt? Es markiert den gesamten Inhalt des Eingabefeldes, so dass zwar ein Wert rein geschrieben wird, aber bei nächsten Gelegenheit sofort überschrieben wird. Irgendwie magst du wohl das zweite Beispiel nicht, oder ;)
SelAll
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:08 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