CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  语言基础/算法/系统设计

record记录赋值问题

楼主zhongjinting()2005-05-16 11:29:33 在 Delphi / 语言基础/算法/系统设计 提问

TAddress是一个record类型的数据,里面的字段有street、city、state等,能不能给其中任意字段赋值,比如Person.address.city:='Shanghai';   (总是遇到left   side   cannot   be   assigned   to). 问题点数:20、回复次数:6Top

1 楼beyondtkl(大龙驹<*好久没来了,兄弟们好吧。*>)回复于 2005-05-16 12:05:14 得分 15

能不能给其中任意字段赋值  
   
  //   當然可以呀  
   
  总是遇到left   side   cannot   be   assigned   to  
  //   左值??   你貼一下詳細代碼?Top

2 楼Corn1(玉米)回复于 2005-05-16 12:29:08 得分 0

TPerson的Address属性是否设成只读?Top

3 楼zhongjinting()回复于 2005-05-16 12:44:34 得分 0

数据类型:  
  type    
      TAddress   =   record  
          Company:   string;  
          Street:   string;  
          City:   string;  
          Province:   string;  
          Country:   TCountry;  
          ZipCode:   string;  
      end;  
   
  TPerson类:  
  type   TPerson=class  
          private  
                m_Address:TAddress;  
          published  
                property   Address:   TAddress   read   m_Address   write   m_Address   ;    
  end;  
   
  实例:  
        persen:=tperson.create;  
        person.address.street:='Shanghai';  
   
   
  Top

4 楼beyondtkl(大龙驹<*好久没来了,兄弟们好吧。*>)回复于 2005-05-16 13:32:10 得分 0

你得思路   也有點問題哦。。  
   
  應該是這樣得。。  
   
  TAddress   =   class  
      private  
          FCompany:   string;  
          FStreet:   string;  
          FCity:   string;  
          FProvince:   string;  
          FCountry:   TCountry;  
          FZipCode:   string;  
      private  
          procedure   SetCompanyValue(Value:   string);    
   
      published  
          property   Company:   string   read   FCompany   write   SetCompanyValue;  
          ....   //   others  
  end;  
   
  property   Address:   TAddress   read   m_Address   write   m_Address   ;    
  你這樣只是對Address   沒有對裡面的成員。。。Top

5 楼hotzhu(天下无妞)回复于 2005-05-16 13:45:02 得分 5

赋值的时候  
   
  属性定义如下  
  property   Address:   TAddress   read   m_Address   write   SetValue;    
   
  可以添加一个过程:  
  procedure   SetValue(Add:   TAddress);  
  begin  
      m_Address.City   :=   Add.City;  
      //others  
  end;  
  实例化时可以:  
  var  
      AddressValue:   TAddress;  
  begin  
        AddressValue.city   :=   'ShangHai';  
        //other   items  
        persen:=tperson.create;  
        person.address   :=   AddressValue;  
        ...  
   
  end;Top

6 楼zhongjinting()回复于 2005-05-16 16:51:17 得分 0

beyondtkl,   谢谢你,但是还是有问题,因为这些类里面都连着数据库,TAddress类的使用者只有TPerson类一个,它们俩读写的数据库其实是一个,分成两部分的想法是思路会清晰一些。如果改成你所说的方式,会不会因为增加一个数据库连接而使得效率会有所降低?Top

相关问题

  • 请教有关记录集的赋值
  • 如何为记录类型赋值???
  • 记录类型赋值的问题!!!
  • 如何直接给插入到DBGrid中的空记录赋值
  • QuickRep报表问题:如何给记录手动赋值?
  • 怎样把记录结果赋值成字符串
  • 请教:原生ADO记录集赋值问题
  • 记录赋值问题,解答者高分相送
  • 向数据库中添加记录的赋值语句怎么写?
  • 菜鸟问题:为何把记录集赋值在ArrayList里,无法取出?

关键词

  • 字段
  • 数据库
  • taddress
  • 赋值
  • tperson
  • addressvalue
  • address
  • shanghai
  • record
  • city

得分解答快速导航

  • 帖主:zhongjinting
  • beyondtkl
  • hotzhu

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo