メタファイルを作りたいのですが、ひとつのプロシージャ内で処理する方法はわかったんですけど、詳細を細かく設定する文が多すぎて間違いが起きやすいので、子プロシージャに処理をさせたいと思っています。
子プロシージャに何を渡せばいいのかわかりません。
教えて頂けないでしょうか?
///////////////////////////////////////////
//親文
MergeMF := TMetaFile.Create;
with TMetafileCanvas.Create(MergeMF, 0) do
try
//記述文
finally
MergeMF.Free;
end;
//////////////////////////////////////////
//子プロシージャ
//[iTitle]とか"所属課リスト"ってところを引数で処理して再利用したいのです。
ItemT := Round(ItemList[iTitle].mmTop * DotY);
ItemB := Round((ItemList[iTitle].mmTop + ItemList[iTitle].mmHeight) * DotY);
ItemL := Round(ItemList[iTitle].mmLeft * DotX);
ItemR := Round((ItemList[iTitle].mmLeft + ItemList[iTitle].mmWidth) * DotX);
FieldRect := Rect(ItemL,ItemT,ItemR,ItemB);
Pen.Style := ItemList[iTitle].PenStyle;
Pen.Color := ItemList[iTitle].PenColor;
Pen.Width := ItemList[iTitle].PenWidth;
Brush.Style := ItemList[iTitle].BrushStyle;
Brush.Color := ItemList[iTitle].BrushColor;
case ItemList[iTitle].Shape of
stRectAngle:Rectangle(FieldRect);
stEllipse:Ellipse(FieldRect);
stRoundRect:RoundRect(ItemL,ItemT,ItemR,ItemB,ItemList[iTitle].CornerRound,ItemList[iTitle].CornerRound);
else
Brush.Style := bsClear;
end;
/文字の印字
Font.Name := ItemList[iTitle].FontName;
Font.Style:= ItemList[iTitle].FontStyle;
Font.Color:= ItemList[iTitle].FontColor;
Font.Size := ItemList[iTitle].FontSize;
//ShowMessage('iCode');
ExportText := '所属課リスト';
case ItemList[iTitle].Alignment of
0:DrawTextEX(Handle,PChar(ExportText),Length(PChar(ExportText)),FieldRect,DT_SINGLELINE + DT_VCENTER + DT_LEFT,Nil);
1:DrawTextEX(Handle,PChar(ExportText),Length(PChar(ExportText)),FieldRect,DT_SINGLELINE + DT_VCENTER + DT_CENTER,Nil);
2:DrawTextEX(Handle,PChar(ExportText),Length(PChar(ExportText)),FieldRect,DT_SINGLELINE + DT_VCENTER + DT_RIGHT,Nil);
end;
proceder Form1.test00(..);
var MCanvas:TMetafileCanvas;
..
begin
..
MCanvas:= TMetafileCanvas.Create(MergeMF, 0);
try
test01(MCanvas,iTitle,listSt);
..
end;
proceder Form1.test01(MCanvas:TMetafileCanvas;iTitle,listSt:String);
begin
..
with MCanvas do
begin
..
ExportText := listSt;
..
end;
..
end;
で動きますかね。
ありがとうございました。
うまく動きました。
ツイート | ![]() |