AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi GDI+ Variante zu TextRect

GDI+ Variante zu TextRect

Ein Thema von Tonic1024 · begonnen am 24. Okt 2012 · letzter Beitrag vom 24. Okt 2012
Antwort Antwort
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#1

GDI+ Variante zu TextRect

  Alt 24. Okt 2012, 17:14
Ich baue grad eine Bildschirmausgabe von Canvas auf GDI+ um. Bei folgender Zeile kommt mein fast abgeschlossener Umbau nun aber ins stocken.

Canvas.Textrect(Textfeld, Text, [tfWordBreak]); Gibts in dem ganzen Parameter Kuddelmuddel eine einfache Lösung für das Problem oder muss ich anfangen Buchstaben für nen selbstgebauten Zeilenumbruch zu zählen?

Gruß,

Toni
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: GDI+ Variante zu TextRect

  Alt 24. Okt 2012, 17:24
ohne Library?
Delphi-Quellcode:
const
  S = 'Ein kleiner Testtest der etwas länger werden könnte';
var
  r:Trect;
begin
  r := Rect(40, 10, 100, 100);
  DrawTextEx(Canvas.Handle, PChar(S), length(S),r,DT_WORDBREAK,nil)
end;

http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)

Geändert von Bummi (24. Okt 2012 um 17:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#3

AW: GDI+ Variante zu TextRect

  Alt 24. Okt 2012, 17:32
Irgendwie hatte ich schon das Gefühl, dass du dich auf das Thema stürzen wirst.

Ich verwende die Units von progdigy.com. DrawTextEx scheinen aber nicht enthalten zu sein.
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: GDI+ Variante zu TextRect

  Alt 24. Okt 2012, 17:42
Sorry, ich war wieder mal fasch abgebogen

Delphi-Quellcode:
Procedure BeispielTextout(graphics:TGPGraphics;Const TheText:String;Rect:TGPRectF;Color:TGPColor;HAlign,VAlign:TStringAlignment;Size:Integer=10;FontName:String='Arial');
var
  StringFormat:TGPStringFormat;
  FontFamily : TGPFontFamily;
  Font : TGPFont;
  Pen : TGPPen;
  Brush : TGPSolidBrush;
begin
   StringFormat:= TGPStringFormat.Create;
   FontFamily := TGPFontFamily.Create(FontName);
   Font := TGPFont.Create(FontFamily, Size, FontStyleRegular, UnitPixel);
   Pen := TGPPen.Create(Color);
   Brush := TGPSolidBrush.Create(Color);
   stringFormat.SetAlignment(HAlign);
   stringFormat.SetLineAlignment(VAlign);
   graphics.DrawString(TheText,-1,Font,Rect,stringformat,Brush);
   Pen.Free;
   Brush.Free;
   StringFormat.Free;
   FontFamily.Free;
   Font.Free;
end;
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#5

AW: GDI+ Variante zu TextRect

  Alt 24. Okt 2012, 17:55
Stringformat... Ich hätt dich mal gleich fragen sollen statt den halben Nachmittag sinnlos umher zu googeln.

Danke, klappt.

Toni
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: GDI+ Variante zu TextRect

  Alt 24. Okt 2012, 17:56
Wenn Du am Umstellen bist wirst Du früher oder später bei einem Problem aufschlagen, welches mich seinerzeit Nerven gekostet hat. TGPImage aus TGraphic's zu bekommen.
Delphi-Quellcode:
//2010 by Thomas Wassermann
// Halten von Grafiken in Stream zur Verwendung als TGPImage
    TGPImageWrapper=Class(TObject)
       private
       FImage: TGPImage;
       FStream: TMemoryStream;
       public
       Constructor Create(FileName: String);overload;
       Constructor Create(AGraphic:TGraphic);overload;
       Destructor Destroy;override;
       Public
       Property Image:TGPImage read FImage;
    end;


constructor TGPImageWrapper.Create(AGraphic: TGraphic);
begin
  inherited Create;
  FStream := TMemoryStream.Create;
  AGraphic.SaveToStream(FStream);
  Fimage:= TGPImage.Create(TStreamAdapter.Create(FStream));
end;

constructor TGPImageWrapper.Create(FileName: String);
begin
  inherited Create;
  Fimage:= TGPImage.Create(FileName);
end;

destructor TGPImageWrapper.Destroy;
begin
  FImage.Free;
  FStream.Free;
  inherited;
end;


// Verwendung on TGPImages aus einer Imagelist (z.B. 32-Bit, PNG's transparent)

procedure CreateGPList(il:TDragImageList;var ol:TObjectList<TGPImageWrapper>);
var
  i:Integer;
  ico:TIcon;
begin
  ol := TObjectList<TGPImageWrapper>.Create;
  ol.OwnsObjects := true;
  for I := 0 to il.Count - 1 do
    begin
      ico:=TIcon.Create;
      try
        IL.GetIcon(i,ico);
        ol.Add(TGPImageWrapper.Create(ico));
      finally
        ico.Free;
      end;
    end;
end
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#7

AW: GDI+ Variante zu TextRect

  Alt 24. Okt 2012, 18:05
Ja, das war knifflig. Hab das so gelöst: TStreamAdapter Patch

Aber danke für den Code und das vorausschauende mitdenken - erneut... Könnte sich noch als nützlich erweisen.

Toni
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 23:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf