![]() |
Re: Hints formatieren
GraphicHint ist in der uses klausel ganz oben in der unit des projektes.
Sie befindet sich im lib ordner und er hat sie auch kompiliert. |
Re: Hints formatieren
es ist auch alles in implementation definiert ... und nur das in interface definierte kann man außerhalb einer Unit verwenden
|
Re: Hints formatieren
:wall: Das hab ich glatt übersehen.
|
Re: Hints formatieren
Danke! Damit klappts erstmal gut, allerdings ignoriert er #13#10 und schreibt in der gleichen Zeile weiter...
|
Re: Hints formatieren
Canvas.TextOut nutzt Windows.ExtTextOut ... nimm stattdessen mal Windows.DrawText, denn dieses behandelt die Zeilenumbrüche.
![]() ![]() |
Re: Hints formatieren
Danke, kannst du mir bitte sagen, was die Parameter bedeuten?(Was ich dort einfüllen muss.) Die Englische Erklärung verstehe ich nicht wirklich...
danke, mfg |
Re: Hints formatieren
Bitteschön: kurz zusammengetippt und getestet, sollte funktionieren:
Delphi-Quellcode:
Kannst ja mal ein Test-Projekt machen mit einer Paintbox drauf und den obigen Code zum Zeichnen verwenden.
procedure TForm1.PaintBox1Paint(Sender: TObject);
var x : string; var r : TRect; begin //-- x := 'Das ist ein' + #13#10 + 'langer Text mit Zeilenumbruch...'; // Test-String // r := Rect(0,0,0,0); // Rect mit Standardwerten setzen // Left und Top zur Positionierung verwenden, Right und Bottom wird spaeter berechnet // with PaintBox1.Canvas do // Font-Eigenschaften setzen begin Font.Color := clBlue; Font.Name := 'Arial'; Font.Style := [fsBold]; end; // // Die DrawText-Routine mit DT_CALCRECT als letzen Parameter zeichnet den Text nicht, // sondern berechnet lediglich die Groesse (Right, Bottom) fuer das Rect // DrawText(PaintBox1.Canvas.Handle,PChar(x),Length(x),r,DT_CALCRECT); // // Ausgabe des Textes (linksbuendig) // DrawText(PaintBox1.Canvas.Handle,PChar(x),Length(x),r,0); // // ueber der letzten Parameter kann zudem der Text formatiert werden, beispielsweise // mittig zentriert werden, etc. // end; Bei Fragen einfach fragen ;-) Patti |
Re: Hints formatieren
versuch mal
Delphi-Quellcode:
procedure TGraphicHintWindow.Paint;
var R: TRect; bmp: TBitmap; begin R := ClientRect; //Inc(R.Left, 2); wenn, dann gleich alle seiten beschneiden, //Inc(R.Top, 2); aber da diese Werte hier eh nicht benutzt wurde, //Dec(R.Bottom, 2); kann es auch weggelassen werden //Dec(R.Right, 2); (vorallem da Bottom und Right da unten "etwas" falsch verrechnet werden) {******************************************************* Der folgende Code ist ein Beispiel wie man die Paint Prozedur nutzen kann um einen benutzerdefinierten Hint zu erzeugen. The folowing Code ist an example how to create a custom Hint Object. : } bmp := TBitmap.Create; bmp.LoadfromFile('D:\hint.bmp'); with Canvas do begin Brush.Style := bsSolid; Brush.Color := clsilver; Pen.Color := clgray; Rectangle(0, 0, 18, R.Bottom + 1); Draw(2,(R.Bottom div 2) - (bmp.Height div 2), bmp); end; bmp.Free; //Beliebige HintFarbe //custom Hint Color Color := clWhite; Canvas.Brush.Style := bsClear; R.Left := 20; R.Top := (R.Bottom div 2) - (Canvas.TextHeight(Caption) div 2); DrawText(Canvas.Handle, PChar(Caption), -1, R, DT_LEFT or DT_TOP); {********************************************************} end; PS: ![]() oder gib da gleich statt dem einzelnem Text die URL ein http://translate.google.com/translate?js=y&prev=_t&hl=de&ie=UTF-8&u=http%3A%2F%2Fmsdn.microsoft.com%2Fde-de%2Flibrary%2Fdd162498(en-us%2CVS.85).aspx&sl=en&tl=de&history_state0= |
Re: Hints formatieren
Danke, das funktioniert erstmal, später werd ich probieren, dass er einzelne Wörter fett und co. schreiben kann. Da werd ich sicher noch Fragen haben :lol:
Bis Später also, mfG @ himitsu: Danke ebenfalls |
Re: Hints formatieren
da wirst du dann den String zerlegen und alles einzeln zeichnen müssen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz