procedure TF_main_search.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin if key=13 then
application.CreateForm(TF_search_result,F_search_result);
F_search_result.Dock(p_main,BoundsRect);
F_search_result.show;
end;end;请告诉我这句写得有错么?
错误提示告诉我:
[Error] Search.pas(72): Statement expected but 'PROCEDURE' found
[Error] Search.pas(80): '.' expected but ';' found
[Fatal Error] project1.dpr(10): Could not compile used unit 'Search.pas'
begin if key=13 then
application.CreateForm(TF_search_result,F_search_result);
F_search_result.Dock(p_main,BoundsRect);
F_search_result.show;
end;end;请告诉我这句写得有错么?
错误提示告诉我:
[Error] Search.pas(72): Statement expected but 'PROCEDURE' found
[Error] Search.pas(80): '.' expected but ';' found
[Fatal Error] project1.dpr(10): Could not compile used unit 'Search.pas'
如果是结尾就改为end.
if key=13 then
begin
application.CreateForm(TF_search_result,F_search_result);
F_search_result.Dock(p_main,BoundsRect);
F_search_result.show;
end;
if then的结构体中少一个begin
还有,同意上楼的意见,多了一个end;
begin if key=13 then
begin
showmessage('aaaaaaaa');
end;
end;就算这样写,还是报错:
[Error] Search.pas(72): Statement expected but 'PROCEDURE' found
[Fatal Error] Main.pas(68): Could not compile used unit 'Search.pas'
一个地方少end;
呵呵
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, ComCtrls, Grids, TFlatComboBoxUnit,
DsFancyButton,DB, ADODB, TFlatSpeedButtonUnit, DBGrids,
DBCtrls;type
TF_main_search = class(TForm)
Image: TImage;
L_title: TLabel;
P_back: TPanel;
P_main: TPanel;
PageScroller_input: TPageScroller;
Panel1: TPanel;
begin_date: TDateTimePicker;
Label2: TLabel;
Label1: TLabel;
Panel_down: TPanel;
Bevel: TBevel;
Panel_button: TPanel;
OKBtn: TDsFancyButton;
CancelBtn: TDsFancyButton;
BT_query: TFlatSpeedButton;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
data_result: TDBGrid;
Label3: TLabel;
Label4: TLabel;
end_date: TDateTimePicker;
ComboBox1: TComboBox;
Label5: TLabel;
mh: TCheckBox;
Label6: TLabel;
Edit1: TEdit;
procedure CancelBtnClick(Sender: TObject);
procedure BT_queryClick(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;var
F_main_search: TF_main_search;implementation
uses DataModule,result;
{$R *.dfm}procedure TF_main_search.Edit1Change(Sender: TObject);
begin
if mh.Checked =true then
begin
if ADOQuery1.Active then
with data_result.datasource.dataset do
ADOQuery1.close;
ADOQuery1.sql.clear;
ADOQuery1.sql.add('select * from ku where rq like ''过期'+trim(edit1.Text)+'%''');
ADOQuery1.open;
end;//----------这里就是出错的地方.错误信息请看我上面的贴子.
procedure TF_main_search.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin if key=vk_return then
begin
showmessage('sdfsadf');
end;
end;procedure TF_main_search.BT_queryClick(Sender: TObject);
var k1:string;
k2:string;
begin
with ADOQuery1 do
begin
k1:=FormatDateTime('YYYY-MM-DD',begin_date.DateTime);
k2:=FormatDateTime('YYYY-MM-DD',end_date.DateTime);
ADOQuery1.close;
ADOQuery1.sql.clear; if trim(combobox1.Text)='任意' then
ADOQuery1.sql.add(' select * from ku where 1=1 and rq BETWEEN '''+datetostr(begin_date.Date)+''' and '''+datetostr(end_date.date)+''''); if trim(combobox1.text)<>'任意' then begin
ADOQuery1.sql.add(' select * from ku where ');
adoquery1.SQL.Add(' cx= '''+trim(combobox1.Text)+'''');
adoquery1.SQL.Add(' and rq BETWEEN '''+datetostr(begin_date.Date)+''' and '''+datetostr(end_date.date)+'''');
end;
ADOQuery1.open;
end;
end;
procedure TF_main_search.CancelBtnClick(Sender: TObject);
begin
self.Close;
end;end.
//-----------------------------这是工程文件。program project1;uses
Forms,
Main in 'Main.pas' {F_main},
DataModule in 'DataModule.pas' {DB_module},
Search in 'Search.pas' {F_main_search},
Unit_common_files in 'Unit_common_files.pas',
result in 'result.pas' {F_search_result};{$R *.res}begin
Application.Initialize;
Application.CreateForm(TF_main, F_main);
Application.CreateForm(TDB_module, DB_module);
Application.CreateForm(TF_main_search, F_main_search);
Application.CreateForm(TF_search_result, F_search_result);
Application.Run;
end.
服了……
ShowMessage('aaaaa');
现在不报错了,可是运行时不出现showmessage!!!!
OnKeyPress: if key = #13 then ShowMessage('aaaa') 兩個事件任你選一個! 一定會出MessageBox的!請檢查你的 Edit1 的OnKeyDown 事件是否連到了其他控件的事件!