希望这很清楚...
我想知道 PaintBox 控件是否可以允许用户从左到右滚动数据?想象一下它就像一个示波器显示器,其中一次捕获允许缩放和滚动。在这种情况下,我不需要缩放。所以,我的 Paintbox 是 800x600,我的数据集是 16000x600。
我可以在 800x600 区域中绘制,如下所示,完全没有问题,并且可以应用缩放来获取所有数据,但我希望将 Y 轴缩放为 1 并能够向左/向右滚动/拖动查看数据。
for J := 1 to ((Form1.Memo1.Lines.count)-1) do
begin
MyTorques[J] := StrToInt(Form1.Memo1.Lines[J]);
Tqmult := ((StrToInt(Label6.Caption) + 500) Div 600);
Ycalc[J] := ((MyTorques[J]) Div Tqmult);
InvY[J] := (600 - (Ycalc[J]));
X1 := (J-1);
Y1 := InvY[J-1];
X2 := (J);
Y2 := InvY[J];
with PaintBox1.Canvas do
begin
pen.Style := psSolid;
pen.Color := clBlack;
pen.Width := 1;
moveto(X1, Y1);
Lineto(X2, Y2);
Label51.Caption := IntToStr(X1);
Label52.Caption := IntToStr(Y1);
Label28.Caption := IntToStr(X2);
Label29.Caption := IntToStr(Y2);
Label35.Caption := IntToStr(Tqmult);
Label37.Caption := IntToStr(Ycalc[J]);
Label39.Caption := IntToStr(InvY[J]);
Label41.Caption := IntToStr(MyTorques[J]);
end;
if MyTorques[J] < Smallest Then
Begin
Smallest := MyTorques[J];
SmallestIndex := J;
end;
if MyTorques[J] > Largest Then
begin
Largest := MyTorques[J];
LargestIndex := J;
end;
Label30.Caption := IntToStr(Smallest);
Label31.Caption := IntToStr(SmallestIndex);
Label32.Caption := IntToStr(Largest);
Label33.Caption := IntToStr(LargestIndex);
end;
那么,我的paintbox.canvas 是否需要大小为 16000x600,并在顶部大小为 800x600 上方有一个“窗口”,并且画框控件可以在垂直和水平约束下拖动?