with文で
with hogeA do
begin
end;
hogeBもまったく同じ処理やりたいのですが、
with hogeA,hogeB do
だとヘルプを見ると2回HogeAのあとHogeBをじっこうしてくれるわけではなく
HogeBを優先的にやってしまうようです。
今言ったみたいに、HogeA実行、HogeB実行としたいのですが、
with hogeA do
begin
end;
with hogeB do
begin
end;
とせずになにかありますか?
こうゆう事でしょうか。
procedure 小さなお仕事(hoge:Thoge);
begin
with hoge do
begin
end;
end;
procedure 色々な仕事;
begin
小さなお仕事(hogeA);
小さなお仕事(hogeB);
end;
hogeA、hogeBともにThogeであれば、Tsさんの処理で大丈夫ですね。
説明不足でしたが、hogeA,hogeBは違うクラスです。
ただ、処理は同じで問題ないです。
少し裏技のような感じになりますが
Includeを使うといいのではないでしょうか。
Includeの便利な使い方
http://delfusa.main.jp/delfusafloor2/technic/technic/054_UsefulInclude.html
ここに書いております。
> 説明不足でしたが、hogeA,hogeBは違うクラスです。
> ただ、処理は同じで問題ないです。
違うクラスといっても、同じ処理をさせたいということは共通の要素があるわけですよね。
例えば、hogeAがTLabel、hogeBがTButtonだとしたら、TControlが共通の親クラスですから
TControlを受け取るprocedureを定義すればいいことになります。
(操作したいプロパティやメソッドをTControlが公開していなかったら一工夫必要になりますが)
そういう共通の親はいないんでしょうか?
あるいは、両方とも自作のクラスだとしたら、共通の親から派生するようにできませんか?
ツイート | ![]() |