初学者:"0"或"1"="男"或"女"||融合窗体(100分)

Z

zzlm

Unregistered / Unconfirmed
GUEST, unregistred user!
1、表中的SEX字段值为"0"或"1",如何使其在报表中显示为"男"或"女"?
2、如何使FORM2窗体被调用后融合到FORM1窗体中(非FORMSTYLE)?
 
S

SuperMMX

Unregistered / Unconfirmed
GUEST, unregistred user!
你用什么显示,那DBGrid来说,在显示过程 drawCell ,
判断,if table1.Fieldbyname('sex').asboolean = true then
table1.fieldbyname('sex').asstring = '男'
else
table1.fieldbyname('sex').asstring = '女';
2,怎么叫融合,是Dock 吗?
 
L

liuchuanbo

Unregistered / Unconfirmed
GUEST, unregistred user!
1。再建一个表,两个字段
sex,truesex
0 男
1 女
 
Z

zzlm

Unregistered / Unconfirmed
GUEST, unregistred user!
1、用QRDBTEXT显示"男"或"女"。
2、主窗体FORM1,FORM2为子窗体。FORM2被调出并最化大后FORM1、FORM2成为一个窗体。
 
W

wrench

Unregistered / Unconfirmed
GUEST, unregistred user!
融合?
Form2.ShowModal?
 
S

SuperMMX

Unregistered / Unconfirmed
GUEST, unregistred user!
类似于mdi?
 
W

wjiachun

Unregistered / Unconfirmed
GUEST, unregistred user!
(陕西 孙云)
Delphi4的窗口融合技术

  Delphi4除了继承先前版本强大的面向对象的功能外,而且引入了十几项新技
术、新特征。Docking 就是其中的一项,有人将Docking译为对接、入坞、结合等,
也可以译为“窗口融合技术”。那么什么是窗口融合技术呢?窗口融合是一项先进
的界面设计技术,体现了当今的发展趋势。Word97的浮动工具栏就是一种窗口融合
技术,有时也称为Word97风格的浮动工具栏。下面针对目前比较流行的窗口与窗口
的融合例程来进行:
  经过笔者一段时间的使用,发现Panel控件最适合作两个窗口融合的工具。由于
这是最一般的情况,所以这里举一个具有代表性的例子详细说明。我们要达到的要求
是:程序运行后,出现主窗口,按一个按钮,出现另一个窗口,拖动此窗口,与主窗
口融合在一起,融合后主窗口的Caption变成两个窗口的Caption相加。在主窗口
form1中放置两个Panel控件(panel1和panel2),一个Button控件(button1);另一
个窗口form2为空白窗口。具体属性设置如下:
  panel1:
  align:alleft;
  docksite:true;
  usedockmanager:true;
  panel2:
  align:albottom;
  docksite:true;
  usemanager:true;
  form2:
  anchors:[aktop,akbottom,akleft,akright];
  dragmode:dmautomatic;
  dragkind:dkdock;
  设置button1的onclick事件,对应的代码如下:
  procedure TForm1.Button1Click(Sender: TObject);
  begin
  form2.Show;
  a:=form1.caption;
  b:=form2.caption;
  end;
  设置panel1和panel2的onundock事件,代码如下:
  procedure TForm1.Panel1UnDock(Sender: TObject;
Client: TControl;
NewTarget: TWinControl;
var Allow: Boolean);
  begin
  form1.caption:=a;
  form1.Refresh;
  end;
  设置panel1和panel2的ondockdrop事件,代码如下:
  procedure TForm1.Panel1DockDrop(Sender:TObject;
Source: TDragDockObject;
X, Y: Integer);
  begin
  form1.Caption:=a+′,′+b;
  form1.Refresh;
  end;
  其中a,b为String型变量,用以保存窗口的最初标题,在form1的接口处声明。
 
M

mech

Unregistered / Unconfirmed
GUEST, unregistred user!
关于将0或1显示为男或女,DELPHI本身就
提供了很好的支持。方法如下:
将SEX字段设为BOOLEAN型(如是后端用SQL
SERVER7。0,相应类型为BIT)。
在前端DATASET(TQUERY或TTABLE)中,对
SEX字段的DISPLAYVALUES属性设为'男;女'即可。
 
L

lww

Unregistered / Unconfirmed
GUEST, unregistred user!
如果用水晶报表做报表的话,可以制定规则的,设定规则如果字段值为0,显示
为男,否则显示位女。
 
W

windz

Unregistered / Unconfirmed
GUEST, unregistred user!
zzlm说的是mdi吧?
 
L

LeeChange

Unregistered / Unconfirmed
GUEST, unregistred user!
SuperMMX的方法会出错,长度不对.
用计算字段
 
P

Pipi.

Unregistered / Unconfirmed
GUEST, unregistred user!
1、双击dataset,右键菜单add all fields,写那个field的 OnGetText 事件
if(sender.AsInteger=0)then
Text:='难'
else
Text:='女';
如果是输出quickrep报表还可以: 写那个 TQRDBText 控件的 OnPrint 事件:
if(Value='0')then
Value:='难'
else
Value='女'
 
P

Pipi.

Unregistered / Unconfirmed
GUEST, unregistred user!
2、如果是 BCB5 或者 delphi5,可以使用新控件 TFrame ,
TFrame 看起来象 form,可以放在form里面
 
L

LawrenceZhang

Unregistered / Unconfirmed
GUEST, unregistred user!
〈1〉报表本字段用 expression
 
Z

zzlm

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾:
ZZLM的意思是FORM2被调出显示后若移动不会移出FORM1,FORM1就像一个盒子,
但不像设为FORMSTYLE.FSMDIFORM那样有下凹感,且FORM2最大化后与FORM1合并
成为一个窗体。FORM2应可以关闭。
类似于mdi。
 
S

SuperMMX

Unregistered / Unconfirmed
GUEST, unregistred user!
试试 frame 上搁一个窗体,再把 frame 搁在主窗体上,或许可以,
没试过。
不知道 把一个 aform.parent := anotherForm 会是何种效果?
 
S

SuperMMX

Unregistered / Unconfirmed
GUEST, unregistred user!
把 aForm.Parent := anotherForm 有这种效果,
只是在最大化的时候,会有问题,
把 aForm 的 Constraition (约束,拼的不准)设一下,
使它最大化以后在 anotherForm 的内部。
看起来符合你的要求。
 
O

OpuBF

Unregistered / Unconfirmed
GUEST, unregistred user!
用Dock属性更好!将Form2
DragKind -> dkDock
DragMode -> dkAutomatic
将Form1
DockSite -> True
 
Z

zzlm

Unregistered / Unconfirmed
GUEST, unregistred user!
本人发现在DELPHI2中FORM1.formstyle为fsMDIform
FORM2.formstyle为fsMDIchild 运行后是那种效果,
但在DELPHI4中就出现了像写字板那样的情况了。
如果哪位能在DELPHI4中达到与同样的效果,本人将送上200块大洋。
<a href="mailto:zzlm@371.net">请来信</a>
 
Z

zzlm

Unregistered / Unconfirmed
GUEST, unregistred user!
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
883
DelphiTeacher的专栏
D
D
回复
0
查看
736
DelphiTeacher的专栏
D
顶部