AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Direct2D Funktion ähnlich ExtTextout

Offene Frage von "TiGü"
Ein Thema von Yakumo500 · begonnen am 17. Sep 2011 · letzter Beitrag vom 20. Jun 2018
Antwort Antwort
Yakumo500

Registriert seit: 15. Nov 2008
Ort: Darmstadt
106 Beiträge
 
#1

Direct2D Funktion ähnlich ExtTextout

  Alt 17. Sep 2011, 09:40
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?
  Mit Zitat antworten Zitat
Edlmann

Registriert seit: 19. Nov 2010
212 Beiträge
 
#2

AW: Direct2D Funktion ähnlich ExtTextout

  Alt 17. Sep 2011, 14:02
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)
  Mit Zitat antworten Zitat
Yakumo500

Registriert seit: 15. Nov 2008
Ort: Darmstadt
106 Beiträge
 
#3

AW: Direct2D Funktion ähnlich ExtTextout

  Alt 17. Sep 2011, 16:51
Naja grade auf die Performance kommt es mir aber an (hätte ich vielleicht erwähnen sollen ). Ich will nämlich einen Text Editor programmieren, bei dem man zwischen GDI und Direct2D bei der Darstellung wählen kann.
  Mit Zitat antworten Zitat
Edlmann

Registriert seit: 19. Nov 2010
212 Beiträge
 
#4

AW: Direct2D Funktion ähnlich ExtTextout

  Alt 17. Sep 2011, 19:51
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.
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Direct2D Funktion ähnlich ExtTextout

  Alt 19. Jun 2018, 18:23
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 ?
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Direct2D Funktion ähnlich ExtTextout

  Alt 20. Jun 2018, 08:29
Ob er nach fünf Jahren wohl nochmal in die DP reinschaut?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:37 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