![]() |
SpinEdit für ' ' Wert zuordnen
Wie kann ich meinem SpinEdit für ' ' den Wert '12' zuordnen ?
habe schon folgendes Probiert:
Code:
klappt nur leider nicht !
if SpinEdit1.Text = ' ' then
SpinEdit1.Text := '12'; LG |
AW: SpinEdit für ' ' Wert zuordnen
Hallo,
kann ein TSpinEdit überhaupt ein ' ' im Text property annehmen? Normalerweise bewegt es ich doch zwischen minValue und maxValue? Einen Wert setzen würde ich über die value Eigenschaft. Grüße Klaus |
AW: SpinEdit für ' ' Wert zuordnen
Ja es bewegt sich ja bei mir auch zwischen 1 und 800.
Nur wenn ich da einen wert per Tastatur eintrage und vorher das Teil lehre zeigt der mir bei ' ' also Lehr einen Fehler an, deshalb will ich im für ' ' sagen das er '12' nehmen soll. |
AW: SpinEdit für ' ' Wert zuordnen
.. kannst Du das nicht im onChange event abfangen.
Aber ist es nicht irgendwie befremdlich, wenn ich den Eintrag ändern will einfach so ein 12 eingetragen wird? Grüße Klaus |
AW: SpinEdit für ' ' Wert zuordnen
probier mal statt
Delphi-Quellcode:
if SpinEdit1.Text = ' ' then
Delphi-Quellcode:
if SpinEdit1.Text = '' then
|
AW: SpinEdit für ' ' Wert zuordnen
Wenn du es schaffst ein Leerzeichen einzugeben:
Delphi-Quellcode:
Moment, jetzt ein Leerzeichen oder Leer? Im ersten Beitrag war es ein Leerzeichen. Falls es bei leer sein soll, bitte anpassen
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin with Sender as TSpinEdit do begin if Text = '' {' '} then Text := '12'; //Edit: Leerzeichen oder Nichts SelStart := Length(Text); end; end; |
AW: SpinEdit für ' ' Wert zuordnen
Zitat:
|
AW: SpinEdit für ' ' Wert zuordnen
Zitat:
|
AW: SpinEdit für ' ' Wert zuordnen
Oder so. Hier wird einfach alles danach markiert. Folgt ein weiterer Tastendruck, wird die 12 überschrieben.
Delphi-Quellcode:
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin with Sender as TSpinEdit do begin if Text = '' then Text := '12'; SelStart := Length(Text); SelectAll; end; end; |
AW: SpinEdit für ' ' Wert zuordnen
Die Anderen Sachen klappen zwar alle und mein Fehler war bei ' ' sollte so sein '', aber es ist halt doch recht unpraktisch !
Also wenn ich '' eingebe soll der das ignorieren bis ein Wert kommt ! Das währe am besten :wink: |
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
|
AW: SpinEdit für ' ' Wert zuordnen
genau mit dem teil hat es ja Probleme gemacht es hat zwar alles markiert aber aber die 12 nicht überschrieben. 12 + eine einstellige Zahl !
Ich habe die 12 durch die 0 ersetzt und das alles markieren raus geschmissen jetzt bleibt zwar noch die O drin aber ich kann eine beliebig lange zahl hinter kloppen und 08 ist dann halt auch wie 8 |
AW: SpinEdit für ' ' Wert zuordnen
Nun, ich möchte dem was du behauptest nicht widersprechen, aber dann sollte dir klar sein, dass auf deinem Rechner die Naturgesetze nicht gelten ;)
Wenn man einen Text markiert und dann einen Buchstaben oder Zahl oder Sonderzeichen eingibt, dann wird der markierte Text überschrieben. Einfache Regel die auf Milliarden von Rechnen funktioniert und funktionierte ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:36 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