注册 登录
编程论坛 Delphi论坛

[求助]'确认要删除本条记录吗','确定',MB_YESNOC…… 此句后面省略掉了,接着

abcjkl 发布于 2007-09-15 00:13, 3277 次点击

看着视频教学里的内容学写程序,但到中间那块就写不下去了,因为此句过长,视频里容不下,后面的省略了,我也不知怎么写,是个菜鸟。请帮忙,谢谢。

这是一个可以添加、修改、删除、查询的通讯录程序:
全部程序如下

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, DB, DBTables;

type
TForm1 = class(TForm)
DataSource1: TDataSource;
Table1: TTable;
DBGrid1: TDBGrid;
Panel1: TPanel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);
begin
try
Table1.Edit;
finally
Table1.Post;
Table1.Refresh;
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if Table1.RecordCount>0
then if application.MessageBox('确认要删除本条记录吗','确定',MB_YESNOC………………这里应该是怎么继续写的?请高手们指教,谢谢先。
then Table1.Delete;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
var
mystring:string;
YesorNo:boolean;

begin
mystring:= '';
YesOrNo :=InputQuery('','',mystring);
if YesOrNo then
begin
Table1.Filter:='Name='+''''mystring+'''';
Table1.Filtered:=true;
end
else
begin
Table1.Filter:='';
Table1.Filtered:=False;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Table1.Open;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
try
Table1.Append;
finally
Table1.Post;
Table1.Refresh;
end;

end.

[此贴子已经被作者于2007-9-15 7:37:13编辑过]

17 回复
#2
eaglecn2007-09-15 01:08

直接写Y就确定删除,C就取消就可以了。

#3
abcjkl2007-09-15 07:38
谢谢你的指导,不过不是原句不是这样的,希望与原句相符。继续等…………
#4
abcjkl2007-09-15 07:41
怎么具体写?是写成这样吗
确认要删除本条记录吗','确定',MB_Y OR C)
#5
sky_yang_sky2007-09-15 10:11
then if application.MessageBox('确认要删除本条记录吗','确定',MB_YESNOCancel)=mb_yes
這應該是你的原句,因為沒完全顯示的部分是把你選取的那個選項的cancel沒顯示完
#6
abcjkl2007-09-15 10:54
以下是引用abcjkl在2007-9-15 7:41:46的发言:
怎么具体写?是写成这样吗
确认要删除本条记录吗','确定',MB_Y OR C)

谢谢回复。但是,按你所说MB_YESNOCancel)=mb_yes保存运行后还是显示这里出错了,怎么办啊?

[此贴子已经被作者于2007-9-15 10:55:12编辑过]

#7
sky_yang_sky2007-09-15 11:36
改為這個試試application.MessageBox('确认要删除本条记录吗','确定',MB_YESNOCancel)=idyes
#8
abcjkl2007-09-15 13:17

这回好了,但后面又出现新的问题了。
运行后,这里又提示出现问题了,不知错在哪,请再指教。
procedure TForm1.FormCreate(Sender: TObject);
begin
Table1.Open;
end;

#9
keyii2007-09-17 08:29
没有仔细看,是不是这个。

if MessageBox(Handle, PChar('确认保存 ' + strQU + '区' + strPAI + '排' + strMIAN + '面' +
strJIE + '节 货架配置图吗?'), '确认保存', MB_YESNO) = IDYES then
#10
sky_yang_sky2007-09-17 11:27

錯誤信息是什麼?

#11
abcjkl2007-09-18 12:29
错误提示是:
[Error]Unit1.pas[74]:Statement expected but 'PROCEDURE' found
[Error]Unit1.pas[88]:"expected but" found
[Error]Unit1.pas[90]:declaration expected but end of file found
[Fatal Error]Project2.dpr[5]:Could not compile used unit 'Unit1.pas'

#12
theskystory2007-09-19 11:11
要么你试试这个
if messagedlg('真的要删除该记录吗?',mtconfirmation,[mbYes,mbNo],0)=mryes then
begin

end
else
begin

end;
#13
sky_yang_sky2007-09-19 14:15

你這個錯誤不再是那個語句的問題了

#14
abcjkl2007-09-19 19:52
谢谢两位的回复。我也觉得不再是那个老问题了,是新问题,出在别处,但不知是哪里,请有时间帮我再看看。
#15
anthony6342007-09-19 20:47


估计是以下问题,拼写的问题

Error]Unit1.pas[74]:Statement expected but 'PROCEDURE' found
74行前面少了个(end;)
[Error]Unit1.pas[88]:"expected but" found
88行附近看看那里用了双引号的
[Error]Unit1.pas[90]:declaration expected but end of file found
单元末尾 的结束符号 (end.)上面了少了个 (end;)

#16
anthony6342007-09-19 20:52
推荐两个辅助工具 cnsWizards codeRush(这个建议去掉它的代码自动完成功能,太烦)
#17
yazi672007-09-20 10:55

mb_ysenocanel

#18
danning8132007-09-24 10:34

直接在网上把那个源文件找出来吧

1