Erstens, da war ein Komma zu viel
Delphi-Quellcode:
S := Panel1.Caption;
S := StringReplace('E-06', Chr(181), [rfreplaceall]);
S := StringReplace('E-03', Chr(...), [rfreplaceall]);
...
S := StringReplace('E+09', 'M', [rfreplaceall]);
Panel1.Caption := S;
Delphi-Quellcode:
Const TheChar: Array[-2..3] of Char = ('µ', ..., 'M');
S := Panel1.Caption;
For i := -2{*3=-6} to 3{*3=+9} do
S := StringReplace('E' + Format([i*3] ...), TheChar(i), [rfreplaceall]);
Panel1.Caption := S;
Für FORMAT hab ich gerade keine Definition ... schau mal in die
OH und stell ein Muster zusammen, was ein Vorzeichen voranstellt und danach die Zahl zweistellig mit führrender Null.
Delphi-Quellcode:
Const TheSign: Array[Boolean] of Char = ('+', '-');
TheChar: Array[-2..3] of Char = ('µ', ..., 'M');
S := Panel1.Caption;
For i := -2{*3=-6} to 3{*3=+9} do
S := StringReplace('E' + TheSign[i < 0] + IntToStr(Abs(i * 3) div 10) + IntToStr(Abs(i * 3) mod 10), TheChar(i), [rfreplaceall]);
Panel1.Caption := S;
solange du zwischen -10 und 10 bleibst, kannst du
IntToStr(Abs(i * 3) div 10) durch
'0' ersetzen, da es dann ja eh immer 0 sein wird.