Forum
Grundkurs
»Introduktion
»Snabbguide
»Komponenter
»Händelser
»Strängar
»Räkna med Delphi »Egna
typer
»Selektion
»Iteration
»Menyer
»Funktioner
»Arraystrukturer
Tips & Tricks
»Nya tips
»Blandat
»Databaser
»Filer
»Forms
»Grafik
»Internet
»Komponenter
»Matematik
»Multimedia
»Objekt/ActiveX
»Skrivare
»Strängar
»System
»Mest lästa tips
Artiklar
»Delphi och ADO
»Bygga en DLL
»Skapa en enkel rapport
»Hantera registret
»Enheter, units
»Klassen TCanvas
»Använd LookUp Controls
Nya
tips
Lägg
till tips
Delphilänkar
Gästbok
|
|
|
|
Visa text diagonalt
|
Kategori: System
Inlagt: 2005-08-21
Läst: 1335
Inlagt av: Staffan Berg
|
Beskrivning |
För att visa text diagonalt (eller i någon annan vinkel) måste du först skapa en Font. Detta görs med funktionen CreateFontIndirect. Därefeter kan du välja vinkel mellan 0,1 och 45 grader. När fonten är skapad och utskriven behöver du ej längre objektet så denna bör tas bort med DeleteObject.
|
Kod |
procedure Draw_Watermark_on_DC (const aDC : hDC; const x,y : integer); var plf : TLOGFONT; hfnt, hfntPrev : HFONT; const txt1 : PChar = 'Created with the demo version of'#0; txt2 : PChar = ' pasDOC'#0; WaterMarkWidth = 300; WaterMarkHeight= 300; begin // Specify a font typeface name and weight. ZeroMemory (@plf, sizeof(plf)); lstrcpy(plf.lfFaceName, 'Arial'); plf.lfHeight := 30; plf.lfEscapement := 0; plf.lfOrientation:= 450; plf.lfWeight := FW_NORMAL; plf.lfCharset:= ANSI_CHARSET; plf.lfOutPrecision := OUT_TT_PRECIS; plf.lfQuality := PROOF_QUALITY; hfnt := CreateFontIndirect(plf); // Draw the rotated string SetBkMode(aDC, TRANSPARENT); hfntPrev := SelectObject(aDC, hfnt); Windows.TextOut(aDC, x, y + WaterMarkHeight - 25, txt1, strlen(txt1)); Windows.TextOut(aDC, x+plf.lfHeight * 3, y + WaterMarkHeight - 25, txt2, strlen(txt2)); SelectObject(aDC, hfntPrev); DeleteObject(hfnt); end;
|
|
|