André, fiz um teste colocando o toma fixo = 2 no pctectew:
if CTe.infCTe.versao = 3 then
begin
Gerador.wGrupo('toma3', '#035');
Gerador.wCampo(tcStr, '#036', 'toma ', 01, 01, 1, 2, DSC_TOMA);
Gerador.wGrupo('/toma3');
end
no arquivo xml ele gravou <toma>2</toma>
então movi pcteconversaocte.tmDestinatario mencionando o pcteconversaocte :
//Classe ==> toma03
Case Tp_Tomador.ItemIndex of // Forma de Pagto do CTe
0: CTe.Ide.Toma03.Toma := pcteconversaocte.tmRemetente;
1: CTe.Ide.Toma03.Toma := pcteconversaocte.tmDestinatario;
2: CTe.Ide.Toma03.Toma := pcteconversaocte.tmOutros;
End;
mesmo assim no arquivo xml ele gravou <toma>0</toma>
quando coloco o valor fixo ele grava o que eu movi, quando uso a variavel tmdestinatario ele grava zero (<toma>0</toma>)
sim, André a imagem é do debug.
desculpe, vou debugar a função TpTomadorToStr.