unit Unit2;
interface
uses
  Classes,StdCtrls;type
  TFuckYou = class(TThread)
  constructor Create( var Memo1:TMemo;FuckStanm:String);
  private  protected
    procedure Execute; override;
    procedure WriteFuckYou();
  public
   M_Memo:^TMemo;
   M_FuckSay:String;
  end;implementation
constructor TFuckYou.Create( var Memo1:TMemo;  FuckStanm:string);
begin
   M_Memo:=@Memo1;   //AV 错误
   M_FuckSay:=FuckStanm;
   Suspend();
   FreeOnTerminate:=True;end;procedure TFuckYou.WriteFuckYou();
begin
  M_Memo.Lines.Add(M_FuckSay);
end;procedure TFuckYou.Execute;
begin
  Synchronize(WriteFuckYou);
end;
end.
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Unit2;
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
  public
   FuckA,FuckB:TFuckYou;
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
 FuckA.Create(Memo1,'Fuck Your Mother');
 FuckB.Create(Memo1,'Fuck Your!');
end;procedure TForm1.Button1Click(Sender: TObject);
begin
 FuckA.Resume();
 FuckB.Resume();
end;procedure TForm1.Button2Click(Sender: TObject);
begin
 FuckA.Terminate();
 FuckB.Terminate();
end;
end.
得到了正确答案分会加上去的. 我这样是避免浪费

解决方案 »

  1.   

    M_Memo:^TMemo;
    ->
    M_Memo:TMemo;
      

  2.   

    unit Unit2;
    interface
    uses
      Classes,StdCtrls;type
      TFuckYou = class(TThread)
      constructor Create( var Memo1:TMemo;FuckStanm:String);
      private  protected
        procedure Execute; override;
        procedure WriteFuckYou();
      public
       M_Memo:TMemo;//此处改了
       M_FuckSay:String;
      end;implementation
    constructor TFuckYou.Create( var Memo1:TMemo;  FuckStanm:string);
    begin
       M_Memo:=Memo1;   //此处我也帮你改了一下,没有必要用指针
       M_FuckSay:=FuckStanm;
       Suspend();
       FreeOnTerminate:=True;
       inherited create(true);//要增加这一句,进行唤醒线程,否则一创建就被执行线程
    end;procedure TFuckYou.WriteFuckYou();
    begin
      M_Memo.Lines.Add(M_FuckSay);
    end;procedure TFuckYou.Execute;
    begin
      Synchronize(WriteFuckYou);
    end;
    end.
    unit Unit1;
    interface
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Unit2;
    type
      TForm1 = class(TForm)
        Memo1: TMemo;
        Button1: TButton;
        Button2: TButton;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
      public
       FuckA,FuckB:TFuckYou;
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
     FuckA.Create(Memo1,'Fuck Your Mother');
     FuckB.Create(Memo1,'Fuck Your!');
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
     FuckA.Resume();
     FuckB.Resume();
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
     FuckA.Terminate();
     FuckB.Terminate();
    end;
    end.
      

  3.   

    回复: lionlsl(林)
    按照你的做法还是不行的
    M_Memo:=Memo1;   //此处我也帮你改了一下,没有必要用指针
      

  4.   

    procedure TForm1.FormCreate(Sender: TObject);
    begin
     叼A:=T叼你.Create(Memo1,'叼你妈');
     叼B:=T叼你.Create(Memo1,'叼你');
    end;
    本来想写详细一点的,
    不过存在在FU等詞,居然不让回复
      

  5.   

    CSDN里是不是会检查回复内容是否有敏感词的啊?害到我要翻译成中文才行。
      

  6.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Unit2;type
      TForm1 = class(TForm)
        Memo1: TMemo;
        Button1: TButton;
        Button2: TButton;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
       Fu_ckA,Fu_ckB:TFu_ckYou;
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
     Fu_ckA.Create(Memo1,'Fu_ck Your Mother');
     Fu_ckB.Create(Memo1,'Fu_ck Your!');
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
     Fu_ckA.Resume();
     Fu_ckB.Resume();
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
     Fu_ckA.Terminate();
     Fu_ckB.Terminate();
    end;end.unit Unit2;
    interface
    uses
      Classes,StdCtrls;type
      TFu_ckYou = class(TThread)
      constructor Create(Var Memo1:TMemo;Fu_ckStanm:String);
      private
       M_Memo:TMemo;//此处改了
       M_Fu_ckSay:String;
      protected
        procedure Execute; override;
        procedure WriteFu_ckYou();
      end;implementation
    constructor TFu_ckYou.Create(Var Memo1:TMemo;Fu_ckStanm:String);
    begin
       M_Memo:=Memo1;  //此处我也帮你改了一下,没有必要用指针   M_Fu_ckSay:=Fu_ckStanm;
       Suspend();
       FreeOnTerminate:=True;
       inherited create(true);//要增加这一句,进行唤醒线程,否则一创建就被执行线程
    end;procedure TFu_ckYou.WriteFu_ckYou();
    begin
      M_Memo.Lines.Add(M_Fu_ckSay);
    end;procedure TFu_ckYou.Execute;
    begin
      Synchronize(WriteFu_ckYou);
    end;
    end.
      

  7.   

    M_Memo:=@Memo1;   //AV 错误
    你觉得这个指针你分配内存了吗?