AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit Format und Widestring

Ein Thema von Igotcha · begonnen am 16. Aug 2004 · letzter Beitrag vom 16. Aug 2004
Antwort Antwort
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#1

Probleme mit Format und Widestring

  Alt 16. Aug 2004, 16:29
Hallo zusammen,

ich arbeite mich gerade im VirtualTreeview ein und stoße dabei auf ein Formatierungsproblem meiner Ausgabe. Kurz zum Hintergrund des VT: Inhalte des Treeviews werden in einem Record gespeichert, in diesem Record ist eine Integer, die ich im Rahmen der Ausgabe als formatierten String darstellen möchte.

In dem Ereignis des VT, welches die Darstellung der Record-Inhalte übernimmt, ist der String(CellText) als Widestring definiert:

Delphi-Quellcode:
procedure TfrmMain.MyTreeGetText(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
  var CellText: WideString);
Wenn ich jetzt schreibe:

CellText:=Format('%8.2n', [inttostr(myData.IntWert)]); Bekomme ich eine "Format invalid"-Meldung

Formatieren möchte ich, dass die Zahl mit Tausender-Punkten ausgegeben wird.

Gruß Igotcha
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2

Re: Probleme mit Format und Widestring

  Alt 16. Aug 2004, 16:32
Das hat nichts mit dem WideString zu tun

CellText:=Format('%d', [myData.IntWert]); ......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Probleme mit Format und Widestring

  Alt 16. Aug 2004, 16:37
Nee

Ich möchte z.B. den Int-Wert 10000000 als String in der Form "10.000.000" anzeigen lassen. Der VirtualTV lässt ja nur Strings als Anzeige zu - also muß ich den Int-Wert vorher formatieren.

Das, was Du schreibst, könnte man ja gleich als:

CellText:=IntToStr(myData.IntWert) schreiben, das nimmt er auch - aber da ist eben keine Formatierung dabei.

Ich denke schon, dass das am WideString liegt, denn wenn ich den Wert in eine Stringvariable formatiere geht es nämlich.

function Format(const Format: string; const Args: array of const): string; overload; Hat als Rückgabewert eben nur "String" und nicht "WideString".

Oder stehe ich gerade völlig auf dem Schlauch
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.439 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Probleme mit Format und Widestring

  Alt 16. Aug 2004, 16:42
Zitat von Igotcha:
Wenn ich jetzt schreibe:

CellText:=Format('%8.2n', [inttostr(myData.IntWert)]); Bekomme ich eine "Format invalid"-Meldung
Müsste auf jeden Fall eher so heiszen :
CellText:=Format('%8.2n', [myData.IntWert]); Da %n einen Integer erwartet

Gruss
Hans
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Probleme mit Format und Widestring

  Alt 16. Aug 2004, 16:44
Zitat von Gruber_Hans_12345:
Zitat von Igotcha:
Wenn ich jetzt schreibe:

Müsste auf jeden Fall eher so heiszen :
CellText:=Format('%8.2n', [myData.IntWert]); Da %n einen Integer erwartet


"n" besag nur die Formatierung mit Tausender-Punkt und der o.g. Code geht nicht, da Format einen String als Argument erwartet.
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.439 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Probleme mit Format und Widestring

  Alt 16. Aug 2004, 16:48
Zitat von Igotcha:
"n" besag nur die Formatierung mit Tausender-Punkt und der o.g. Code geht nicht, da Format einen String als Argument erwartet.
Stimmt auch nicht ganz, hab jetzt nachgesehn ... %n sagt das es eine Kommazahl braucht .... also inetwa so ...

Delphi-Quellcode:
function ....
var temp : double;
begin
  temp := myData.IntWert;
  CellText:=Format('%8.2n', [temp]);
end;
Ist zwar nicht schön, sollte aber funktionieren

Gruss
Hans
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

Re: Probleme mit Format und Widestring

  Alt 16. Aug 2004, 16:51
Wie wär's mit:Format('%8.2n', [StrToFloat(IntToStr(i))]); ???
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.439 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Probleme mit Format und Widestring

  Alt 16. Aug 2004, 16:53
Zitat von Stevie:
Wie wär's mit:Format('%8.2n', [StrToFloat(IntToStr(i))]); ???
aber auch nicht wirklich schön oder ?

... genau so wenig wie :
Format('%8.2n', [i*1.0])
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Probleme mit Format und Widestring

  Alt 16. Aug 2004, 16:53
Ja super, so funktioniert es zumindest, obwohl das nicht so ganz schön ist, da ich pro Ansicht so > 16.000 Daten "manipulieren" muss.

Ich habe jetzt statt "Integer" einfach "Double" verwendet. Muss nur mal schauen, ob sich das anderweitig negativ bemerkbar macht.

Danke und Gruß
Igotcha
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10

Re: Probleme mit Format und Widestring

  Alt 16. Aug 2004, 17:17
Ok, dürfte ein paar Ticks mehr brauchen, aber benutze doch einfach folgende Funktion:
Delphi-Quellcode:
function IntToFloat(Value: Integer): Double;
begin
  Result := Value;
end;
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Antwort Antwort


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 +1. Es ist jetzt 09:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz