....
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure scChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;
  sc:TScrollBar;
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
sc:=TScrollBar.Create(self);
sc.Position:=sc.Position+1;
end; //第一部分procedure TForm1.scChange(Sender: TObject);
begin
showmessage('hhh');
end; //第二部分end.搞不懂,按下button为何没有反应?
"procedure TForm1.scChange(Sender: TObject);" 有错吗?

解决方案 »

  1.   

    这样就有反应了:
    -----------------------------------------
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        sc: TScrollBar;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
        sc.Position := sc.Position + 1;
    end;end.
      

  2.   

    这样也可以:
    --------------------------unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
        sc:TScrollBar;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
        sc := TScrollBar.Create(Self);
        sc.Parent := form1;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
        sc.Position := sc.Position + 1;
    end;end.
      

  3.   

    将Buttton1的click事件改为如下
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Sc:=TScrollBar.Create(nil);
      Sc.OnChange:=ScScroll;
      sc.Position:=sc.Position+1;
    end; //第一部分
      

  4.   

    楼上的,你有没有调试过呀!他是少了一句 sc.Parent := from1;
    sc没有父窗口的支撑,sc在哪都不知道。
      

  5.   

    你的代碼有好几個地方有問題,具體修改如下:procedure TForm1.Button1Click(Sender: TObject);
    begin
    sc:=TScrollBar.Create(Self);
    sc.Parent := Self;
    sc.OnChange := scChange;
    sc.Position:=sc.Position+1;
    end; //第一部分procedure TForm1.scChange(Sender: TObject);
    begin
    showmessage('hhh');
    end; //第二部分end.