Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Direct2D Funktion ähnlich ExtTextout (https://www.delphipraxis.net/163149-direct2d-funktion-aehnlich-exttextout.html)

Yakumo500 17. Sep 2011 08:40

Direct2D Funktion ähnlich ExtTextout
 
Hi,

Mit GDI kann man ja Text mit Abstand zwischen den einzelnen Zeichen ausgeben.
Mein Code:
Delphi-Quellcode:
procedure TGDIModule.DrawText(const X, Y: Integer; const Rect: TRect; const Text: string);
var DistanceList: PIntegerArray;
    i: Integer;
    CurChar: Char;
    StrLen: Integer;
begin
  StrLen := Length(Text);

  GetMem(DistanceList, StrLen * SizeOf(Integer));
  for i := 0 to StrLen - 1 do
  begin
    CurChar := Text[i + 1];
    DistanceList[i] := CharWidth{ Die Breite eines Zeichens. Wobei alle Zeichen gleich breit sein müssen } + FTextSpacing;
  end;

  ExtTextOut(FCanvasHandle, X, Y, ETO_CLIPPED, @Rect, PChar(Text), StrLen, Pointer(DistanceList));
  FreeMem(DistanceList);
end;
FTextSpacing kann ich dann auf unterschiedliche Werte setzen und der Abstand zwischen 2 Buchstaben ist größer oder kleiner.
Jetzt wollte ich Direct2D zum Zeichnen benutzen aber ich finde keine Funktion bei der ich den Abstand setzen kann.
Wisst ihr Hilfe?

Edlmann 17. Sep 2011 13:02

AW: Direct2D Funktion ähnlich ExtTextout
 
Schreib doch einfach eine eigene Prozedur dafür. Ich hab mich mit D2D noch nicht beschäftigt,
aber wenn du eine Prozedur zum Text ausgeben hast, benutz diese doch einfach für einzelne
Buchstaben, und berechne den Abstand der Zeichen selber. Das ist zwar performance-mäßig nicht
das allerbeste, sollte aber keinen merklichen Unterschied machen (zumindest nach meinen Erfahrungen
mit OpenGL)

Yakumo500 17. Sep 2011 15:51

AW: Direct2D Funktion ähnlich ExtTextout
 
Naja grade auf die Performance kommt es mir aber an (hätte ich vielleicht erwähnen sollen :-D). Ich will nämlich einen Text Editor programmieren, bei dem man zwischen GDI und Direct2D bei der Darstellung wählen kann.

Edlmann 17. Sep 2011 18:51

AW: Direct2D Funktion ähnlich ExtTextout
 
Probiers doch einfach mal aus, und schau dir die Performance an. Wie gesagt, bei mehreren hundert Durchläufen wird man einen Unterschied feststellen können, aber bei nur ein paar (für einen Editor wirst du ja so ca 60 Zeilen haben...) dürfte das nicht so einen großen Unterschied machen.

MaBuSE 19. Jun 2018 17:23

AW: Direct2D Funktion ähnlich ExtTextout
 
Zitat:

Zitat von Yakumo500 (Beitrag 1125029)
NIch will nämlich einen Text Editor programmieren, bei dem man zwischen GDI und Direct2D bei der Darstellung wählen kann.

Was ist denn aus Deinem Projekt geworden ?

TiGü 20. Jun 2018 07:29

AW: Direct2D Funktion ähnlich ExtTextout
 
Ob er nach fünf Jahren wohl nochmal in die DP reinschaut?


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