厦门招聘Delphi开发工程师,月薪2000-4000,高人面谈(50分)

  • 主题发起人 主题发起人 Deli
  • 开始时间 开始时间
有兴趣可以看看 http://www.mxlt.com/scm 是用delphi7+mdb、sqlserver +mvc模式开发的,如果觉得还满意,可以找我哦!
 
难得厦门有公司招聘,厦门真是个好地方!
 
楼主怎么不出来说句话啊。
 
我有个问题,我去实习,不要任何报酬可以吗?
因为我想学经验。如何?
我是厦门人!
 
工资太低了,我不去,如果5000元以上我就去!
 
上次发了个简历,不知你有没有收到。向楼主提个建议,不行的话至少给人家回复一下。
以下这段代码是最近改的,请看。其中MOVEFIRST与INSERT等按钮是调用一个类。打算做成一个COM服务器。
procedure Tfrmgoods.FormActivate(Sender: TObject);
var
thisnode:ttreenode;
lstype,lscode:string;
a:boolean;
buttonvisable:tpublic;
begin
a:=true;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select type,code from h_forgoods where pcode=0');
adoquery1.Open;
adoquery1.First;
thisnode:=treeview1.Items.GetFirstNode;
thisnode.DeleteChildren;
while not (adoquery1.Eof)do
begin
lstype:=trim(adoquery1.FieldByName('type').AsString);
lscode:=trim(adoquery1.FieldByName('code').AsString);
thisnode:=treeview1.Items.Addchild(thisnode,lstype);
adoquery3.Close;
adoquery3.SQL.Clear;
adoquery3.SQL.add('select type from h_forgoods where pcode='''+lscode+'''');
adoquery3.Open;
adoquery3.First;
while not adoquery3.Eofdo
begin
lstype:=trim(adoquery3.FieldByName('type').AsString);
treeview1.Items.Addchild(thisnode,lstype);
adoquery3.Next;
end;
thisnode:=treeview1.Items.GetFirstNode;
adoquery1.Next;
end;
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add('select * from h_goods where g_code=0');
adoquery2.Open;
//treeview1.FullExpand;
treeview1.Selected:=treeview1.Items.GetFirstNode;
try
buttonvisable:=tpublic.Create;
buttonvisable.state (adoquery2,operation1.spedit,operation1.spcopy,operation1.spinsert,operation1.spdelete ,operation1.spsave,operation1.spcancel,operation1.spprint,operation1.spexcell);//刷新按钮的状态
finally
buttonvisable.Free;
end;
end;

procedure Tfrmgoods.N1Click(Sender: TObject);
var
str:string;
thisnode:ttreenode;
code,max:integer;
code1:string;
frmcaption:string;//是"增加类别"窗口
begin
frmcaption:='增加类别';
thisnode:=treeview1.Selected;
str:=trim(treeview1.Selected.Text);
if not checkcf(frmcaption,'') then
//如果按"取消"按钮,或者重复值则不进入增加结点
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select top 1 code from h_forgoods where type='''+str+'''');
adoquery1.Open;
code:=adoquery1.FieldByName('code').AsInteger;
code1:=inttostr(code);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select max(code) as max from h_forgoods');//获得h_forgoods的code最大值
adoquery1.Open;
max:=adoquery1.FieldByName('max').AsInteger;
max:=max+1;
try
adotable1.Connection.begin
Trans;//从有更新数据进行事务处理
adotable1.Active:=true;
adotable1.Insert;
adotable1.FieldByName('pcode').AsInteger:=code;
//加入你结点
adotable1.FieldByName('code').AsInteger:=max;
//加入自已的标识
adotable1.FieldByName('type').AsString:=typename;
//加入自已的名字
adotable1.FieldByName('child').AsInteger:=0;
//判断是否有子孙。始始化为没有子孙
adotable1.Post;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('update h_forgoods set child=1 where code='''+code1+'''');//使其父有子孙
adoquery1.ExecSQL;
adotable1.Connection.CommitTrans;
treeview1.Items.AddChild(thisnode,typename);
//添加结点
except
on e:exceptiondo
begin
showmessage(e.Message);
adotable1.Connection.RollbackTrans;
end;
end;
end;
end;

function tfrmgoods.checkcf(str:string;str1:string):boolean;
begin
checkcf:=false;
frmatype.Caption:=str;//更改标题
frmatype.Edit1.Text:=str1;
frmatype.ShowModal;
if frmatype.atypebo then
//按"取消"按钮
begin
checkcf:=true;
exit;
end
else
begin
typename:=frmatype.atypestr;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from h_forgoods where rtrim(ltrim(type))='''+trim(typename)+'''');
adoquery1.open;
if adoquery1.RecordCount>0 then
begin
showmessage('您输入重复的类别!请您再输一次!');
checkcf:=true;
end;
end;
end;

procedure Tfrmgoods.N2Click(Sender: TObject);
var
thisnode:ttreenode;
str,code:string;
child:integer;
rcount:integer;// 该类中是否存在着记录
begin
thisnode:=treeview1.Selected;
str:=trim(treeview1.Selected.Text);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from h_forgoods where rtrim(ltrim(type))='''+trim(str)+'''');
adoquery1.Open;
child:=adoquery1.FieldByName('child').AsInteger;
//得到该结点是否有孩子
code:=trim(adoquery1.FieldByName('code').AsString);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from h_goods where rtrim(ltrim(g_code))='''+trim(code)+'''');
adoquery1.Open;
rcount:=adoquery1.RecordCount;
//得到该结点是否有记录
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from h_forgoods where rtrim(ltrim(pcode))='''+trim(code)+'''');
//得到该结点是否有
adoquery1.Open;
if adoquery1.RecordCount<1 then
begin
try
adoquery1.Connection.begin
Trans;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('update h_forgoods set child=0 where rtrim(ltrim(code))='''+trim(code)+'''');
adoquery1.ExecSQL;
adoquery1.Connection.CommitTrans;
if strtoint(code)<>0 then
//根结点不可删除
begin
child:=0;
end
else
//是子结点
begin
child:=1;
end;
except
adoquery1.Connection.RollbackTrans;
end;
end;
if (rcount>0) or (child=1) then
begin
showmessage('该类有子类别或存在商品记录,请先删除它们!');
end
else
begin
if application.MessageBox('您是否想删除该记录?','删除记录',mb_yesno+MB_ICONQUESTION+MB_DEFBUTTON2)=idyes then
begin
try
adoquery1.Connection.begin
Trans;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('delete from h_forgoods where rtrim(ltrim(code))='''+trim(code)+'''');
adoquery1.ExecSQL;
adoquery1.Connection.CommitTrans;
treeview1.Selected.Delete;
except
on e:exceptiondo
begin
adoquery1.Connection.RollbackTrans;
showmessage(e.Message);
end;
end;
end;
end;
end;

procedure Tfrmgoods.N3Click(Sender: TObject);
var
thisnode:ttreenode;
str:string;
frmcaption:string;
begin
frmcaption:='修改类别';
thisnode:=treeview1.Selected;
str:=trim(treeview1.Selected.Text);
if str<>'所有商品' then
begin
if not checkcf(frmcaption,str) then
begin
try
adoquery1.Connection.begin
Trans;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('update h_forgoods set type='''+trim(typename)+'''where rtrim(ltrim(type))='''+trim(str)+'''');
adoquery1.ExecSQL;
adoquery1.Connection.CommitTrans;
treeview1.Selected.Text:=trim(typename);
except
on e:exceptiondo
begin
showmessage(e.Message);
adoquery1.Connection.RollbackTrans;
end;
end;
end;
end;
end;

procedure Tfrmgoods.N4Click(Sender: TObject);
var
thisnode:ttreenode;
str:string;
code1:string;
strnum,strname,strdw,strsupply:string;
strvip:real;
begin
frminputgoods.ShowModal;
if frminputgoods.inputgoodsbo then
begin
strnum:=frminputgoods.inputgoodsnum;
strname:=frminputgoods.inputgoodsname;
strdw:=frminputgoods.inputgoodsdw;
strsupply:=frminputgoods.inputgoodssupply;
strvip:=frminputgoods.inputgoodsvip;
//strtxm:=frminputgoods.inputgoodstxm;
thisnode:=treeview1.Selected;
str:=trim(treeview1.Selected.Text);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select top 1 code from h_forgoods where rtrim(ltrim(type))='''+trim(str)+'''');
adoquery1.Open;
code1:=trim(adoquery1.FieldByName('code').AsString);
//code1:=adoquery1.FieldValues['code'];
try
adoquery2.Connection.begin
Trans;
//adoquery2.Close;
//adoquery2.SQL.Clear;
//adoquery2.SQL.Add('insert into h_goods(g_code,g_num,g_name,g_dw,g_snum,g_dz) values('''+trim(code1)+''','''+trim(strnum)+''','''+trim(strname)+''','''+trim(strdw)+''','''+trim(strsupply)+''','''+trim(floattostr(strvip))+''')');
//adoquery2.ExecSQL
adoquery2.Insert;
adoquery2.FieldByName('g_code').Value:=trim(code1);
adoquery2.FieldByName('g_num').Value:=trim(strnum);
adoquery2.FieldByName('g_name').Value:=trim(strname);
adoquery2.FieldByName('g_dw').Value:=trim(strdw);
adoquery2.FieldByName('g_snum').Value:=trim(strsupply);
adoquery2.FieldByName('g_dz').Value:=trim(floattostr(strvip));
adoquery2.Connection.CommitTrans;
except
on e:exceptiondo
begin
showmessage(e.Message);
adoquery2.Connection.RollbackTrans;
end;
end;
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add('select * from h_goods where rtrim(ltrim(g_code))='''+trim(code1)+'''');
adoquery2.Open
end;
end;

procedure Tfrmgoods.N5Click(Sender: TObject);
begin
try
if application.MessageBox('您是否想删除该记录?','删除记录',mb_yesno+MB_ICONQUESTION+MB_DEFBUTTON2)=idyes then
adoquery2.Delete;
except
on e:exceptiondo
showmessage(e.Message);
end;
end;

procedure Tfrmgoods.N6Click(Sender: TObject);
begin
try
dbgrid1.ReadOnly:=false;
adoquery2.Edit;
except
on e:exceptiondo
showmessage(e.Message);
end;
end;

procedure Tfrmgoods.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect;
DataCol: Integer;
Column: TColumn;
State: TGridDrawState);
var
i:integer;
begin

if (gdFocused in State) then
begin
if (COLUMN.FieldName = DBComboBox1.DataField ) then
begin
DBComboBox1.Left := Rect.Left + DBGrid1.Left+2;
DBComboBox1.Top := Rect.Top + DBGrid1.top;
DBComboBox1.Width := Rect.Right - Rect.Left+2;
DBComboBox1.Height := Rect.Bottom - Rect.Top;
DBComboBox1.Visible := True;
end;
end;
for i:=0 to dbgrid1.Columns.Count-1do
begin
dbgrid1.Columns.Title.Color:=clbtnhighlight;
dbgrid1.Columns.Title.Font.Color:=clblack;
dbgrid1.Columns.Title.Font.Style:=[fsbold];
dbgrid1.Columns.Alignment:=tacenter;
end;
DBGRID1.DefaultDrawColumnCell(RECT,DATACOL,COLUMN,STATE);
if gdselected IN State then
begin
dbgrid1.Canvas.brush.color:=rgb(255,0,0);
dbgrid1.Canvas.FillRect(rect);
dbgrid1.Canvas.font.color:=clblack;
dbgrid1.Canvas.TextOut(rect.left,rect.top,column.Field.AsString);
end;
end;

procedure Tfrmgoods.DBGrid1KeyPress(Sender: TObject;
var Key: Char);
begin
if (key <> chr(9)) then
begin
if (DBGrid1.SelectedField.FieldName=DBComboBox1.DataField) then
begin
DBComboBox1.SetFocus;
SendMessage(DBComboBox1.Handle, WM_Char, word(Key), 0);
end;
end;
end;

procedure Tfrmgoods.DBGrid1ColExit(Sender: TObject);
begin
If DBGrid1.SelectedField.FieldName = DBComboBox1.DataField then
begin
DBComboBox1.Visible := FALSE;
end;
end;

procedure Tfrmgoods.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
canclose:=true;
if frmgoods.adoupdatespending(adoquery2) then
canclose:=(application.MessageBox('您还末保存数据,如果关闭窗口,会破坏数据的统一!','关闭窗口',mb_yesno+MB_ICONQUESTION+MB_DEFBUTTON2)=idyes);
end;
function tfrmgoods.adoupdatespending(adoquery:tcustomadodataset):boolean;
var
clone:tadoquery;
begin
try
clone:=tadoquery.Create(nil);
clone.Clone(adoquery);
clone.FilterGroup:=fgpendingrecords;
clone.Filtered:=true;
result:=not(clone.Eof and clone.Bof);
clone.Close;
finally
clone.Free;
end;
end;
procedure Tfrmgoods.FormShow(Sender: TObject);
var
str:string;
begin
dbgrid1.ReadOnly:=true;
dbcombobox1.ReadOnly:=true;
operation1.spcopy.Visible:=false;
dbcombobox1.Items.Clear;
adoquery3.Close;
adoquery3.SQL.Clear;
adoquery3.SQL.Add('select distinct s_name from h_supply');
adoquery3.Open;
adoquery3.First;
while not adoquery3.Eofdo
begin
str:=trim(adoquery3.FieldByName('s_name').AsString);
dbcombobox1.Items.Add(str);
adoquery3.Next;
end;
dbcombobox1.Visible:=false;
end;
procedure Tfrmgoods.TreeView1DblClick(Sender: TObject);
begin
{
var
thisnode,thisnode1:ttreenode;
str,str1,lscode,lstype:string;
begin
if treeview1.Selected<>treeview1.Items.GetFirstNode then
begin
thisnode:=treeview1.Selected;
thisnode.DeleteChildren;
str:=trim(treeview1.Selected.Text);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select top 1 code from h_forgoods where rtrim(ltrim(type))='''+str+'''');
adoquery1.Open;
str:=trim(adoquery1.FieldByName('code').AsString);
str1:=str;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select type from h_forgoods where rtrim(ltrim(pcode))='''+trim(str)+'''');
adoquery1.Open;
adoquery1.First;
thisnode1:=thisnode;
while not (adoquery1.Eof)do
begin
str:=trim(adoquery1.FieldByName('type').AsString);
thisnode:=thisnode1;
thisnode:=treeview1.Items.Addchild(thisnode,str);
lscode:=str1;
adoquery3.Close;
adoquery3.SQL.Clear;
adoquery3.SQL.add('select type from h_forgoods where pcode='''+lscode+'''');
adoquery3.Open;
adoquery3.First;
while not adoquery3.Eofdo
begin
lstype:=trim(adoquery3.FieldByName('type').AsString);
treeview1.Items.Addchild(thisnode,lstype);
adoquery3.Next;
end;
adoquery1.Next;
end;
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add('select * from h_goods where g_code='''+str1+'''');
adoquery2.Open;
end;
}
end;

procedure Tfrmgoods.TreeView1Expanding(Sender: TObject;
Node: TTreeNode;
var AllowExpansion: Boolean);
var
thisnode,thisnode1:ttreenode;
lscode,lscode1,lstype:string;
begin
if node<>treeview1.Items.GetFirstNode then
begin
node.DeleteChildren;
lstype:=node.Text;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select top 1 code from h_forgoods where rtrim(ltrim(type))='''+lstype+'''');
adoquery1.Open;
lscode:=trim(adoquery1.FieldByName('code').AsString);
lscode1:=lscode;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select type,code from h_forgoods where rtrim(ltrim(pcode))='''+trim(lscode)+'''');
adoquery1.Open;
adoquery1.First;
//thisnode1:=thisnode;
while not (adoquery1.Eof)do
begin
lstype:=trim(adoquery1.FieldByName('type').AsString);
//thisnode:=thisnode1;
thisnode:=treeview1.Items.Addchild(node,lstype);
lscode:=trim(adoquery1.FieldByName('code').AsString);
adoquery3.Close;
adoquery3.SQL.Clear;
adoquery3.SQL.add('select type from h_forgoods where pcode='''+lscode+'''');
adoquery3.Open;
adoquery3.First;
while not adoquery3.Eofdo
begin
lstype:=trim(adoquery3.FieldByName('type').AsString);
treeview1.Items.Addchild(thisnode,lstype);
adoquery3.Next;
end;
adoquery1.Next;
end;
end;
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add('select * from h_goods where g_code='''+lscode1+'''');
adoquery2.Open;
end;

procedure Tfrmgoods.Frame11spfirstClick(Sender: TObject);
begin
frame11.dataset:=adoquery2;
Frame11.spfirstClick(Sender);
end;

procedure Tfrmgoods.Frame11sppriorClick(Sender: TObject);
begin
frame11.dataset:=adoquery2;
Frame11.sppriorClick(Sender);
end;

procedure Tfrmgoods.Frame11spnextClick(Sender: TObject);
begin
frame11.dataset:=adoquery2;
Frame11.spnextClick(Sender);
end;

procedure Tfrmgoods.Frame11splastClick(Sender: TObject);
begin
frame11.dataset:=adoquery2;
Frame11.splastClick(Sender);
end;

procedure Tfrmgoods.speditClick(Sender: TObject);
begin
goodsnum:=trim(adoquery2.FieldByName('g_num').AsString);
goodsname:=trim(adoquery2.FieldByName('g_name').AsString);
//goodstxm:=adoquery2.FieldByName('g_txm').AsString;
goodsdw:=trim(adoquery2.FieldByName('g_dw').AsString);
goodssnum:=trim(adoquery2.FieldByName('g_snum').AsString);
goodsvip:=adoquery2.FieldByName('g_dz').AsFloat;
//showmessage(trim(goodsnum)+trim(goodsname)+trim(goodsdw)+trim(goodsnum)+trim(floattostr(goodsvip)));
end;

procedure Tfrmgoods.operation1speditClick(Sender: TObject);
begin
try
operation1.ADODATASET:=adoquery2;
operation1.dbgrid:=dbgrid1;
operation1.speditClick(Sender);
dbcombobox1.ReadOnly:=false;
except
on e:edatabaseerrordo
adoerror(DM.ADOCon,e);
ON E:EOleErrordo
OleError(E);
end;
end;

procedure Tfrmgoods.operation1spcopyClick(Sender: TObject);
begin
try
operation1.ADODATASET:=adoquery2;
operation1.dbgrid:=dbgrid1;
operation1.spcopyClick(Sender);
except
on e:edatabaseerrordo
adoerror(DM.ADOCon,e);//触发ADO错误
ON E:EOleErrordo
OleError(E);
end;
end;
procedure Tfrmgoods.operation1spinsertClick(Sender: TObject);
var
lscode:string;
lstype:string;
begin
try
operation1.ADODATASET:=adoquery2;
operation1.dbgrid:=dbgrid1;
//buttonvisable.state (adoquery2,operation1.spedit,operation1.spcopy,operation1.spinsert,operation1.spdelete ,operation1.spsave,operation1.spcancel,operation1.spprint,operation1.spexcell);//刷新按钮的状态
operation1.spinsertClick(Sender);
dbcombobox1.ReadOnly:=false;
lstype:=treeview1.Selected.Text;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select top 1 code from h_forgoods where rtrim(ltrim(type))='''+trim(lstype)+'''');
adoquery1.Open;
lscode:=trim(adoquery1.FieldByName('code').AsString);
adoquery2.FieldByName('g_code').Value:=lscode
except
on e:edatabaseerrordo
adoerror(DM.ADOCon,e);
ON E:EOleErrordo
OleError(E);
end;
end;

procedure Tfrmgoods.operation1spdeleteClick(Sender: TObject);
begin
try
operation1.ADODATASET:=adoquery2;
operation1.dbgrid:=dbgrid1;
operation1.spdeleteClick(Sender);
dbcombobox1.ReadOnly:=false;
except
on e:edatabaseerrordo
adoerror(DM.ADOCon,e);
ON E:EOleErrordo
OleError(E);
end;
end;

procedure Tfrmgoods.operation1spsaveClick(Sender: TObject);
begin
try
operation1.ADODATASET:=adoquery2;
operation1.dbgrid:=dbgrid1;
operation1.spsaveClick(Sender);
dbcombobox1.ReadOnly:=true;
except
on e:edatabaseerrordo
adoerror(DM.ADOCon,e);
ON E:EOleErrordo
OleError(E);
end;
end;

procedure Tfrmgoods.operation1spcancelClick(Sender: TObject);
begin
try
operation1.ADODATASET:=adoquery2;
operation1.dbgrid:=dbgrid1;
operation1.spcancelClick(Sender);
dbcombobox1.ReadOnly:=true;
except
on e:edatabaseerrordo
adoerror(DM.ADOCon,e);
ON E:EOleErrordo
OleError(E);
end;
end;

procedure Tfrmgoods.operation1spexcellClick(Sender: TObject);
begin
operation1.ADODATASET:=adoquery2;
operation1.dbgrid:=dbgrid1;
operation1.spexcellClick(Sender);
end;

procedure Tfrmgoods.operation1spcloseClick(Sender: TObject);
begin
close;
end;

procedure Tfrmgoods.spselectClick(Sender: TObject);
begin
goodsnum:=trim(adoquery2.FieldByName('g_num').AsString);
goodsname:=trim(adoquery2.FieldByName('g_name').AsString);
//goodstxm:=adoquery2.FieldByName('g_txm').AsString;
goodsdw:=trim(adoquery2.FieldByName('g_dw').AsString);
goodssnum:=trim(adoquery2.FieldByName('g_snum').AsString);
goodsvip:=adoquery2.FieldByName('g_dz').AsFloat;
end;

procedure Tfrmgoods.TreeView1Click(Sender: TObject);
var
lstype,lscode:string;
buttonvisable:tpublic;
begin
lstype:=treeview1.Selected.Text;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select top 1 code from h_forgoods where rtrim(ltrim(type))='''+lstype+'''');
adoquery1.Open;
lscode:=adoquery1.FieldByName('code').Value;
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add('select * from h_goods where g_code='''+lscode+'''');
adoquery2.Open;
try
buttonvisable:=tpublic.Create;
buttonvisable.state (adoquery2,operation1.spedit,operation1.spcopy,operation1.spinsert,operation1.spdelete ,operation1.spsave,operation1.spcancel,operation1.spprint,operation1.spexcell);//刷新按钮的状态
finally
buttonvisable.Free;
end;
end;
 
强烈批判楼上的,将来该页面打包到离线数据库,会影响弟弟妹妹阅读的心情。
 
请问楼上这位大哥,这有什么会影响的。本来也不想贴出来。正常不贴代码的。我是感觉里面有些东西蛮实用的。例如对表格的控制。对一些人肯定有用的。在我上大学的时候,想找这样的代码都没得找。所以我就想只要我自已认为比较实用的。又是自已写的不是公司的。
我就想贴出来。你们或许已经达到高深阶段。但我想对于一些人还是有用的。至少我一年前就需要这些。
 
呵呵,纵观楼上代码,注释几乎没有,变量命名一塌糊涂,可维护性很差阿
 
介绍一下公司呀,如果不错,给你发简历了
本人熟悉三层,层开发呀
 
to 爱元元的哥哥
同意,强烈同意
工资在厦门来说好像真的挺高,不过我去不了啊,太远了,到那么远,我不如一口气去深圳算了,祝你好运了
 
楼上的代码复用性差,封装性差,维护困难,
变量命名不清,无注释,可读性差,实话实说
 
谢谢大家。这是在做一年前毕业设计时做的。有空我一定得整理一下。希望各位高手有空也把自已的代码贴出来看。我的MAIL:hzjone@hotmail.com.有机会我会把类封装贴出来。
 
TO CHRIS WNEG:复用性差,封装性差。我感觉不会啊。因为我所有的表单都继承于两个FRAME。而FRAME又从一个中PUBLIC 类中得到。在进行操作时。只要传"tcustomadodataset"
进去就可以了。变量命名确实很差。
 
to 爱元元的哥哥
同意,强烈同意
 
我觉得自己不错,常写小程序,没做过大项目!!
http://expert.csdn.net/Expert/topic/2921/2921075.xml?temp=.9381983
 
to 爱元元的哥哥:
你可以不可以把你的其中一小段代码给我一下。好让我改掉坏习惯。MAIL:hzjone@hotmail.com
 
....公司是做什么的??
 
爱元元的哥哥:
你的公司运行的不错吧,听说你开公司了
 
我觉得还是用Powerbuilder写ERP比较简单些,效率也高,这一点对小公司尤其重要,而且这个待遇找个PB的程序员没有问题,如果是Delphi程序员,那只有刚毕业的了。
不过,还是希望楼主简单介绍一下贵公司的情况,比如说业务方向吧。
 
后退
顶部