PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Escrever/desenhar na vertical texto com várias linhas com Canvas ou com a API do windows #419126

29/06/2012

0

Amigos

Ambiente desenvolvimento: D7 ou D2010
Arquitetura windows: xp, vista, win7


Alguém já conseguiu escrever na VERTICAL (ângulo de 90 graus ou 270 graus) um texto longo (texto com quantidade máxima de caracteres, com ou sem quebra de linhas) que irá gerar VÁRIAS linhas (enquandrando o texto dentro de uma área delimitada, como se fosse um retângulo, considerando que o tamanho do retângulo é previamente definido [baseado na quantidade de caracteres e tamanho da fonte] para suportar todo o texto - sem necessidade de barras de rolagem) com alguma destas funções?

procedure TCanvas.TextOut(X, Y: Integer; const Text: String); //internamente chama Windows.ExtTextOut

procedure TCanvas.TextRect(Rect: TRect; X, Y: Integer; const Text: string); //internamente chama Windows.ExtTextOut

procedure TCanvas.TextRect(var Rect: TRect; var Text: string; TextFormat: TTextFormat = []); //internamente chama DrawTextEx >> function DrawTextEx; external user32 name DrawTextExW;


Ou usando diretamente a API do windows:

function Windows.ExtTextOut(DC: HDC; X, Y: Integer; Options: Longint; Rect: PRect; Str: PWideChar; Count: Longint; Dx: PInteger): BOOL; external gdi32 name ExtTextOutW;

function DrawTextEx; external user32 name DrawTextExW;

Outras APIs do windows que desconheço.

Não estou a procura de componentes como QRAngledLabel para desenhar em relatórios ou similar para desenhar no formulário.

A solução que procuro é para ser usada com o Canvas ou com uma função nativa da API do windows.

Hoje, a necessidade de escrever na vertical com várias linhas é um problema bastante recorrente, e meu desejo é desenhar livremente sem o uso de componentes.

Agradeço sugestões, dicas, trechos de códigos, etc, etc, etc

Delmar Wichnieski
Ajuricaba/RS
Delmar Observação)

Delmar Observação)

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar