|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"ラバーバンドの表示"
グラフイックツールによくあるマウスドラッグで伸び縮みするラバーバン
ドのようなものを表示するサンプルプログラムです。
別掲の透明ウィンドウ(nifty:FDELPHI/MES/16/1113)と組み合わせると画
面キャプチャープログラムに応用できます。
フォームに TShapeコンポーネントをひとつ置いて下さい。
Pen.Modeや Pen.Colorの値を変更すると色々変わった効果が得られると思
います。
var
OriginX, OriginY: Integer;
procedure TForm1.FormCreate(Sender: TObject);
begin
Shape1.Visible:= False;
Shape1.Brush.Style:= bsClear;
Shape1.Pen.Style:= psDot;
Shape1.DragCursor:= crCross;
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
begin
OriginX:= X;
OriginY:= Y;
Shape1.SetBounds(OriginX, OriginY, 0, 0);
Shape1.Show;
Shape1.BeginDrag(False);
end;
end;
procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
if TComponent(Source).Name = 'Shape1' then
begin
if X >= OriginX then
Shape1.Width:= X - OriginX else
begin
Shape1.Left:= X;
Shape1.Width:= OriginX - X;
end;
if Y >= OriginY then
Shape1.Height:= Y - OriginY else
begin
Shape1.Top:= Y;
Shape1.Height:= OriginY - Y;
end;
end;
end;
procedure TForm1.Shape1EndDrag(Sender, Target: TObject; X, Y: Integer);
begin
Shape1.Hide;
with Shape1 do ShowMessage('Left=' + IntToStr(Left) +
' Width=' + IntToStr(Width) + #13 +
'Top=' + IntToStr(Top) + ' Height=' + IntToStr(Height));
end;
○ 心を打つ美しい文書作りは「えるの〜と」 ○
http://member.nifty.ne.jp/h-triton/
Avalon's Friendly Crew #80008 H-Triton (^^) since 1996
Original document by H-Triton 氏 ID:(QZV11422)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|