(1)from1调用from2调用from3   //各窗体调用关系
(2)在from1里已经USES from2,
   在from2里已经USES from3,
   在from3里已经USES from2,implementation
 uses
    from1;
{$R *.dfm}procedure TFrom3.Button1Click(Sender: TObject);
var
 jpg:TJpegimage;
 str:string;
begin   str:=from2.Edit1.Text+'.JPG';
   jpg:=TJpegimage.Create;
   jpg.LoadFromFile(str);
   QRimage1.Picture.Assign(jpg);
   jpg.Free;end;
(3)当我点击Button1按钮时报错:"Access violation at address 0050452A in module 'frmain.exe'".Read of address 00000318.
  也就是说根本取不到from2.Edit1.Text  如何解决???谢谢!

解决方案 »

  1.   

    你先在str:=from2.edit1.text+'.JPG' 下加一句showmessage(str),确认是不是取不到from2.Edit1.Text
      

  2.   

    楼上老兄,就是取不到啊,
    当我按下按钮时就报这个错误了:"Access violation at address 0050452A in module 'frmain.exe'".Read of address 00000318.
      

  3.   

    'frmain.exe'就是from1的一个主程序了(可执行),(1)from1调用from2调用from3   //各窗体调用关系
      

  4.   

    from3里uses form1试一下,你的问题好像只是不能调用frmain.exe 而已
      

  5.   

    from3里uses form1没用啊,刚刚试过.在from3按下Button1按钮时还是报::"Access violation at address 0050452A in module 'frmain.exe'".Read of address 00000318.
    急!!!
      

  6.   

    你测过你的frmain.exe 没有,我觉得应该是调用这个文件的问题,重启一下电脑试一下
      

  7.   

    这个文件是有的frmain.exe ,它是form1的可执行文件,也就是说frmain.exe是已经编译好的可执行程序,我双击打开时,先打开form2,form2上有个按钮是用来打开form3的,在form3里按下Button1按钮时是报::"Access violation at address 0050452A in module 'frmain.exe'".Read of address 00000318.
    急!!!
      

  8.   

    把你的form3窗体的创建方法贴出来看一下
      

  9.   

    有兩個方法:1.begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.CreateForm(TForm1, Form2);
      Application.CreateForm(TForm1, Form3);
      Application.Run;
    end.
      

  10.   

    uses from1,from2,from3;//?????
    uses unit1,unit2,unit3;
      

  11.   


    什麼程序流程啊!!!這樣的程序只有你自己用.很簡單的原因是因為frmMain沒有創建
      Application.CreateForm(Tfrmain, frmain);
      

  12.   

    TO; JonnySun()  你说的方法是在主程序中写还是分在各模块中写? 我在主程序中写了,不行啊,还是老样.
    TO:  gxgyj(杰克.逊) 我是已经uses unit1,unit2,unit3;不过我把它写成了uses from1,from2,from3;而已.
      

  13.   

    以下是FROM3的代码:为了方便我把TFrmpicture改成FROM3.
    unit Paspicture;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, DB, DBTables, QRCtrls, QuickRpt, ExtCtrls, ComCtrls,jpeg,Printers;type
      TFrmpicture = class(TForm)
        StatusBar1: TStatusBar;
        QuickRep1: TQuickRep;
        QRDBText1: TQRDBText;
        Table1: TTable;
        Table1dir: TStringField;
        Table1date: TDateTimeField;
        Table1dh: TIntegerField;
        Button1: TButton;
        Button2: TButton;
        PageHeaderBand1: TQRBand;
        QRImage1: TQRImage;
        DetailBand1: TQRBand;
        Button3: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure QuickRep1BeforePrint(Sender: TCustomQuickRep;
          var PrintReport: Boolean);
        procedure Button3Click(Sender: TObject);
      private
         
        { Private declarations }
      public
        { Public declarations }
      end;var
      Frmpicture: TFrmpicture;implementation
     uses
        mainfr,tlsystem;
    {$R *.dfm}procedure TFrmpicture.Button1Click(Sender: TObject);
    var
     jpg:TJpegimage;
     str:string;
    begin   str:=table1dir.Text+Frmtlsystem.Edit1.Text+'.JPG';
       jpg:=TJpegimage.Create;
       jpg.LoadFromFile(str);
       QRimage1.Picture.Assign(jpg);
       jpg.Free;end;procedure TFrmpicture.Button2Click(Sender: TObject);
    begin
      QuickRep1.Preview;
    end;
    procedure TFrmpicture.Button3Click(Sender: TObject);
    begin
      close;
    end;end.
      

  14.   

    关键是点击按钮的时候Form2有没有Create呢?
      

  15.   

    当我独立运行from3的project3.exe时是可以正常的取到: str:=table1dir.Text+Frmtlsystem.Edit1.Text+'.JPG';的值.没有报错.
     但是在from1中实现各模块的调用是就出现了(from1调用from2调用from3   //各窗体调用关系)
    :
    在form3里按下Button1按钮时是报::"Access violation at address 0050452A in module 'frmain.exe'".Read of address 00000318.
      

  16.   

    我点击form3的Button1按钮之前,Form2的上的Edit1已经有了一上值:Edit1.Text:=mk1002