Spille med fonts

Dette tipset vil vise deg hvordan du tar dine TForm.Canvas og trekke noen vinklet tekst på det samtidig bevare de opprinnelige skrift og pensel verdier for andre operasjoner. Arbeide med fonter er ikke veldig vanskelig når du forstår hva youare gjør. Det er få felt til settet, men mye belønning i theoutcome. Dette tipset vil vise deg hvordan du tar dine TForm.Canvas og drawsome vinklet tekst på den samtidig bevare det opprinnelige skriften og brushvalues ​​for andre operasjoner. For å gjøre dette vil vi være med TLogFontrecord struktur med GetObject () og CreateFontIndirect () Win32 APIcalls. Vi vil også bruke DrawText () WIN32 API-kall for å bli ourtext formatert riktig på produksjonen sin enhet. Det er manymanipulations du kan utføre på denne rutinen, så ha det gøy å spille [CODE - et bilde er på min nettside] prosedyre TForm1.FormPaint (Sender: TObject);. Var LogFont: TLogFont; tmpCanvas: TCanvas; tmpRect: TRect; x1, x2, y1, y2: Integer; begynne tmpCanvas: = TCanvas.Create; tmpCanvas.Handle: = GetWindowDc (Handle); prøv GetObject (Canvas.Font.Handle, sizeof (LogFont),LogFont); LogFont.lfEscapement: = 90 * 10; LogFont.lfOrientation: = 90 * 10; LogFont.lfOutPrecision: = OUT_TT_ONLY_PRECIS; LogFont.lfFaceName: = 'Arial'; LogFont.lfHeight: = 15; LogFont.lfWeight: = FW_BOLD; LogFont.lfQuality: = PROOF_QUALITY; tmpCanvas.Font.Handle: = CreateFontIndirect (LogFont); tmpCanvas.Font.Color: = clWhite; tmpCanvas.Brush.Color: = clNavy; X1: = GetSystemMetrics (SM_CXEDGE) + GetSystemMetrics (SM_CXBORDER); x2: = 20; Y1: = GetSystemMetrics (SM_CYCAPTION) + GetSystemMetrics (SM_CYEDGE) + GetSystemMetrics (SM_CYBORDER) + 1; y2: = Høyde- GetSystemMetrics (SM_CYEDGE) - GetSystemMetrics (SM_CYBORDER); tmpRect: = Rekt (x1, y1, x2, y2); tmpCanvas.FillRect (tmpRect); DrawText (tmpCanvas.Handle, 'Lou' s Delphi Tip of the Day ", -1, tmpRect, DT_BOTTOM eller DT_SINGLELINE); endelig tmpCanvas.Free; end, end; Anmeldelser



Previous:
Next Page: