Delphi-PRAXiS
Seite 2 von 3     12 3      

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 Hints formatieren (https://www.delphipraxis.net/138023-hints-formatieren.html)

Vasco da Gama 2. Aug 2009 17:50

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.

himitsu 2. Aug 2009 18:13

Re: Hints formatieren
 
es ist auch alles in implementation definiert ... und nur das in interface definierte kann man außerhalb einer Unit verwenden

DeddyH 2. Aug 2009 18:17

Re: Hints formatieren
 
:wall: Das hab ich glatt übersehen.

Vasco da Gama 3. Aug 2009 09:14

Re: Hints formatieren
 
Danke! Damit klappts erstmal gut, allerdings ignoriert er #13#10 und schreibt in der gleichen Zeile weiter...

himitsu 3. Aug 2009 11:06

Re: Hints formatieren
 
Canvas.TextOut nutzt Windows.ExtTextOut ... nimm stattdessen mal Windows.DrawText, denn dieses behandelt die Zeilenumbrüche.

MSDN-Library durchsuchenExtTextOut MSDN-Library durchsuchenDrawText

Vasco da Gama 3. Aug 2009 12:10

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

patti 3. Aug 2009 12:41

Re: Hints formatieren
 
Bitteschön: kurz zusammengetippt und getestet, sollte funktionieren:

Delphi-Quellcode:
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;
Kannst ja mal ein Test-Projekt machen mit einer Paintbox drauf und den obigen Code zum Zeichnen verwenden.

Bei Fragen einfach fragen ;-)

Patti

himitsu 3. Aug 2009 12:57

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: http://translate.google.com/
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=

Vasco da Gama 3. Aug 2009 13:00

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

himitsu 3. Aug 2009 13:23

Re: Hints formatieren
 
da wirst du dann den String zerlegen und alles einzeln zeichnen müssen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:10 Uhr.
Seite 2 von 3     12 3      

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