• Cobalt © (17.06.12 20:15) [0]
  • Rouse_ © (17.06.12 21:47) [1]
    Не по центру по вертикали? Так это потому что ты выравнивание по вертикали нигде не сделал.
  • Омлет © (17.06.12 22:01) [2]
    Что такое delta?
    Используй DrawText + DT_VCENTER, если текст однострочный.
  • Cobalt © (17.06.12 23:20) [3]
    type
     TForm6 = class(TForm)
       Image1: TImage;
       SpinEdit1: TSpinEdit;
       procedure FormCreate(Sender: TObject);
       procedure SpinEdit1Change(Sender: TObject);
       procedure UpdateString;
     private
       { Private declarations }
       FontSize: Integer;
     public
       { Public declarations }
     end;

    var
     Form6: TForm6;

    implementation

    {$R *.dfm}

    procedure TForm6.FormCreate(Sender: TObject);
    begin
     FontSize := 12;
     SpinEdit1.Value := FontSize;
     UpdateString;
    end;

    procedure TForm6.SpinEdit1Change(Sender: TObject);
    begin
     FontSize := SpinEdit1.Value;
     UpdateString;
    end;

    procedure TForm6.UpdateString;
    var
     ARect: TRect;
     TextStr: string;
     TextHeight: Integer;
    begin
     TextStr := 'Июнь 2012';
     Image1.Invalidate;
     Image1.Canvas.Brush.Color := clWhite;
     Image1.Canvas.FillRect(Rect(0,0,Image1.Height, Image1.Width));
     Image1.Canvas.Font := self.Font;
     Image1.Canvas.Font.Size := FontSize;
     TextHeight := Image1.Canvas.TextHeight(TextStr);
     ARect := Rect(0, 0, 200, TextHeight*2);
     Image1.Canvas.Brush.Color := clYellow;
     Image1.Canvas.FillRect(ARect);
     Image1.Canvas.Brush.Color := clLime;
     DrawText(Image1.Canvas.Handle, PWideChar(TextStr), Length(TextStr), ARect, DT_VCENTER);
    end;



    Как-то не похоже что работает :(
  • Омлет © (18.06.12 01:22) [4]
    Ты б хоть в справку заглянул. DT_VCENTER должен идти в паре с DT_SINGLELINE.
Есть новые Нет новых   [134427   +34][b:0][p:0.001]