各位高手帮帮我,如何写这样的TDBEdit(100分)

  • 主题发起人 主题发起人 pangzhenguang
  • 开始时间 开始时间
P

pangzhenguang

Unregistered / Unconfirmed
GUEST, unregistred user!
我要将TDBEDIT改成一个这样的控件,当TDBEDIT获得焦点在编辑状态时,它显示它连的数据库的内容,当TDBEDIT非编辑状态,它显示当天的日期
 
那如果没有获得焦点,但数据库又处于编辑状态,怎么办?
 
在窗体建立时,默认TDBEDIT显示当天的日期,当需要添加、编辑什么的的时候先清空,再动态赋予TDBEDIT的数据源和字段。提交以后再清空。TDBEDIT显示当天的日期
 
不管数据库是什么状态,只要TDBEDIT没光标在,就只显示日期,否则就显示数据库的内容
 
aizhuzhu,,我的思想是能不能重写WMPaint,当TDBEDIT编辑状态继承原来的动作,当TDBEDIT非编辑状态重画,但不知如何写
 
可以用画;
很简单,超简单的;
 
可不可以给段代码出来 呀清新空气,
 
可以的话分全给你了清新空气,
 
给你代码,我用TEdit做例子写给你!
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TMyXEdit=Class(TEdit)
procedure CMEXIT(var Message: TCMGotFocus); message CM_EXIT;
end;

TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
newedit:TMYXEdit;
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}


{ TMyXEdit }

procedure TMyXEdit.CMEXIT(var Message: TCMGotFocus);
var
dc:HWnd;
begin
HideSelection:=false;
dc:=getdc(Handle);
SetTextColor(dc, clBlack);
TextOut(dc,0,0,pchar(DateToStr(Date)),length(DateToStr(Date)));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
newedit:=TMYXEdit.Create(self);
newedit.Parent:=self;
newedit.Left:=200;
newedit.top:=200;
end;

end.
 
这个不行吧
 
不行的话,我给你十倍的分!
你在你的窗体上放一个memo,你再在窗体的newedit中输入几个字符,你再看看;
我是为了你可以直接粘代码,才没有放其它的控件的!
 
我的水平太低,写得你没法看懂,真是不好意思![:(][:(]
 
你如果用于DBEdit还要靠DBEDit的DataSource.DataSet的State
 
是可以,但不符合习惯,有时退出时没变,出现日期时不能选择,获得焦点时,不变
 
方法教给你了!难到还要我写成控件,写的好好的?为了你这100分?
吃东西别人告诉你怎么吃,不要让别人帮你帮好了给你吃!明白?[?]

按你问的问题
有没有说日期要选择?
 
我的问题没解决不能给你分,给你分了,我还要另用100分再寻求解决,不好意思
 
这样吧!其实你的东西,我已经写好了!方法一样可以告诉你,
你即然要写成控件就用另一个Edit;
在DBEdit进入的时候Edit.Visible:=True;
exit的时候就Edit.Visible:=False;
再写写其实的细节就可以了!

其实我发现现在的大富翁里的人真是懒,告诉方法了自己还不愿自己试试,自己再改改,
非要别人写好!
 
这样讲你可能会更明白,一个TDBEDIT控件,连到数据库的物料编号栏位,我要用一个变量如LNAME保存物料名称,当用户进入TDBEDIT控件进行编辑时,TDBEDIT控件显示物料编号,
当用户离开TDBEDIT控件时,TDBEDIT控件显示物料名称
 
如果你有兴趣,我可以把Exe发给你看看~!
 
后退
顶部