Array
(
)

Inserir frase em campo memo

Felipeiw
   - 07 dez 2005

Exemplo, tenho um texto em um campo memo, mas quero inserir uma palavra em um determinado local pre-determinado no texto, como posso fazer isso?
Abs


Flaviocont
   - 07 dez 2005

Memo1.Lines[0]:=´EITA´; // ESCREVE EITA NA PRIMEIRA LINHA DO MEMO


Felipeiw
   - 07 dez 2005

com a funcao Posex eu consigo encontrar uma ´marca´ que vou colocar no local onde devo acrescentar a palavra, mas como encontro a linha
por exemplo

Texto:

Venho por meio desta .....

Sao paulo, xxx de xxxxxx de 2005


Onde esta o xxx tenho que acrescentar o dia e onde esta o xxxxxx o mes corrente. E isso


Edilcimar
   - 07 dez 2005

for i := 0 to memo1.lines.count - 1 do
begin
linha := memo1.lines[i];
façaaquiloque quer
end


Jairroberto
   - 07 dez 2005

Olá, Felipe!

Usando a propriedade ´Text´ do objeto ´TStrings´ e a função ´StringReplace´ eu acho que fica mais fácil. Além disso, se você tiver muitas variáveis, pode ser mais adequado criar vetores para facilitar a substituição de todos elas. Veja um exemplo:

#Código


procedure CalcularTexto(Strings: TStrings);
const
VariavelNome: array[1..4] of string = (´[dia]´, ´[mês]´, ´[ano]´, ´[cidade]´);
MesExtenso: array[1..12] of string = (´janeiro´, ´fevereiro´, ´março´, ´abril´, ´maio´, ´junho´, ´julho´, ´agosto´, ´setembro´, ´outubro´, ´novembro´, ´dezembro´);
var
VariavelValor: array[1..4] of string;
i: Integer;
s: string;
Dia, Mes, Ano: Word;
begin
DecodeDate(Date, Ano, Mes, Dia);
VariavelValor[1] := IntToStr(Dia);
VariavelValor[2] := MesExtenso(Mes);
VariavelValor[3] := IntToStr(Ano);
VariavelValor[4] := ´São Paulo´;

s := Strings.Text;
for i := Low(VariavelNome) to High(VariavelNome) do
s := StringReplace(s, VariavelNome[i], VariavelValor[i], [rfReplaceAll, rfIgnoreCase]);

Strings.Text := s;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Text := ´Venho por meio desta .....´13101310´[cidade], [dia] de [mes] de [ano]´;

CalcularTexto(Memo1.Lines);
end;


Não cheguei a testar, mas deve funcionar.


Um abraço,
Jair