函数1
var
strInfo:string;
i:integer;
begin
//Query1.Fields[i]
if (g_Retrieving = true) then
Exit;
Memo1.Text := '';
try
//形成记录明细字符串和显示变量字符串
g_DispVarStr:='';
for i:=0 to Query1.FieldCount - 1 do
begin
strInfo:=strInfo+DBGridEh1.Columns[i].Title.Caption+':'+DBGridEh1.Fields[i].AsString+#13#10;
g_DispVarStr:=g_DispVarStr+g_DispVar[i+1]+'='+DBGridEh1.Fields[i].AsString+';'
end;
except
end;
Memo1.Text := strInfo;
end;
函数2
//将从父窗口传下来的变量值对字符串的值更新到变量表中
procedure Tfrm_main.UpdateValueStrToVarTable();
var
rowNo:integer;
strTemp:string;
begin
///showMessage(inttostr(g_panel_count));
for rowNo:=1 to g_panel_count do
begin
strTemp:='';
//从传递到当前窗体的变量值对字符串(如:{section_no}=101;{group_no}=1001;}中获取对应变量值
strTemp := FindParam(g_DispVarStr ,trim(sg_CurVarTable.Cells[3,rowNo]){源变量}) ;
///showMessage(g_DispVarStr+' '+sg_CurVarTable.Cells[3,rowNo]+' '+strTemp);
//将获得到的变量值更新到变量表(stringGrid对象sg_CurVarTable )中.
if strTemp<>'' then
sg_CurVarTable.Cells[4,rowNo] := strTemp;
end;
将这两个delphi的函数改成C#的,
谢谢!!!
------解决方案--------------------------------------------------------
没有接触国delphi,不过建议楼主了解一下C#语法自己改,怎么说都是一个学习的过程!
------解决方案--------------------------------------------------------
函数1
string strInfo;
integer i;
if (g_Retrieving == true) return;
Memo1.Text = "";
try
g_DispVarStr ='';
for(int i=0; i<Query1.FieldCount-1; i++)
{
strInfo = strInfo + DBGridEh1.Columns[i].Title.Caption+ ":" +DBGridEh1.Fields[i].AsString+"\0\n";
g_DispVarStr= g_DispVarStr+g_DispVar[i+1]+"="+DBGridEh1.Fields[i].AsString+";" ;
}
Except
end;
Memo1.Text = strInfo;
你用到了Delphi的Query、DBGrid等控件。这些控件在C#里没有。但有类似的。取数据的方法你自己去对应一下。语法应该没问题。我没测试。
第二个不改了。困了。睡觉。
------解决方案--------------------------------------------------------
Memo可以用RichTextbox替代,而DBGrid可以用DataGridView替代,Query可以用bindingSource替代
------解决方案--------------------------------------------------------
学习
------解决方案--------------------------------------------------------
C#里面没有DBGridEh控件,还是看看DataGridView吧。
------解决方案--------------------------------------------------------