Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi text in rechteck MIT wrap (https://www.delphipraxis.net/70829-text-rechteck-mit-wrap.html)

DGL-luke 5. Jun 2006 15:19


text in rechteck MIT wrap
 
hallo,

habe hier gepostet aufgrund der gänzlcih unbegründeten hoffnung, es gäbe dafür eine API-Funktion.

Und zwar will ich Text in ein Rechteck auf einem Canvas schreiben - inklusive Zeilenumbruch, d.h., wenn ein buchstabe nicht mehr ins kästchen passt, gehts eine zeile weiter drunten weiter.


Code:
+-----------+
|abcdefghijk|
|lmnopqrstuv|
+-----------+
 schade xyz
 passt nicht
 mehr hin
also so halt...

Geht das? Hat evtl. schon mal jemand so was gemacht? sonst mach ichs halt selber...

marabu 5. Jun 2006 15:31

Re: text in rechteck MIT wrap
 
Hallo Lukas,

wenn ich dich richtig verstehe, dann suchst du die API-Funktion DrawText().

Delphi-Quellcode:
procedure TDemoForm.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  StartPoint := Point(X, Y);
end;

procedure TDemoForm.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  r: TRect;
begin
  if X < StartPoint.X
    then r.Left := X
    else r.Left := StartPoint.X;
  if Y < StartPoint.Y
    then r.Top := Y
    else r.Top := StartPoint.Y;
  r.Right := Pred(X + r.Left - StartPoint.X);
  r.Bottom := Pred(Y + r.Top - StartPoint.Y);
  DrawText(Canvas.Handle, PAnsiChar(Memo.Text),
    Length(Memo.Text), r, DT_LEFT + DT_WORDBREAK);
end;
Grüße vom marabu

DGL-luke 5. Jun 2006 16:02

Re: text in rechteck MIT wrap
 
:thumb:

Danke, genau das hab ich gesucht!

EDIT: Ok... wie bring ich den dazu, auch innerhalb eines Wortes umzubrechen?

marabu 5. Jun 2006 17:13

Re: text in rechteck MIT wrap
 
Zitat:

Zitat von DGL-luke
wie bring ich den dazu, auch innerhalb eines Wortes umzubrechen?

Da hattest du doch schon einen erfolgversprechenden Ansatz...

Zitat:

Zitat von DGL-luke
sonst mach ichs halt selber...

Unterstützung findest du z.B. hier.

Grüße vom marabu

DGL-luke 5. Jun 2006 20:15

Re: text in rechteck MIT wrap
 
Welcher Ansatz? Aber danke, den Thread hatte ich auch vor Augen, als ich den erstellt hab.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:27 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