Einzelnen Beitrag anzeigen

HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#1

StringGrid Text zentrieren 2006 - XE7

  Alt 6. Feb 2015, 10:32
Delphi-Version: XE7
Hallo zusammen,

ich nutze nun XE7. Vorher hatte ich 2006.

Folgende Funktion nutzte ich dort:

Delphi-Quellcode:
procedure StringGridAlignment(Grid: TStringGrid; Rect: TRect; ACol, ARow: Integer;
  Alignment: TAlignment; LineBreak: Boolean);
var
  TextOut: string;
begin

 Grid.Canvas.FillRect(Rect);

 TextOut := Grid.Cells[ACol,ARow];

 if LineBreak = false then
 begin

  if Alignment = taLeftJustify then
  begin
   Rect.Left := Rect.Left + 2;
   DrawText(Grid.Canvas.Handle, PChar(TextOut), StrLen(PChar(TextOut)), Rect,DT_LEFT);
  end;

  if Alignment = taCenter then
   DrawText(Grid.Canvas.Handle, PChar(TextOut), StrLen(PChar(TextOut)), Rect,DT_CENTER);

  if Alignment = taRightJustify then
   DrawText(Grid.Canvas.Handle, PChar(TextOut), StrLen(PChar(TextOut)), Rect,DT_RIGHT);

 end
 else
 begin

  if Alignment = taLeftJustify then
  begin
   Rect.Left := Rect.Left + 2;
   DrawText(Grid.Canvas.Handle, PChar(TextOut), StrLen(PChar(TextOut)),
   Rect,DT_LEFT+DT_WORDBREAK);
  end;

  if Alignment = taCenter then
   DrawText(Grid.Canvas.Handle, PChar(TextOut), StrLen(PChar(TextOut)), Rect,
   DT_CENTER+DT_WORDBREAK);

  if Alignment = taRightJustify then
   DrawText(Grid.Canvas.Handle, PChar(TextOut), StrLen(PChar(TextOut)), Rect,
   DT_RIGHT+DT_WORDBREAK);
  end;

end;
Seid Delphi XE7 wird das aber leider so dargestellt: (Bezeichnung doppelt)

Kleinbestellungen-2015-02-06 11_30_47.jpg

Gruss

Holger

Geändert von HolgerCW ( 6. Feb 2015 um 10:39 Uhr)
  Mit Zitat antworten Zitat