Mam taki problem, w jaki sposób zamienić przecinki na kropki w komponencie Label przy wpisywaniu licz zmiennoprzecinkowych, zamiast np. 2,6 chcę wpisywać 2.6 Z góry dzięki.. :-)
Znaczy chyba chcesz wyswietlac na labelu liczby bo wpisywac mozna np. w edita.
Mozesz np. zrobic sobie funkcje:
function Zamien(Liczba: string): string;
begin
Result := Liczba;
if Pos(',', Liczba) 0 then // jesli jest przecinek w liczbie
begin
Insert('.', Liczba, Pos(',', Liczba)) // wstawiamy kropke zaraz
//za przecinkiem
Delete(Liczba, Pos(',', Liczba), 1); // usuwamy przecinek
Result := Liczba;
Exit;
end;
if Pos('.', Liczba) 0 then // to samo co wyzej tylko odwrotnie
begin
Insert(',', Liczba, Pos('.', Liczba))
Delete(Liczba, Pos('.', Liczba), 1);
Result := Liczba;
Exit;
end;
end;
[dopisane]
Yy troszke poprawilem bo bylo zle.. teraz chyba jest ok.
Zmodyfikuj zmienną DecimalSeparator
function Zamien(Liczba: string): string;
var
i: Integer;
begin
Result:=Liczba;
i:=Pos(',', Result);
if i 0 then Result[i]:='.';
end;
Ale kombinujecie. pq podał najprostsze możliwe rozwiązanie:
var
q: Single;
begin
q := 26/10;
DecimalSeparator := '.';
Label1.Caption := FloatToStr(q);
end;
Można też bawić się z formatowaniem wyświetlanej liczby zmiennoprzecinkowej.
Dzięki wielkie wszystkim! :-) :-) :-)
Function zamien(s:string):string;
var tmp:string;
begin
tmp:=stringreplace(s,',','.',[rfreplaceall]);
result:=tmp;
end;
Ja bym jeszcze poprawił:
var
q: Single;
ds:=string;
begin
q := 26/10;
ds:=DecimalSeparator;
DecimalSeparator := '.';
Label1.Caption := FloatToStr(q);
DecimalSeparator:=ds;
end;
żeby przywrócić co było