Obtenir actuellement sélectionné zone de liste déroulante de la valeur et de l'utiliser comme variable
Ma question est à propos de Delphi 7.
J'ai besoin d'obtenir actuellement sélectionné ComboBox1 de la valeur à utiliser comme variable à virgule Flottante dans mon code:
Ne sais pas si le TryStrToFloat est déjà en Delphi 7, mais si oui, je voudrais le faire de cette façon.
procedure TForm1.ComboBox1Change(Sender: TObject);var
Value: Double;beginif TryStrToFloat(ComboBox1.Text, Value)then
T := T + Value
else
ShowMessage('You''ve entered wrong value ...');end;
+1, TryStrToFloat existe en D7 A travaillé et a été exactement ce dont j'avais besoin! Hm, tu ne connaissais pas TryStrToFloat(), même si j'ai toujours utilisé StrToFloatDef() qui est dans la même unité (SysUtils). +1 merci. Btw. les deux fonctions, TryStrToFloat et StrToFloatDef en interne appelle la TextToFloat de la fonction. La seule différence est de savoir comment les utiliser; si vous écrivez par exemple var Output: Extended; begin if not TryStrToFloat('0.xx', Output) then Output := 0.01; end; alors vous obtiendrez le même que si vous l'appelez Output := StrToFloatDef('0.xx', 0.01); 😉
// ItemIndex is the index of the selected item
//If no item is selected, the value of ItemIndex is -1if(ComboBox1.ItemIndex >=0)thenbegin
t := t + StrToFloat(ComboBox1.Items[ComboBox1.ItemIndex]);end;
Ou mieux TryStrToFloat et vous pouvez utiliser ComboBox1.Text au lieu de ComboBox1.Items[ComboBox1.ItemIndex]) Il y a un extra ")" dans le code. Après l'avoir supprimé, il a très bien fonctionné. Merci!!!! Personnellement je n'aime pas ce code, car il utilise deux références à la ComboBox1.ItemIndex de la propriété. Je ne suis pas sûr de ce que la méthode de lecture pour cette propriété n'est, peut-être qu'il lit un champ n'est donc pas performane peine, mais il se sent juste mal. l'accès ComboBox1.Le texte est pas le même que ComboBox1.Les Articles[ComboBox1.ItemIndex]). Il est possible que le texte à ne pas être dans la liste des Éléments.
Ne sais pas si le TryStrToFloat est déjà en Delphi 7, mais si oui, je voudrais le faire de cette façon.
A travaillé et a été exactement ce dont j'avais besoin!
Hm, tu ne connaissais pas
TryStrToFloat()
, même si j'ai toujours utiliséStrToFloatDef()
qui est dans la même unité (SysUtils). +1merci. Btw. les deux fonctions,
TryStrToFloat
etStrToFloatDef
en interne appelle laTextToFloat
de la fonction. La seule différence est de savoir comment les utiliser; si vous écrivez par exemplevar Output: Extended; begin if not TryStrToFloat('0.xx', Output) then Output := 0.01; end;
alors vous obtiendrez le même que si vous l'appelezOutput := StrToFloatDef('0.xx', 0.01);
😉OriginalL'auteur TLama
ComboBox1.Text
au lieu deComboBox1.Items[ComboBox1.ItemIndex])
Il y a un extra ")" dans le code. Après l'avoir supprimé, il a très bien fonctionné. Merci!!!!
Personnellement je n'aime pas ce code, car il utilise deux références à la ComboBox1.ItemIndex de la propriété. Je ne suis pas sûr de ce que la méthode de lecture pour cette propriété n'est, peut-être qu'il lit un champ n'est donc pas performane peine, mais il se sent juste mal.
l'accès ComboBox1.Le texte est pas le même que ComboBox1.Les Articles[ComboBox1.ItemIndex]). Il est possible que le texte à ne pas être dans la liste des Éléments.
OriginalL'auteur splash