Label i przecinki...

0

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.. :-)

0

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.

0

Zmodyfikuj zmienną DecimalSeparator

0

function Zamien(Liczba: string): string;
var
i: Integer;
begin
Result:=Liczba;
i:=Pos(',', Result);
if i 0 then Result[i]:='.';
end;

0

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.

0

Dzięki wielkie wszystkim! :-) :-) :-)

0

Function zamien(s:string):string;
var tmp:string;
begin
tmp:=stringreplace(s,',','.',[rfreplaceall]);
result:=tmp;
end;

0

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1