当前位置:主页>仓库管理软件> 列表

关于单元间的数据传递

仓库管理软件版1楼: 窗口A, 调出了窗口B, (A,B 为不同的两个单元pas)
现窗口B要向窗口A 传输一字符串, 请问用何种办法解决?

不知道如何设置两个单元 共享的变量,
初学! 请指教.

2楼: 在接口部分声明一个变量,就可能随便使用那个参数了.

var
Form1: TForm1;
s:string;//在这里.
implementation


{$R *.dfm}
uses Unit2;//有时还要在这加上这一句,
end. 如销售管理软件下载

3楼: 在窗口A 单元声明了一个变量 spath
var
Form1: TForm1;
spath:string; //就是它
implementation


可是在窗口B单元中使用:
spath:=label2.Caption 时出错!!


(如此声明在本单元文件pas中的任意过程是可以调用了,可是其他单元也可以吗?)

4楼: uses Unit2
form1.spath:=label2.Caption

5楼: 把spath放到 unit B中声明

6楼: 先谢谢各位!
把spath放到 unit B中声明 然后 unit A 调用unitB.spath:= 是可以的

但是我现在需要的是 unit B 向unit A 传递此值
---
在 unit A用已经使用了 user unitB 用来唤出 unitB窗口
但在unitB用再次使用 user unitA 时出错!
(A 使用了B , B就不能反过来使用A了吗?)
在A中
unitB.spath:= 可行
但是在B中
unitA.XXX 不可行!

仓库管理软件版7楼: 我的目的:

unitA | unitB
form1 | form2
label1 | label2
button1 | button2

form1中按button1, 调出form2窗口
form2中按button2,把 label2.Caption 值传递给 label1.Caption

8楼: 在主窗体单元Unit1中的implementation前uses Unit2;
在副窗体单元Unit2中的implementation下面uses Unit1,这样可以(避免反复调用)。

9楼: Unit1中再开一个线程,检测Unit2中的某个变量bClicked是否为True,若是则label1.caption:=form2.caption,在form2的button2的单击事件中将bClicked置为true

10楼: ok 了 谢谢大家

11楼: 感谢 Jonson_sunshine
以及隐士山人

12楼: 你一定是在加入这个 uses Unit1 和 uses Unit2 这两个东东时搞乱了,首先明确在接口部分声明的变量在那个单元都可以使用,只要你调用了这个单元.但单元的互相调用要遵守一定规则.如form1 的 unit1 在 form2中调用,你可能在 Unit2中的
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,Unit1;//在这加入了.
你要在form1中使用在Unit2中声明的变量.则要在form1的实现部分声明调用.
implementation
uses Unit2;//在这.
{$R *.dfm}
如果出错,你就反过来,总之这两个(Unit1和Unit2)的互相调用,一个放在了接口中,另一个就要放在实现部分,试一下你就明白了. 如医药进销存系统