文档章节

delphi - Property OldCreateOrder does not exist

geek_loser
 geek_loser
发布于 2014/08/14 16:42
字数 557
阅读 152
收藏 1

原文见“http://www.cnblogs.com/sonicit/archive/2008/03/30/1129586.html

 

说明:看了上面那位兄台的解法后,还是有些不明所以,不明白他说的最后一句话——”那么解决方法很简单,创建一个带窗口的Frame基类,再从这个基类继承即可“究竟是什么,纠结了很久,

 

后来在 majingli 的帮助下,才明白,在Delphi 7 下的 TFrame 的继承不像我们在 MFC 中的操作一样直接改代码就可以了,而是要通过 IDE 来进行操作

 

 

具体问题描述

      由于需求总在变化,加上不断的会进行重构,所以我们有可能在 一个 TFrame3=class(TFrame)已经写到比较完善时,突然想把其基类从 TFrame 转成 TFrame2;按我们的在 MFC 中的习惯做法,我们会先创建一个 TFrame2,然后手动编辑 TFrame3 的 pas 文件,使其变为  TFrame3=class(TFrame2);然后运行程序,OK,一切正常。

 

      可是当我们关闭工程,再打开时,会弹对话框,显示 “ TabOrder does not exit“,此时,无论我们选择什么,再次运行时都会弹出”Property OldCreateOrder does not exist错误。

 

 


解决的办法

删除 TFrame3, 再重新由 IDE 生成 TFrame3,在创建时选择由 ”Frame2“ 派生, 然后再把原 TFrame3 的 pas 文件复制过来即可.可以看到,两者的 pas 文件是完全一模一样的, 光从代码根本看不出任何问题. 这应该算是 delphi7 的bug了。

 

 

补充

     有的时候,我们已经创建了太多的 TFrame3, 这样一个一个重新派生,再改其 pas 文件,实在是一项非常浩大的工程,这会对重构造成极大的负担,那么有没有更好的办法呢?

     因为 pas 文件是完全一致的,所以我们只能把目标放在 dfm 文件上,打开 TFrame3 的 dfm 文件,其第一行写的是 “object Frame3: TFrame3”;再打开一个由IDE创建的,派生自 TFrame2 的 TFrame4 的 dfm 文件,其第一行写的是“inherited Frame4: TFrame4”,那么这是不是就是问题所以呢?我们试着把“object Frame3: TFrame3”,改成“inherited Frame3: TFrame3”, 再次运行,一切 OK。


本文转载自:

geek_loser
粉丝 3
博文 75
码字总数 18955
作品 0
朝阳
私信 提问
delphi创建具有托盘的服务程序(service)

delphi创建具有托盘的服务程序(service) Windows 2000/XP和2003等支持一种叫做"服务程序"的东西.程序作为服务启动有以下几个好处: (1)不用登陆进系统即可运行. (2)具有SYSTEM特权.所以你在...

vga
2015/08/26
182
0
PostgreDAC 更新以支持 PostgreSQL 9.3

PostgreDAC 发布最新更新版本,增加对 PostgreSQL 9.3 和 RAD Studio XE5 的支持。 完整的改进包括: [!] PostgreSQL 9.3 support added [!] Delphi XE5 and C++ Builder XE5 support introd......

oschina
2013/10/02
937
0
Delphi组件开发教程指南(2)简单扩充TEdit

上一篇,介绍了组件开发的一般概述,以及组件类层次结构的各个类的大致信息!现在就开始通过实例进行来简单的讲述一下一般组件的开发过程!我这里先采用最基本的方式来创建一个组件!也就是使...

技术小美
2017/11/12
0
0
服务程序开发

Tutorial for making a Service Application using DelphibyFinn Tolderlundhttp://www.tolderlund.eu/delphi/service/service.htm Last updated 03-10-2012. This tutorial is not finished......

vga
2016/08/20
74
0
集成开发环境--Delphi

Delphi,是美国Borland(宝兰)公司於1995年开发在Windows平台下的快速应用程式开发工具(Rapid Application Development,简称RAD),它的前身是在DOS下的产品Borland Turbo Pascal。(非开源...

匿名
2009/03/11
23.7K
1

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
10
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
12
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
11
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部