Надеюсь, это понятно ...
Я хочу знать, может ли элемент управления 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, а элемент управления Paintbox можно перетаскивать с вертикальными и горизонтальными ограничениями?