按照wudi的方法,我写的代码如下: var Form1: TForm1; wid,hei,lef,top: integer;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); begin if FCurrentChart <> nil then wid := FCurrentChart.Width; hei := FCurrentChart.Height; lef := FCurrentChart.Left; top := FCurrentChart.Top; FCurrentChart.BringToFront; FCurrentChart.Width := 400; FCurrentChart.Height := 350; FCurrentChart.Left := 180; FCurrentChart.Top := 90; end;procedure TForm1.ChartClick(Sender: TObject); begin if Sender is TChart then FCurrentChart := Sender as TChart; end;procedure TForm1.FormCreate(Sender: TObject); var Idx: Integer; a,b:integer; begin for Idx := 0 to Pred(ComponentCount) do if Components[Idx] is TChart then (Components[Idx] as TChart).OnClick := ChartClick; end;procedure TForm1.Button2Click(Sender: TObject); begin if FCurrentChart <> nil then FCurrentChart.Width := wid; FCurrentChart.Height := hei; FCurrentChart.Left := lef; FCurrentChart.Top := top; end; 结果运行的时候,一点击button1不光是chart移动,窗体也跟着往下移动,如果chart在窗体的下面的话,点击button1后,窗体居然也跟着跑到电脑屏幕的下半截去了,这是怎么回事呀?请帮忙看看改改,谢谢!
语法上有些毛病,先改了再调 if FCurrentChart <> nil then begin wid := FCurrentChart.Width; hei := FCurrentChart.Height; lef := FCurrentChart.Left; top := FCurrentChart.Top; FCurrentChart.BringToFront; FCurrentChart.Width := 400; FCurrentChart.Height := 350; FCurrentChart.Left := 180; FCurrentChart.Top := 90; end。procedure TForm1.Button2Click(Sender: TObject); begin if FCurrentChart <> nil then begin FCurrentChart.Width := wid; FCurrentChart.Height := hei; FCurrentChart.Left := lef; FCurrentChart.Top := top; end end;
button1方法图片的时候,用一个全局变量之类的东西记录下当前的位置和大小,button2根据这个信息再缩放回去就完了。
var
Form1: TForm1;
wid,hei,lef,top: integer;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
if FCurrentChart <> nil then
wid := FCurrentChart.Width;
hei := FCurrentChart.Height;
lef := FCurrentChart.Left;
top := FCurrentChart.Top;
FCurrentChart.BringToFront;
FCurrentChart.Width := 400;
FCurrentChart.Height := 350;
FCurrentChart.Left := 180;
FCurrentChart.Top := 90;
end;procedure TForm1.ChartClick(Sender: TObject);
begin
if Sender is TChart then
FCurrentChart := Sender as TChart;
end;procedure TForm1.FormCreate(Sender: TObject);
var
Idx: Integer;
a,b:integer;
begin
for Idx := 0 to Pred(ComponentCount) do
if Components[Idx] is TChart then
(Components[Idx] as TChart).OnClick := ChartClick;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
if FCurrentChart <> nil then
FCurrentChart.Width := wid;
FCurrentChart.Height := hei;
FCurrentChart.Left := lef;
FCurrentChart.Top := top;
end;
结果运行的时候,一点击button1不光是chart移动,窗体也跟着往下移动,如果chart在窗体的下面的话,点击button1后,窗体居然也跟着跑到电脑屏幕的下半截去了,这是怎么回事呀?请帮忙看看改改,谢谢!
if FCurrentChart <> nil then
begin
wid := FCurrentChart.Width;
hei := FCurrentChart.Height;
lef := FCurrentChart.Left;
top := FCurrentChart.Top;
FCurrentChart.BringToFront;
FCurrentChart.Width := 400;
FCurrentChart.Height := 350;
FCurrentChart.Left := 180;
FCurrentChart.Top := 90;
end。procedure TForm1.Button2Click(Sender: TObject);
begin
if FCurrentChart <> nil then
begin
FCurrentChart.Width := wid;
FCurrentChart.Height := hei;
FCurrentChart.Left := lef;
FCurrentChart.Top := top;
end
end;