AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Kurze Frage zur ComboBox

Ein Thema von Vukloc · begonnen am 12. Sep 2011 · letzter Beitrag vom 13. Sep 2011
Antwort Antwort
Seite 1 von 2  1 2   
Vukloc

Registriert seit: 12. Sep 2011
25 Beiträge
 
Delphi 7 Enterprise
 
#1

Kurze Frage zur ComboBox

  Alt 12. Sep 2011, 20:37
Delphi-Version: 7
Hallo erstmal an alle, bin neu hier und habe auch direkt mal ne Frage.

Problem:
Habe mir ein kleines Programm geschrieben um anhand von eingegebenen/ausgewählten Werten was auszurechnen.
Nun wollte ich noch die Nachkommastellen noch änderbar machen (in der Regel reichen 5 Nachkommastellen manchmal sind es aber zu viele oder zu wenig).

Aus diesem Grunde wollte ich mir eine ComboBox erstellen und hier einfach die Anzahl der möglichen Nachkommastellen eingeben. Dieser Wert soll nun einfach übertragen werden und dort im FloatToStrF benutz werden um die Stellen zu begrenzen.
Das klappt auch alles soweit.

Nun habe ich aber folgendes Problem, wollte als Voreinstellung 5 Nachkommastellen haben, dafür habe ich einfach den Text der ComboBox auf 5 gestellt und lese die ComboBox folgendermaßen aus:

Delphi-Quellcode:
procedure TForm1.ComboBox2Change(Sender: TObject);
begin
  nachkomma:=StrToInt(ComboBox2.Text);
end;
Nun ist leider das Problem das wenn in der ComboBox nichts umstellt das die Nachkommastellen auf 0 gesetzt werden anstelle der 5 die ich gerne hätte.

Nun die Frage wie kann ich dies einfach beheben?

Vielen Dank für die Hilfe im vorraus.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
2.810 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: Kurze Frage zur ComboBox

  Alt 12. Sep 2011, 20:41
Prüfe doch lieber die Nachkommastelle in der Methode, die die Berechnung auslöst.
Des Weiteren ist ein TryStrToInt in der Regel eher zu empfehlen.
  Mit Zitat antworten Zitat
Vukloc

Registriert seit: 12. Sep 2011
25 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Kurze Frage zur ComboBox

  Alt 12. Sep 2011, 20:46
Na da sag ich doch mal ganz lieb Danke.

Hab die Prüfung verschoben, nun klappt das ganz super.
TryStrToInt muss ich mir mal später ansehen, bin erst eingestiegen in Delphi und hab noch nicht so den durchblick hoffe aber das sich das ändert.
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

AW: Kurze Frage zur ComboBox

  Alt 12. Sep 2011, 20:46
Setze nicht den Text auf 5 sondern die Eigenhaft Itemindex der ComboBox.
Code:
procedure TForm1.ComboBox2Change(Sender: TObject);
 begin
   nachkomma:=ComboBox2.Itemindex; //Bzw. +1 jenachdem mit welchen Werten du anfängst
 end;
Philip
  Mit Zitat antworten Zitat
Benutzerbild von Daniela.S
Daniela.S

Registriert seit: 1. Mär 2008
Ort: Niederösterreich
224 Beiträge
 
Delphi XE4 Enterprise
 
#5

AW: Kurze Frage zur ComboBox

  Alt 12. Sep 2011, 20:54
Oder aber StrToIntDef
Hier kannst du einen Default-Wert angeben wenn die Umwandlung fehl schlägt.
  Mit Zitat antworten Zitat
Vukloc

Registriert seit: 12. Sep 2011
25 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Kurze Frage zur ComboBox

  Alt 12. Sep 2011, 21:00
Owei hier werde ich ja total von Informationen zugehauen.

Find ich super nett von euch allen, jetzt muß ich mir nur mal die Zeit nehmen um das alles durchzulesen.

Bin ja erstmal froh das mein Progrämmchen soweit läuft
  Mit Zitat antworten Zitat
Benutzerbild von Kalakmul
Kalakmul

Registriert seit: 11. Apr 2008
26 Beiträge
 
Delphi 2010 Professional
 
#7

AW: Kurze Frage zur ComboBox

  Alt 12. Sep 2011, 21:01
Hallo Vukloc,

falls "nachkomma" eine globale Variable ist (also nicht in einer Procedure oder Function deklariert), kann man diese mit folgendem Code gleich im Variablendeklarationsteil des Formulars initialisieren:
Code:
var
  nachkomma: Integer = 5;
Auch eine Initialisierung der globalen Variable im OnCreate-Ereignis des Formulars ist möglich.

Wird dann der Wert im OnChange-Ereignis gegenüber der Initialisierung geändert, wird er wie beabsichtigt in die Variable übertragen.

Alternativ wäre auch die Verwendung eines einfachen Edit-Feldes, das mit einem TUpDown kombiniert wird, möglich (in den älteren Delphiversionen - z. B. Delphi 4; Delphi 7 habe ich nicht zur Verfügung - entspricht dem die Komponente TSpinButton im Reiter "Beispiele").
Wer fragt, ist ein Narr für 5 Minuten, wer nicht fragt, ist ein Narr ein Leben lang.

Geändert von Kalakmul (12. Sep 2011 um 21:04 Uhr)
  Mit Zitat antworten Zitat
Vukloc

Registriert seit: 12. Sep 2011
25 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: Kurze Frage zur ComboBox

  Alt 12. Sep 2011, 21:31
@ Kalakmul

Danke dir auch, bin jetzt nur leider etwas verwirrt.

Das hier habe ich noch verstanden:
Delphi-Quellcode:
var
  nachkomma: Integer = 5;
hier wird nachkomma auf 5 gesetzt (Datentyp Integer, also ganze Zahlen)
und wird dann wenn später in der ComboBox eine auswahl getätigt wird geändert.


Hier bin ich dann leider ausgestiegen: (werde mir das aber noch zu gemüte fügen)

Auch eine Initialisierung der globalen Variable im OnCreate-Ereignis des Formulars ist möglich.

Wird dann der Wert im OnChange-Ereignis gegenüber der Initialisierung geändert, wird er wie beabsichtigt in die Variable übertragen.

Habe aber noch eine kurze Frage zur ComboBox (wird anderst wohl ziemlich identisch sein):
Und zwar wenn man den Text-Inhalt der ComboBox löscht, und dieser nun übergeben werden soll entshet ja ein Fehler (ist ja logich versuch mal mit "nichts" zu rechnen), was kann man den hiergegen tun, also wenn der Text der Box gelöcht wird das dort automatisch wieder ein Text reingeschrieben wird? (Hoffe das war verständlich)
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.019 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Kurze Frage zur ComboBox

  Alt 12. Sep 2011, 21:51
Einfach im OnChange-Event prüfen, ob eine korrekte Eingabe in der Combobox vorhanden ist (z.B. auf Text <> "" und valide Zahl)...
Michael Kübler
  Mit Zitat antworten Zitat
Vukloc

Registriert seit: 12. Sep 2011
25 Beiträge
 
Delphi 7 Enterprise
 
#10

AW: Kurze Frage zur ComboBox

  Alt 12. Sep 2011, 22:01
Hab da mal ne Lösung hinbekommen ist aber nicht sonderlich schön sag ich mal

Delphi-Quellcode:
if StrToInt(ComboBox2.Text) >18 then ComboBox2.ItemIndex:=5;
  nachkomma:=ComboBox2.ItemIndex;
Aber ich glaube das passt zum restlichen Quellcode, der ist auch ich glaube sehr verworren.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 18:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf