Converter bookmark para string;
Pessoal,
Tenho uma conexão ADO(jet4.0)-Adoconnection,um ADOTable, uma datasource
e um dbgrid e dois botões. O cliente quer que o registro selecionado
esteja indicado quando quando ele quiser abrir a aplicação novamente.
Tentei gravar o bookmark num texto e converter
novamente para um bookmark. Ai é que não sei como fazer.
Se alguém puder ajudar agradeço.
var
Form1: TForm1;
sel:TBookmark;
arq:TStringList;
arq2:TStringList;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
q:string;
begin
arq:=TStringList.Create;
sel:=DataSource1.DataSet.GetBookmark;
arq.Add(DataSource1.DataSet.Bookmark);
if FileExists(´c:\apl\pos.txt´) = true then
DeleteFile(´c:\apl\pos.txt´);
arq.SaveToFile(´c:\apl\pos.txt´);
arq.Free;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
var
ler:string;
sel2:TBookmark;
begin
arq2:=TStringList.Create();
arq2.LoadFromFile(´c:\apl\pos.txt´);
sel2:=arq2.gettext; // mensagem: argumentos incorretos???
DataSource1.DataSet.GotoBookmark(arq2.???);
end;
Tenho uma conexão ADO(jet4.0)-Adoconnection,um ADOTable, uma datasource
e um dbgrid e dois botões. O cliente quer que o registro selecionado
esteja indicado quando quando ele quiser abrir a aplicação novamente.
Tentei gravar o bookmark num texto e converter
novamente para um bookmark. Ai é que não sei como fazer.
Se alguém puder ajudar agradeço.
var
Form1: TForm1;
sel:TBookmark;
arq:TStringList;
arq2:TStringList;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
q:string;
begin
arq:=TStringList.Create;
sel:=DataSource1.DataSet.GetBookmark;
arq.Add(DataSource1.DataSet.Bookmark);
if FileExists(´c:\apl\pos.txt´) = true then
DeleteFile(´c:\apl\pos.txt´);
arq.SaveToFile(´c:\apl\pos.txt´);
arq.Free;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
var
ler:string;
sel2:TBookmark;
begin
arq2:=TStringList.Create();
arq2.LoadFromFile(´c:\apl\pos.txt´);
sel2:=arq2.gettext; // mensagem: argumentos incorretos???
DataSource1.DataSet.GotoBookmark(arq2.???);
end;
N1
Curtidas 0
Respostas
Fabio Ferreira
26/11/2004
Ola N1
O TBookmark que voce usou nao é string e do tipo ´pointer´, nao dando para salvar. Experimente utilizar o TBookmarkSTR, esse sim utiliza uma variavel String, que se for o caso, podera ser guardada. Utilizo bastante esse recurso (com TBookmarkSTR) porem nunca salvei uma posicao.
Fabio
O TBookmark que voce usou nao é string e do tipo ´pointer´, nao dando para salvar. Experimente utilizar o TBookmarkSTR, esse sim utiliza uma variavel String, que se for o caso, podera ser guardada. Utilizo bastante esse recurso (com TBookmarkSTR) porem nunca salvei uma posicao.
Fabio
GOSTEI 0
N1
26/11/2004
Fabio,
Obrigado pela dica. Se alguém tiver problema similar, segue
o código que serviu para mim.
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i:integer;
q:string;
begin
arq:=TStringList.Create;
q:=DataSource1.DataSet.Bookmark;
i:=DataSource1.DataSet.RecNo;
arq.Add(inttostr(i));
if FileExists(´c:\apl\pos.txt´) = true then
DeleteFile(´c:\apl\pos.txt´);
arq.SaveToFile(´c:\apl\pos.txt´);
arq.Free;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
var
sel2:TBookmarkStr;
begin
arq2:=TStringList.Create();
arq2.LoadFromFile(´c:\apl\pos.txt´);
DBGrid1.DataSource.DataSet.RecNo:=strtoint(arq2[0]);
end;
Obrigado pela dica. Se alguém tiver problema similar, segue
o código que serviu para mim.
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i:integer;
q:string;
begin
arq:=TStringList.Create;
q:=DataSource1.DataSet.Bookmark;
i:=DataSource1.DataSet.RecNo;
arq.Add(inttostr(i));
if FileExists(´c:\apl\pos.txt´) = true then
DeleteFile(´c:\apl\pos.txt´);
arq.SaveToFile(´c:\apl\pos.txt´);
arq.Free;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
var
sel2:TBookmarkStr;
begin
arq2:=TStringList.Create();
arq2.LoadFromFile(´c:\apl\pos.txt´);
DBGrid1.DataSource.DataSet.RecNo:=strtoint(arq2[0]);
end;
GOSTEI 0