Fórum DBGRID delphi xe10 #553015
03/05/2016
0
Saudações a todos;
Platoforma XE10 e Win7
Tenho uma rotina feito e delphi 7 e estou migrando para o xe10 e testando parte por parte me deparei com uma situação
Tenho um dbgrid que tem uma coluna que esta invisivel e sem informacao do campo esta la so para marcar lugar,
Dbg.Columns[8].FieldName := 'FORMA_EMISSAO';
Dbg.Columns[8].Visible := ((Pos(UpperCase(FGER_RETORNA_IP_NOME('N')),m_rginitialsys.Estacao_Nfe)>0) And m_rgempresa.UTILIZA_NFE);
Explicando :
A Funcao (FGER_RETORNA_IP_NOME retorna um string com o nome ou ip da estacao
Variavel tipo recpord m_rginitialsys.Estacao_Nfe(string) que guarda o nome das estacoes que podem emitir nf-e
m_rgempresa.UTILIZA_NFE variavel boolean que indica que a empresa trabalha com emissao de nf-e;
O que esta ocorrendo qdo carrego formulario que tem esta rotina executa 2 vezes e depois da erro.
o erro esta ligado a propriedade visible pois se coloco false ou true funciona legal
carrego o formulario desta forma
application.createform(tform,form)
form.showmodal;
form.release;
form:=nil;
Desde já agradeço a todos...
Platoforma XE10 e Win7
Tenho uma rotina feito e delphi 7 e estou migrando para o xe10 e testando parte por parte me deparei com uma situação
Tenho um dbgrid que tem uma coluna que esta invisivel e sem informacao do campo esta la so para marcar lugar,
Dbg.Columns[8].FieldName := 'FORMA_EMISSAO';
Dbg.Columns[8].Visible := ((Pos(UpperCase(FGER_RETORNA_IP_NOME('N')),m_rginitialsys.Estacao_Nfe)>0) And m_rgempresa.UTILIZA_NFE);
Explicando :
A Funcao (FGER_RETORNA_IP_NOME retorna um string com o nome ou ip da estacao
Variavel tipo recpord m_rginitialsys.Estacao_Nfe(string) que guarda o nome das estacoes que podem emitir nf-e
m_rgempresa.UTILIZA_NFE variavel boolean que indica que a empresa trabalha com emissao de nf-e;
O que esta ocorrendo qdo carrego formulario que tem esta rotina executa 2 vezes e depois da erro.
o erro esta ligado a propriedade visible pois se coloco false ou true funciona legal
carrego o formulario desta forma
application.createform(tform,form)
form.showmodal;
form.release;
form:=nil;
Desde já agradeço a todos...
Geraldo Barroso
Curtir tópico
+ 0
Responder
Posts
03/05/2016
Fabio Cardoso
Você pode colocar qual o erro??
o retorno ai do método que você criou ele é boolean ou uma string?
Porque se for string, pode acontecer do retorno vir com o padrão unicode
nesse caso dentro do método colocar no result
assim:
mas uma resposta mais real só posso dar se ver o erro. poste o erro e exatamento em qual ponto ele acontece.
Verifique se por acaso o form ai na sua chamada ele nao esta como nil devido a algum erro na criação do form pela segunda chamada.
Poste mais detalhes sobre seu códico.
o retorno ai do método que você criou ele é boolean ou uma string?
Porque se for string, pode acontecer do retorno vir com o padrão unicode
nesse caso dentro do método colocar no result
assim:
function minhafuncao:string;
begin
result:=ansistring(valorAretornar); // aqui será feito uma conversão dos unicode para caracteres tabela ASCII.
end;
mas uma resposta mais real só posso dar se ver o erro. poste o erro e exatamento em qual ponto ele acontece.
Verifique se por acaso o form ai na sua chamada ele nao esta como nil devido a algum erro na criação do form pela segunda chamada.
Poste mais detalhes sobre seu códico.
Responder
Gostei + 0
03/05/2016
Geraldo Barroso
Esqueci de colocar o erro
Pelo debug exception class $c00000fd 'stack overflow' '
Para nesta rotina ele retorna duas strings e comparo se uma contem a a outra.
Pelo debug exception class $c00000fd 'stack overflow' '
[function LoadResString(ResStringRec: PResStringRec): string;
var
Buffer: array [0..4095] of Char;
begin
if ResStringRec = nil then Exit;
if ResStringRec.Identifier < 64*1024 then
SetString(Result, Buffer,
LoadString(FindResourceHInstance(ResStringRec.Module^),
ResStringRec.Identifier, Buffer, Length(Buffer)))
else
Result := PChar(ResStringRec.Identifier);
end;
Para nesta rotina ele retorna duas strings e comparo se uma contem a a outra.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)