分值不够,我在开帖子加分!
///////////////////////////////////////////////////////////////////////////
1.怎样使edit控件从右开始写字。2.怎样使窗口最大化显示,但不占据shell_wnd的地方。3.在一个窗体的实现文件中,为什么自己写一个过程(不是窗体的成员函数),用到此窗体的得控件,还得在控件的名字前面加上窗体的名字?如:edit1.Text := 'dd' (error) 而 frmMain.edit1.Text := 'dd' (right)?4. 在函数调用时,怎样传一个数组?5. 我在一个单元文件中定义了一个类,怎么在另一个单元文件中声明此个类的实例?6. 我想在我的程序中,定义对数据库进行访问的控件的实例如下:
var
dtblYh : TTable;
dsYh : TDataSource;
qryYh : TQuery;
然后用程序设置它们的属性,作用为在一个表中查找指定的记录,如下:
// 设置datasource,query控件
dtblYh.Create(dm);
dtblYh.DatabaseName := 'hymis';
dtblYh.TableName := 'yhb'; dsYh.Create(dm);
dsYh.DataSet := dtblYh; qryYh.Create(dm);
qryYh.DataSource := dsYh;
qryYh.SQL.Clear;
qryYh.SQL.Add('select * from yhb where yhb.yhxm = :praXm and yhb.yhmm = :praMm');
qryYh.ParamByName('praXm').AsString := strName;
qryYh.ParamByName('praMm').AsString := strPw;
qryYh.Prepare;
qryYh.Open;// 编译时,出现警告:
Build
[Warning] uSecModule.pas(48): Variable 'qryYh' might not have been initialized
[Warning] uSecModule.pas(41): Variable 'dtblYh' might not have been initialized
[Warning] uSecModule.pas(45): Variable 'dsYh' might not have been initialized
// 为什么?如何解决?
// 另外一个问题:此种方法与直接拖拽控件到界面上,然后设置属性的方法,有什么区别?两者的执行效率如何?7. 在界面上放置许多的datasource控件,table(DBTables)控件,query(DBTables)控件是否会使程序的运行速度变慢?与在程序中定义这些控件的类的实例,然后设置属性并进行数据库操作的方法比起来,两者有什么区别?以及各自的优缺点?8.delphi中函数调用时,参数的传递方法是否有类似c++的引用传递?格式是什么?另外,指针传递参数方式的格式是什么?9.delphi中,结构的赋值是否也c++的一样,使每个成员变量的赋值?10.我的delphi运行一段时间后,在运行开发的程序时,显示异常:
insufficient memory,怎么解决?11.怎样在主窗体显示前,显示登录窗体,如果登录失败或者用户点击了退出按钮则不显示主窗体,直接结束程序运行?
我的方法如下:
/* 在主程序中 */
/////////////////////////////////////////////////////////////////////////
// 创建主窗体
Application.CreateForm(TfrmMain, frmMain); Application.Run;
/////////////////////////////////////////////////////////////////////////
// 在主窗体的窗体创建事件中,显示登录窗体
procedure TfrmMain.FormCreate(Sender: TObject);
begin
Application.CreateForm(TfrmEnter, frmEnter);
uEnter.frmEnter.Show;
end;
/////////////////////////////////////////////////////////////////////////
//在登录窗体中
//退出按钮单击事件中:
procedure TfrmEnter.btnExitClick(Sender: TObject);
begin
// PostQuitMessage
Application.Terminate;
end;
///////////////////////////////////////////////////////////////////////
//登陆成功后
procedure TfrmEnter.btnOkClick(Sender: TObject);
begin
...
...
...
// 以上检查登录是否成功的程序省略了self.Release; // 销毁登录窗口
uMain.frmMain.Show; // 显示主窗口/////////////////////////////////////////////////////////////////////////
这样做可以实现,但不知是否是正确的方法?
12. 我怎么在delphi7.0中找不到报表控件了?谢谢大家,每道题20分,急盼大家指教!
小弟刚刚学习delphi半个月,以前一直用vc,最近帮同学做二学位毕业设计,所以使用delphi,因此,对delphi还不是很熟悉,希望大家帮帮忙啊!
///////////////////////////////////////////////////////////////////////////
1.怎样使edit控件从右开始写字。2.怎样使窗口最大化显示,但不占据shell_wnd的地方。3.在一个窗体的实现文件中,为什么自己写一个过程(不是窗体的成员函数),用到此窗体的得控件,还得在控件的名字前面加上窗体的名字?如:edit1.Text := 'dd' (error) 而 frmMain.edit1.Text := 'dd' (right)?4. 在函数调用时,怎样传一个数组?5. 我在一个单元文件中定义了一个类,怎么在另一个单元文件中声明此个类的实例?6. 我想在我的程序中,定义对数据库进行访问的控件的实例如下:
var
dtblYh : TTable;
dsYh : TDataSource;
qryYh : TQuery;
然后用程序设置它们的属性,作用为在一个表中查找指定的记录,如下:
// 设置datasource,query控件
dtblYh.Create(dm);
dtblYh.DatabaseName := 'hymis';
dtblYh.TableName := 'yhb'; dsYh.Create(dm);
dsYh.DataSet := dtblYh; qryYh.Create(dm);
qryYh.DataSource := dsYh;
qryYh.SQL.Clear;
qryYh.SQL.Add('select * from yhb where yhb.yhxm = :praXm and yhb.yhmm = :praMm');
qryYh.ParamByName('praXm').AsString := strName;
qryYh.ParamByName('praMm').AsString := strPw;
qryYh.Prepare;
qryYh.Open;// 编译时,出现警告:
Build
[Warning] uSecModule.pas(48): Variable 'qryYh' might not have been initialized
[Warning] uSecModule.pas(41): Variable 'dtblYh' might not have been initialized
[Warning] uSecModule.pas(45): Variable 'dsYh' might not have been initialized
// 为什么?如何解决?
// 另外一个问题:此种方法与直接拖拽控件到界面上,然后设置属性的方法,有什么区别?两者的执行效率如何?7. 在界面上放置许多的datasource控件,table(DBTables)控件,query(DBTables)控件是否会使程序的运行速度变慢?与在程序中定义这些控件的类的实例,然后设置属性并进行数据库操作的方法比起来,两者有什么区别?以及各自的优缺点?8.delphi中函数调用时,参数的传递方法是否有类似c++的引用传递?格式是什么?另外,指针传递参数方式的格式是什么?9.delphi中,结构的赋值是否也c++的一样,使每个成员变量的赋值?10.我的delphi运行一段时间后,在运行开发的程序时,显示异常:
insufficient memory,怎么解决?11.怎样在主窗体显示前,显示登录窗体,如果登录失败或者用户点击了退出按钮则不显示主窗体,直接结束程序运行?
我的方法如下:
/* 在主程序中 */
/////////////////////////////////////////////////////////////////////////
// 创建主窗体
Application.CreateForm(TfrmMain, frmMain); Application.Run;
/////////////////////////////////////////////////////////////////////////
// 在主窗体的窗体创建事件中,显示登录窗体
procedure TfrmMain.FormCreate(Sender: TObject);
begin
Application.CreateForm(TfrmEnter, frmEnter);
uEnter.frmEnter.Show;
end;
/////////////////////////////////////////////////////////////////////////
//在登录窗体中
//退出按钮单击事件中:
procedure TfrmEnter.btnExitClick(Sender: TObject);
begin
// PostQuitMessage
Application.Terminate;
end;
///////////////////////////////////////////////////////////////////////
//登陆成功后
procedure TfrmEnter.btnOkClick(Sender: TObject);
begin
...
...
...
// 以上检查登录是否成功的程序省略了self.Release; // 销毁登录窗口
uMain.frmMain.Show; // 显示主窗口/////////////////////////////////////////////////////////////////////////
这样做可以实现,但不知是否是正确的方法?
12. 我怎么在delphi7.0中找不到报表控件了?谢谢大家,每道题20分,急盼大家指教!
小弟刚刚学习delphi半个月,以前一直用vc,最近帮同学做二学位毕业设计,所以使用delphi,因此,对delphi还不是很熟悉,希望大家帮帮忙啊!
解决方案 »
- 为什么返回值类型为字符串的函数返回值为空
- 请教 :用Delphi写Excel模板的问题!!
- Access数据库 怎么插入时间字段 FormatDateTime('yyyy-mm-dd,hh:nn:ss', operTime)
- 关于Web页面上使用ClientSocket和ServerSocket的问题。
- 菜鸟的问题:怎样使用提供者?
- ljmanage 来领分吧
- Data Controls控件中哪些控件需要自己加入数据?
- 怎样安全修改一个form的名字?
- 职业前途的问题,恳请大侠们赐教
- 做一名程序员需要什么样的素质
- 南来北往的各路好汉!救救小弟!不胜感激!在线等待 !
- 在线等待,一个简单的问题!
12. 我怎么在delphi7.0中找不到报表控件了?
答:Delphi7的报表控件需要重新自己安装,具体操作:
在“Component” 中 “Install Packages” 后,“Add”在系统中找安装包,
包的名字是:dclqrt70.bpl,位置在Delphi安装目录里面的“Bin”文件夹下面。
insufficient memory,怎么解决?
答:具体情况不清楚,但是注意每个窗体关闭后在 Onclose事件里面要加上内存释放语句,
action:=cafree;
不然内存一直不断得被占用直到你说的那样错误。2.怎样使窗口最大化显示,但不占据shell_wnd的地方。
答:直接在窗体的 WindowStatus属性的直给 wsMaximized即可
下面是自己定义的类:
unit Communication;interfaceuses ScktComp,Messages,Dialogs,forms,Windows,sysutils,allrecord;type TSocketStatus=(Sbusy,Sconnect,Sdisconnect);const timeout=20000;type
Tsendbuffer=array[0..1023] of byte; TCommunication= class(TClientSocket)
private
loginflag : byte;
gettableflag:byte;
Sstatus : TSocketStatus;
FLasterror: string;
protected
procedure Setstatus(const Value: TSocketStatus);
procedure SetLasterror(const Value: string);
public
constructor create;
destructor destroy;
property Lasterror:string read FLasterror write SetLasterror;
property status:TSocketStatus read Sstatus write Setstatus;
function connect:boolean;
procedure OnMyconncet(Sender: TObject; Socket: TCustomWinSocket);
procedure OnMydisconncet(Sender: TObject; Socket: TCustomWinSocket);
procedure OnMyerror(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure OnMyRead(Sender: TObject; Socket: TCustomWinSocket);
function checklogin (logininfo : TLogininfo) : Byte;
function gettable (tablename : string) : Byte;
end;
下面是声明实例:
procedure TForm1.Button1Click(Sender: TObject);
var
myCommunication : TCommunication;
begin
myCommunication := TCommunication.create;
if not myCommunication.connect then
begin
frmfendianmanage.StatusBar1.SimpleText := 'Á¬½Ó·þÎñÆ÷ʧ°Ü!';
Exit;
end
end;
定义:
function test(buffer : array of char): Boolean;function TForm1.test(buffer: array of char): Boolean;
begin
ShowMessage(buffer);
end;
调用:
procedure TForm1.Button2Click(Sender: TObject);
var
buffer : array[0..4] of char;
str : string;
begin
FillChar(buffer,sizeof(buffer),'0');
str := '12345';
StrPCopy(buffer,str);
test(buffer);
end;
定义一个结构:
type
Tlogininfo=record
chainnum : Int64;
sourcesubshopnum : Smallint;
destsubshopnum : Smallint;
sourcesubshopip : String;
end;
给结构赋值:
logininfo.chainnum:= FieldByName('zdno').AsInteger;
logininfo.sourcesubshopnum := FieldByName('wangbano').AsInteger;
logininfo.sourcesubshopip := FieldByName('zongdianIP').AsString;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
Edit1.SelStart:=length(Edit1.Text);
end;
把要写的string反转这个你不会不会把,在写到EDIT中然后让EDIT以右堆齐!
右对其
不过我建议用FASTREPORT,我们一起交流啊
修改一下TEdit类的属性,重新编译一下。不过要小心使用。
8.delphi中函数调用时,参数的传递方法是否有类似c++的引用传递?格式是什么?另外,指针传递参数方式的格式是什么?
参数传递没啥区别,指针用^或者@也可以的。
注意整个窗体也是一个类