Adjust实际上不是一个由程序员调用的方法。它是控键内部用来实现AutoSize的,当AutoSize为True的时候,这个方法会被控键内部调用。你要改变控键大小的话直接使用Width或者Height就行了吧。类似这样的内部方法还有AdjustClientRect等。

解决方案 »

  1.   

    AdjustSize是TControl的保护方法,TImage当然不能使用。如果一定要用也是有办法的,不过好像不需要。
      

  2.   

    AdjustSize是protected不能被TImage继承
      

  3.   

    哈哈,看来DELPHI程序员对OOP理解不够深呀。
      

  4.   

    一叶障目!保护的方法是子类可以调用而类对象的使用者不能调用。数据和属性也是如此。
    TImage的方法能调用AdjustSize,但TImage对象所在的Form是它的使用者不能调用这个方法。
    如果你将TImage.AutoSize设置为True的话,它会自动调用AdjustSize调整自身大小来适应图形的大小。
      

  5.   

    to allex(民工) 
    >>看来DELPHI程序员对OOP理解不够深呀。 
    这句话说得不客观,“对OOP理解不够深”不是因为是“DELPHI程序员”,而是还没学好OOP,
    没学好OOP的话,C++程序员也会提出若干问题。
    以下代码与OOP概念无关,存属delphi编程技巧
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, ExtCtrls;type
      TForm1 = class(TForm)
        Image1: TImage;
        bt_AdjustSize: TButton;
        procedure bt_AdjustSizeClick(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementationtype
      THackImage = class(TImage)
      end;{$R *.DFM}procedure TForm1.bt_AdjustSizeClick(Sender: TObject);
    begin
      THackImage(Image1).AdjustSize;
    end;end.
      

  6.   

    因为在DELPHI里的控件太多,程序员不须再写多余的CODE,所以都自己不需要写类,只要写一写什么OnClick事件,再说DELPHI的OOP不正中。而VC就不一样了,所以学OOP还是多看VC。