2014-10-09 85 views
0

如何填寫第二個窗體的TImage的畫布上的文本從點擊主窗體上的按鈕? 我試了幾次,但畫布保持空白。帆布填充文本

我嘗試:

Form2.Image1.Canvas.BeginScene; 
Form2.Image1.Canvas.Font.Size:=18; 
Form2.Image1.Canvas.Font.Family:='Arial'; 
Form2.Image1.Canvas.Fill.Color:=claBlack; 
Form2.Image1.Canvas.Font.Style:=[TFontStyle.fsbold]; 
Form2.Image1.Canvas.FillText(TRectF.Create(4,70,70,200),'Hello',true,1,[TFillTex‌​tFlag.RightToLeft], TTextAlign.Leading, TTextAlign.Leading); 
Form2.Image1.Canvas.EndScene; 
+6

您可能會顯示您嘗試過的操作:-) – bummi 2014-10-09 11:20:59

+1

您可以編輯您的問題幷包含必要的源代碼。那麼很容易看出你做錯了什麼。 – Hans 2014-10-09 12:50:07

+0

如果您已經「嘗試了幾次」,您至少應該嘗試一次可以添加到您的問題中。你現在可以編輯它來做到這一點。 :-) – 2014-10-09 13:38:44

回答

2

使用的TImage與firemonkey,你將不得不創建或加載位圖前就能作畫。

Form2.Image1.Bitmap.Create(Round(Form2.Image1.width),Round(Form2.Image1.height)); 
With Form2.Image1.Bitmap.Canvas do 
    begin 
    BeginScene; 
    Font.Size:=18; 
    Font.Family:='Arial'; 
    Fill.Color:=TAlphaColors.Black; 
    Font.Style:=[TFontStyle.fsbold]; 
    FillText(TRectF.Create(4,70,70,200),'Hello',true,1,[TFillTextFlag.ftRightToLeft], TTextAlign.taLeading,TTextAlign.taCenter); 
    EndScene; 
    end; 
+0

非常感謝,現在它工作。 – delphi 2014-10-09 16:01:30

+0

代碼在這個問題上爲我工作 – 2014-10-09 19:06:24

+0

@DavidHeffernan我不能判斷,因爲我在XE3,也許在更高版本中的變化。 – bummi 2014-10-09 19:09:35