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
Seite 2 von 3     12 3      
Popov
(Gast)

n/a Beiträge
 
#11

AW: SpinEdit für ' ' Wert zuordnen

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

AW: SpinEdit für ' ' Wert zuordnen

  Alt 3. Dez 2012, 18: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
 
#13

AW: SpinEdit für ' ' Wert zuordnen

  Alt 3. Dez 2012, 18: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
 
#14

AW: SpinEdit für ' ' Wert zuordnen

  Alt 3. Dez 2012, 18: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.686 Beiträge
 
Delphi 2007 Enterprise
 
#15

AW: SpinEdit für ' ' Wert zuordnen

  Alt 4. Dez 2012, 01: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
Benutzerbild von Davidlocke13
Davidlocke13

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

AW: SpinEdit für ' ' Wert zuordnen

  Alt 4. Dez 2012, 10:27
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
David
ApfelsineMandarineAllesGleich
  Mit Zitat antworten Zitat
Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#17

AW: SpinEdit für ' ' Wert zuordnen

  Alt 4. Dez 2012, 11:25
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;
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#18

AW: SpinEdit für ' ' Wert zuordnen

  Alt 4. Dez 2012, 11:32
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
An Popovs Vorschlag stimmt schon alles, da Popov zwei Beispiele genannt hat und zuletzt den #9 vorgeschlagen hat. Da ist noch eine zusätzliche Zeile drin. Und wenn man vor der nächsten Eingabe nicht zufällig die Corsortaste drückt, dann wird es überschrieben. Kann es sein, dass du den #6 genommen hast?
  Mit Zitat antworten Zitat
Benutzerbild von Davidlocke13
Davidlocke13

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

AW: SpinEdit für ' ' Wert zuordnen

  Alt 4. Dez 2012, 11:45
So habe das jetzt in der Zwischenzeit anders gelöst

Delphi-Quellcode:
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;
Da steht dann zwar wenn ich 8 eingebe 08 da aber das ist wie eine 8 !

Danke für eure Hilfe
David
ApfelsineMandarineAllesGleich
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#20

AW: SpinEdit für ' ' Wert zuordnen

  Alt 4. Dez 2012, 11:59
Dir ist schon klar was SelAll 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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 21:44 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