由于我处理的是ini文件所有最好不用Query!主要是能实现行的增加、删除和修改!var
Form1: TForm1;
IniFile:TIniFile;
ivar,total,wCount:Integer;
slabel:string;
implementation{$R *.dfm}
function SplitStr(var AStr: string; ASplitChar: Char = ';'): string;//截取字符串
var
sF: string;
begin
sF := '';
if AStr <> '' then
if Pos(ASplitChar, AStr) > 0 then
begin
sF := Copy(AStr, 1, Pos(ASplitChar, AStr) - 1);
AStr := Copy(AStr, Pos(ASplitChar, AStr) + 1, MaxInt);
end
else
begin
sF := AStr;
AStr := '';
end;
Result := sF;
end;procedure TForm1.Exit1Click(Sender: TObject);
begin
close;
end;procedure TForm1.Open1Click(Sender: TObject);
var
i: Integer;
begin
ClientDataSet1.Close;
ClientDataSet1.CreateDataSet;
ClientDataSet1.Open;
if OpenDialog1.Execute then
begin
IniFile:=TIniFile.Create(OpenDialog1.FileName);
ivar:= IniFile.ReadInteger('language','ivar',0);
if ivar = 0 then
begin
Label2.Caption:= '窗口语言:英语';
end;
if ivar = 1 then
begin
Label2.Caption:= '窗口语言:繁体';
end;
if ivar = 2 then
begin
Label2.Caption:= '窗口语言:简体';
end;
wCount:=IniFile.ReadInteger('frmCount','wCount',1);
Label3.Caption:= '窗口数量:' + IntToStr(wCount);
for i := 1 to wCount do
begin
Combobox1.Text:=IniFile.ReadString('frm'+IntToStr(1),'frmCaption','');
Combobox1.Items.Add(IniFile.ReadString('frm'+IntToStr(i),'frmCaption','')) ;
end;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
var
i,j,p:Integer;
boxtext:string;
begin
ClientDataSet1.Close;
ClientDataSet1.CreateDataSet;
ClientDataSet1.Open;
for p := 1 to wCount do
begin
boxtext:=IniFile.ReadString('frm'+IntToStr(p),'frmCaption','');
if boxtext=Combobox1.Text then
begin
i:= p;
end;
end; //如何根据Combobox的值来判断小节
begin
total:=IniFile.ReadInteger('frm'+IntToStr(i),'total',1);
for j := 1 to total do
begin
slabel:=IniFile.ReadString('frm'+IntToStr(i),'label'+IntToStr(j),'');
ClientDataSet1.Append;
ClientDataSet1.FieldByName('窗口名称').AsString:=IniFile.ReadString('frm'+IntToStr(i),'frmCaption','');
ClientDataSet1.FieldByName('程序名称').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('标题语言').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('快捷键').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('颜色').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('字体大小').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('提示说明').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('备注').AsString:=SplitStr(slabel,'^');
ClientDataSet1.Post;
end;
end;
end;procedure TForm1.New1Click(Sender: TObject);
begin
ClientDataSet1.Close;
ClientDataSet1.CreateDataSet;
ClientDataSet1.Open;
end;procedure TForm1.Close1Click(Sender: TObject);
begin
ClientDataSet1.Close;
ClientDataSet1.CreateDataSet;
ClientDataSet1.Open;
end;procedure TForm1.Button3Click(Sender: TObject);
var
i,p,j:Integer;
boxtext:string;
begin
for p := 1 to wCount do
begin
boxtext:=IniFile.ReadString('frm'+IntToStr(p),'frmCaption','');
if boxtext=Combobox1.Text then
begin
i:= p;
end;
end; //如何根据Combobox的值来判断小节
begin
total:=IniFile.ReadInteger('frm'+IntToStr(i),'total',1);
total:= total+1;
IniFile.WriteInteger('frm'+IntToStr(i),'total',total);
IniFile.WriteString('frm'+IntToStr(i),'label'+IntToStr(total),Edit1.Text+'^'+Edit2.Text+'^'+Edit3.Text+'^'+Edit4.Text+'^'+Edit5.Text+'^'+Edit6.Text+'^'+Edit7.Text);
ClientDataSet1.Close;
ClientDataSet1.CreateDataSet;
ClientDataSet1.Open;
for j := 1 to total do
begin
slabel:=IniFile.ReadString('frm'+IntToStr(i),'label'+IntToStr(j),'');
ClientDataSet1.Append;
ClientDataSet1.FieldByName('窗口名称').AsString:=IniFile.ReadString('frm'+IntToStr(i),'frmCaption','');
ClientDataSet1.FieldByName('程序名称').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('标题语言').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('快捷键').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('颜色').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('字体大小').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('提示说明').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('备注').AsString:=SplitStr(slabel,'^');
ClientDataSet1.Post;
end;
end;
end;procedure TForm1.Button2Click(Sender: TObject);
var
i,p,j:Integer;
boxtext:string;
begin
for p := 1 to wCount do
begin
boxtext:=IniFile.ReadString('frm'+IntToStr(p),'frmCaption','');
if boxtext=Combobox1.Text then
begin
i:= p;
end;
end; //如何根据Combobox的值来判断小节
begin
total:=IniFile.ReadInteger('frm'+IntToStr(i),'total',1);
IniFile.DeleteKey('frm'+IntToStr(i),'label'+IntToStr(total));
total:= total-1;
IniFile.WriteInteger('frm'+IntToStr(i),'total',total);
ClientDataSet1.Close;
ClientDataSet1.CreateDataSet;
ClientDataSet1.Open;
for j := 1 to total do
begin
slabel:=IniFile.ReadString('frm'+IntToStr(i),'label'+IntToStr(j),'');
ClientDataSet1.Append;
ClientDataSet1.FieldByName('窗口名称').AsString:=IniFile.ReadString('frm'+IntToStr(i),'frmCaption','');
ClientDataSet1.FieldByName('程序名称').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('标题语言').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('快捷键').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('颜色').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('字体大小').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('提示说明').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('备注').AsString:=SplitStr(slabel,'^');
ClientDataSet1.Post;
end;
end;
end;procedure TForm1.Button4Click(Sender: TObject);
var
i,p,j:Integer;
boxtext:string;
begin
for p := 1 to wCount do
begin
boxtext:=IniFile.ReadString('frm'+IntToStr(p),'frmCaption','');
if boxtext=Combobox1.Text then
begin
i:= p;
end;
end; //如何根据Combobox的值来判断小节
begin
total:=IniFile.ReadInteger('frm'+IntToStr(i),'total',1);
IniFile.WriteString('frm'+IntToStr(i),'label'+IntToStr(total),Edit1.Text+'^'+Edit2.Text+'^'+Edit3.Text+'^'+Edit4.Text+'^'+Edit5.Text+'^'+Edit6.Text+'^'+Edit7.Text);
ClientDataSet1.Close;
ClientDataSet1.CreateDataSet;
ClientDataSet1.Open;
for j := 1 to total do
begin
slabel:=IniFile.ReadString('frm'+IntToStr(i),'label'+IntToStr(j),'');
ClientDataSet1.Append;
ClientDataSet1.FieldByName('窗口名称').AsString:=IniFile.ReadString('frm'+IntToStr(i),'frmCaption','');
ClientDataSet1.FieldByName('程序名称').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('标题语言').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('快捷键').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('颜色').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('字体大小').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('提示说明').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('备注').AsString:=SplitStr(slabel,'^');
ClientDataSet1.Post;
end;
end;
end;
end.我想通过dbgrid1.SelectedField.DataSet.RecNo实现!谢谢了!
Form1: TForm1;
IniFile:TIniFile;
ivar,total,wCount:Integer;
slabel:string;
implementation{$R *.dfm}
function SplitStr(var AStr: string; ASplitChar: Char = ';'): string;//截取字符串
var
sF: string;
begin
sF := '';
if AStr <> '' then
if Pos(ASplitChar, AStr) > 0 then
begin
sF := Copy(AStr, 1, Pos(ASplitChar, AStr) - 1);
AStr := Copy(AStr, Pos(ASplitChar, AStr) + 1, MaxInt);
end
else
begin
sF := AStr;
AStr := '';
end;
Result := sF;
end;procedure TForm1.Exit1Click(Sender: TObject);
begin
close;
end;procedure TForm1.Open1Click(Sender: TObject);
var
i: Integer;
begin
ClientDataSet1.Close;
ClientDataSet1.CreateDataSet;
ClientDataSet1.Open;
if OpenDialog1.Execute then
begin
IniFile:=TIniFile.Create(OpenDialog1.FileName);
ivar:= IniFile.ReadInteger('language','ivar',0);
if ivar = 0 then
begin
Label2.Caption:= '窗口语言:英语';
end;
if ivar = 1 then
begin
Label2.Caption:= '窗口语言:繁体';
end;
if ivar = 2 then
begin
Label2.Caption:= '窗口语言:简体';
end;
wCount:=IniFile.ReadInteger('frmCount','wCount',1);
Label3.Caption:= '窗口数量:' + IntToStr(wCount);
for i := 1 to wCount do
begin
Combobox1.Text:=IniFile.ReadString('frm'+IntToStr(1),'frmCaption','');
Combobox1.Items.Add(IniFile.ReadString('frm'+IntToStr(i),'frmCaption','')) ;
end;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
var
i,j,p:Integer;
boxtext:string;
begin
ClientDataSet1.Close;
ClientDataSet1.CreateDataSet;
ClientDataSet1.Open;
for p := 1 to wCount do
begin
boxtext:=IniFile.ReadString('frm'+IntToStr(p),'frmCaption','');
if boxtext=Combobox1.Text then
begin
i:= p;
end;
end; //如何根据Combobox的值来判断小节
begin
total:=IniFile.ReadInteger('frm'+IntToStr(i),'total',1);
for j := 1 to total do
begin
slabel:=IniFile.ReadString('frm'+IntToStr(i),'label'+IntToStr(j),'');
ClientDataSet1.Append;
ClientDataSet1.FieldByName('窗口名称').AsString:=IniFile.ReadString('frm'+IntToStr(i),'frmCaption','');
ClientDataSet1.FieldByName('程序名称').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('标题语言').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('快捷键').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('颜色').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('字体大小').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('提示说明').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('备注').AsString:=SplitStr(slabel,'^');
ClientDataSet1.Post;
end;
end;
end;procedure TForm1.New1Click(Sender: TObject);
begin
ClientDataSet1.Close;
ClientDataSet1.CreateDataSet;
ClientDataSet1.Open;
end;procedure TForm1.Close1Click(Sender: TObject);
begin
ClientDataSet1.Close;
ClientDataSet1.CreateDataSet;
ClientDataSet1.Open;
end;procedure TForm1.Button3Click(Sender: TObject);
var
i,p,j:Integer;
boxtext:string;
begin
for p := 1 to wCount do
begin
boxtext:=IniFile.ReadString('frm'+IntToStr(p),'frmCaption','');
if boxtext=Combobox1.Text then
begin
i:= p;
end;
end; //如何根据Combobox的值来判断小节
begin
total:=IniFile.ReadInteger('frm'+IntToStr(i),'total',1);
total:= total+1;
IniFile.WriteInteger('frm'+IntToStr(i),'total',total);
IniFile.WriteString('frm'+IntToStr(i),'label'+IntToStr(total),Edit1.Text+'^'+Edit2.Text+'^'+Edit3.Text+'^'+Edit4.Text+'^'+Edit5.Text+'^'+Edit6.Text+'^'+Edit7.Text);
ClientDataSet1.Close;
ClientDataSet1.CreateDataSet;
ClientDataSet1.Open;
for j := 1 to total do
begin
slabel:=IniFile.ReadString('frm'+IntToStr(i),'label'+IntToStr(j),'');
ClientDataSet1.Append;
ClientDataSet1.FieldByName('窗口名称').AsString:=IniFile.ReadString('frm'+IntToStr(i),'frmCaption','');
ClientDataSet1.FieldByName('程序名称').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('标题语言').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('快捷键').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('颜色').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('字体大小').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('提示说明').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('备注').AsString:=SplitStr(slabel,'^');
ClientDataSet1.Post;
end;
end;
end;procedure TForm1.Button2Click(Sender: TObject);
var
i,p,j:Integer;
boxtext:string;
begin
for p := 1 to wCount do
begin
boxtext:=IniFile.ReadString('frm'+IntToStr(p),'frmCaption','');
if boxtext=Combobox1.Text then
begin
i:= p;
end;
end; //如何根据Combobox的值来判断小节
begin
total:=IniFile.ReadInteger('frm'+IntToStr(i),'total',1);
IniFile.DeleteKey('frm'+IntToStr(i),'label'+IntToStr(total));
total:= total-1;
IniFile.WriteInteger('frm'+IntToStr(i),'total',total);
ClientDataSet1.Close;
ClientDataSet1.CreateDataSet;
ClientDataSet1.Open;
for j := 1 to total do
begin
slabel:=IniFile.ReadString('frm'+IntToStr(i),'label'+IntToStr(j),'');
ClientDataSet1.Append;
ClientDataSet1.FieldByName('窗口名称').AsString:=IniFile.ReadString('frm'+IntToStr(i),'frmCaption','');
ClientDataSet1.FieldByName('程序名称').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('标题语言').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('快捷键').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('颜色').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('字体大小').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('提示说明').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('备注').AsString:=SplitStr(slabel,'^');
ClientDataSet1.Post;
end;
end;
end;procedure TForm1.Button4Click(Sender: TObject);
var
i,p,j:Integer;
boxtext:string;
begin
for p := 1 to wCount do
begin
boxtext:=IniFile.ReadString('frm'+IntToStr(p),'frmCaption','');
if boxtext=Combobox1.Text then
begin
i:= p;
end;
end; //如何根据Combobox的值来判断小节
begin
total:=IniFile.ReadInteger('frm'+IntToStr(i),'total',1);
IniFile.WriteString('frm'+IntToStr(i),'label'+IntToStr(total),Edit1.Text+'^'+Edit2.Text+'^'+Edit3.Text+'^'+Edit4.Text+'^'+Edit5.Text+'^'+Edit6.Text+'^'+Edit7.Text);
ClientDataSet1.Close;
ClientDataSet1.CreateDataSet;
ClientDataSet1.Open;
for j := 1 to total do
begin
slabel:=IniFile.ReadString('frm'+IntToStr(i),'label'+IntToStr(j),'');
ClientDataSet1.Append;
ClientDataSet1.FieldByName('窗口名称').AsString:=IniFile.ReadString('frm'+IntToStr(i),'frmCaption','');
ClientDataSet1.FieldByName('程序名称').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('标题语言').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('快捷键').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('颜色').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('字体大小').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('提示说明').AsString:=SplitStr(slabel,'^');
ClientDataSet1.FieldByName('备注').AsString:=SplitStr(slabel,'^');
ClientDataSet1.Post;
end;
end;
end;
end.我想通过dbgrid1.SelectedField.DataSet.RecNo实现!谢谢了!
解决方案 »
- delphi2010文本文件编码问题
- 在DELPHI中如何调用C写的动态连接库
- 急,急,在线等等关于DSPCK 的安装问题??
- 用NatsCape7上CSDN没有出现连接超时的情况。
- 我有一个字段是TEXT类型的,我不知道内容长度,请问怎么打?
- 谁能提供一个用高效算法实现(表中有两个字段,一个字段是一个有规录,然后根据这个规律把另一字段的数据显示在TREEVIEW里),并对没一层有添
- 一个比较另类而常见的问题,Widestring 如何转化为 integer型 up有分
- 我想编写一个类似foxmail的软件,遇到3个问题。请大家帮忙!
- 小问题,大分数:如何判断TStringGrid中哪一行处于选中状态?
- 急:地址冲突如何引起,如何解决?
- 請教怎樣將相同部分改寫為procedure
- DELPHI7 如何复制调试出错信息
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
showmessage(IntToStr(dbgrid1.SelectedField.DataSet.RecNo)) ;
end;试都不行!
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
showmessage(IntToStr(dbgrid1.SelectedField.DataSet.RecNo)) ;
end;
[Error] Language.pas(301): Undeclared identifier: 'DBGrid1OnDblClick'
要怎么处理呀?