AGB  ·  Datenschutz  ·  Impressum  







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

kleine D8 procedure StringGrid1DrawCell

Ein Thema von Hansa · begonnen am 6. Jul 2004 · letzter Beitrag vom 6. Jul 2004
Antwort Antwort
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

kleine D8 procedure StringGrid1DrawCell

  Alt 6. Jul 2004, 01:50
Hi,

folgendes ist mir rätselhaft im Zusammenhang mit D8 :

Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);

procedure WriteText(StringGrid: TStringGrid; ACanvas: TCanvas; const ARect: TRect;
    const Text: string);
  const
    DY = 2;
  var
    S: array[0..255] of Char;
  begin
    with Stringgrid, ACanvas, ARect do begin
      ExtTextOut(Handle, Right - TextWidth(Text) - 3, Top + DY,
            ETO_OPAQUE or ETO_CLIPPED, @ARect, StrPCopy(S, Text),
            Length( Text), nil);
    end;
  end;

  procedure Display(StringGrid: TStringGrid; const S: string);
  begin
    WriteText(StringGrid, StringGrid.Canvas, Rect, S);
  end;

begin
  inherited;
  if (ACol = 1) or (ACol >=4) then
    Display(StringGrid1, StringGrid1.Cells[ACol, ARow]);
end;
Der Zweck ist, in einem Stringgrid 2 Nachkommastellen darzustellen. Ich gebe also "1" ein und es steht da "1.00" in der Zelle. Wie mache ich das nun unter D8 ? Und zwar ohne diese komische WinApi benutzen zu müssen ?

[edit=sakura] Titel gekürzt Mfg, sakura[/edit]
[edit=fkerber]Neu gespeichert wg. Code-Highlighting. Mfg, fkerber[/edit
Gruß
Hansa
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: kleines D8 Programmprocedure TfrmRegis.StringGrid1DrawCe

  Alt 6. Jul 2004, 07:29
Die WinAPI steht doch unter D8 noch zur Verfügung, nur über viele Umwege.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

Re: kleines D8 Programmprocedure TfrmRegis.StringGrid1DrawCe

  Alt 6. Jul 2004, 13:43
Zitat von Dax:
...nur über viele Umwege.
Eben deshalb werde ich diese tunlichts vermeiden. Es geht eben nicht darum, die halbtote WinApi durch die Hintertür wiederzubeleben. 8)

Vielmehr will ich wissen, wie man so ein konkretes Beispiel sauber mit D8 eben ohne Winapi realisiert.

Vielleicht hat es sich noch nicht so rumgesprochen, aber ein WinApi Programm ist in .NET ungefähr das, was ein DOS-Programm heute unter Win32 ist. Dann gibt es nicht nur eine "Dos-Box" wie unter Win32, sondern auch eine "Win32"-Box in .NET.

Dies wiederum bedeutet, daß die Vorteile von .NET nicht genutzt werden können, die Programme wohl langsamer werden usw., sofern immer noch die alte WinApi eingesetzt wird.
Gruß
Hansa
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#4

Re: kleine D8 procedure StringGrid1DrawCell

  Alt 6. Jul 2004, 14:52
Zitat:
Vielleicht hat es sich noch nicht so rumgesprochen, aber ein WinApi Programm ist in .NET ungefähr das, was ein DOS-Programm heute unter Win32 ist
Das trifft genauso auf dein Programm zu. (Immer erst an die eigene Nase fassen )
Die VCL.Net verwendet massiv Win32 Calls, da es Big B nicht fertiggebracht hat, sie vollständig unter .Net laufen zu lassen.

Zu deinem Problem:
Binde den NameSpace System.Globalization ein.
Ein simples...
Delphi-Quellcode:
var
  fmtConv :NumberFormatInfo ;
  ...
begin
  ...
  fmtConv := Application.CurrentCulture.NumberFormat.Clone as NumberFormatInfo;
  fmtConv.NumberDecimalDigits := 2;
  DaHastDuEs := System.Decimal.Parse('1').ToString('N', fmtConv);
end;
... gibt dir deine formatierte Zahl.

[edit=fkerber]Neu gespeichert wg. Code-Highlighting. Mfg, fkerber[/edit
  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 21:30 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