AGB  ·  Datenschutz  ·  Impressum  







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

SpinEdit für ' ' Wert zuordnen

Ein Thema von Davidlocke13 · begonnen am 3. Dez 2012 · letzter Beitrag vom 4. Dez 2012
Antwort Antwort
Popov
(Gast)

n/a Beiträge
 
#1

AW: SpinEdit für ' ' Wert zuordnen

  Alt 3. Dez 2012, 16:30
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;
  Mit Zitat antworten Zitat
Benutzerbild von Davidlocke13
Davidlocke13

Registriert seit: 19. Sep 2012
Ort: MD (Sachsen-Anhalt)
166 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: SpinEdit für ' ' Wert zuordnen

  Alt 3. Dez 2012, 16:39
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
David
ApfelsineMandarineAllesGleich
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#3

AW: SpinEdit für ' ' Wert zuordnen

  Alt 3. Dez 2012, 16:58
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;
  Mit Zitat antworten Zitat
Benutzerbild von Davidlocke13
Davidlocke13

Registriert seit: 19. Sep 2012
Ort: MD (Sachsen-Anhalt)
166 Beiträge
 
Delphi 2010 Enterprise
 
#4

AW: SpinEdit für ' ' Wert zuordnen

  Alt 3. Dez 2012, 17:09
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

1.jpg 2.jpg
David
ApfelsineMandarineAllesGleich
  Mit Zitat antworten Zitat
Benutzerbild von Davidlocke13
Davidlocke13

Registriert seit: 19. Sep 2012
Ort: MD (Sachsen-Anhalt)
166 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: SpinEdit für ' ' Wert zuordnen

  Alt 3. Dez 2012, 17:13
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;
David
ApfelsineMandarineAllesGleich
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#6

AW: SpinEdit für ' ' Wert zuordnen

  Alt 3. Dez 2012, 17:33
Ok, das Problem ist soweit ich es sehe nicht SpiEdit, sonder die Zeile mit StrToInt(SpinEdit1.Text) . Denn hier wird bei Änderung von SpinEdit der Text Wert sofort mit StrToInt konvertiert. Und hier erzeugt dann StrToInt die Fehlermeldung.

Mehrere Möglichkeiten:

1. statt StrToInt nimmst du StrToIntDef(SpinEdit1.Text, 12); . Ist SpinEdit1.Text leer oder keine Integer Zahl, wird der Ersatzwert genommen.

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.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#7

AW: SpinEdit für ' ' Wert zuordnen

  Alt 4. Dez 2012, 00:38
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.)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  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 06:02 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