There is no overload version of TextRect that can be called with these arguments

Delphi

28/06/2012

Olá amigos

Ambiente Delphi 2010

O método TextRect do Canvas tem duas implementações conforme as declarações abaixo:

procedure TextRect(var Rect: TRect; var Text: string; TextFormat: TTextFormat = []); overload; override;
procedure TextRect(Rect: TRect; X, Y: Integer; const Text: string); overload; override;

O método Canvas.TextRect com os parâmetros do exemplo abaixo funciona (2º da declaração).

procedure TnHabilidadeBoletimHistorico.Button2Click(Sender: TObject);
var
X1, X2, Y1, Y2: Integer;
LvRect: TRect;
begin
X1 := 5;
X2 := 305;
Y1 := 5;
Y2 := 500;
LvRect := Rect(X1, Y1, X2, Y2);
Canvas.TextRect(LvRect, X1, Y1, TESTE DE IMPRESSÃO COM O MÉTODO TEXTRECT DO CANVAS);
Canvas.Brush.Color := clBlack;
Canvas.FrameRect(LvRect);
end;

Porém o outro método com os parâmetros do exemplo abaixo não funciona (1º da declaração).

procedure TnHabilidadeBoletimHistorico.Button2Click(Sender: TObject);
var
X1, X2, Y1, Y2: Integer;
LvRect: TRect;
begin
X1 := 5;
X2 := 305;
Y1 := 5;
Y2 := 500;
LvRect := Rect(X1, Y1, X2, Y2);
Canvas.TextRect(LvRect, TESTE DE IMPRESSÃO COM O MÉTODO TEXTRECT DO CANVAS, [tfLeft]);
Canvas.Brush.Color := clBlack;
Canvas.FrameRect(LvRect);
end;

gerando a seguinte mensagem de erro:

E2250 There is no overloaded version of TextRect that can be called with these arguments.

Já fiz e refiz, conferi na unit Graphics na classe TCanvas para ver se tem implementação. Ao meu ver está tudo correto. Será um bug do delphi?
Teria alguma unit do delphi a ser corrigida e recompilada?

Se alguém dos colegas tiver resolvido este problema e desejar compartilhar como fazer, fico agradecido. Pois pesquisei pela mensagem de erro e não encontrei praticamente nada sobre o erro, então, resolvi postar;

Delmar Wichnieski
Ajuricaba/RS
Delmar Observação)

Delmar Observação)

Curtidas 0

Respostas

Delmar Observação)

Delmar Observação)

28/06/2012

Resolvido.

Eu estava passando uma string no 2º parâmetro e a função espera um Var.
Bastou declarar uma variável e atribuir para a variável a string e passar a variável no 2º parâmetro.
GOSTEI 0
POSTAR