Posição palavra no memo
Preciso alinhar meu Memo.
Como faço para colocar uma palavra no memo em uma certa posição,não importando o tamanho
da palavra anterior?Exemplo;
0001 lugar (até aqui eu ja resolví) PALAVRA FIXA .
0002 lugar maior PALAVRA FIXA .
Estou usando o Edit pra colocar a palavra.
No começo do memo tem a palavra do edit,mais pra frente vai ter uma
palavra de uma variavel(tudo na mesma liha,formando linha 1)
mesma coisa pra linha 2 e etc.
Como faço para colocar uma palavra no memo em uma certa posição,não importando o tamanho
da palavra anterior?Exemplo;
0001 lugar (até aqui eu ja resolví) PALAVRA FIXA .
0002 lugar maior PALAVRA FIXA .
Estou usando o Edit pra colocar a palavra.
No começo do memo tem a palavra do edit,mais pra frente vai ter uma
palavra de uma variavel(tudo na mesma liha,formando linha 1)
mesma coisa pra linha 2 e etc.
Kroki
Curtidas 0
Respostas
Theofernandes
13/04/2003
Amigo, não entendi.
Por favor, crie um exemplo de texto e o que você gostaria de incluir nele para que eu possa entender.
Sorry...
Por favor, crie um exemplo de texto e o que você gostaria de incluir nele para que eu possa entender.
Sorry...
GOSTEI 0
Kroki
13/04/2003
Qual o inverso desse codigo?
s2:=Copy(memo1.Lines.Strings[a],11,4);
Caption:=s2;
Quero dizer,quero colocar uma palavra nessa posição.
s2:=Copy(memo1.Lines.Strings[a],11,4);
Caption:=s2;
Quero dizer,quero colocar uma palavra nessa posição.
GOSTEI 0
Theofernandes
13/04/2003
Tchê, ainda não entendi, mas vamos ver se te ajudo.
Tenho a string ´esta é uma string de teste´
Quero inserir a string ´, somente,´ entre ´é´ e ´uma´.
Insert(´, somente,´, variaveldastring, 7);
Ficará assim: ´esta é, somente, uma string de teste´
ou assim, de repente:
Insert(´, somente,´, Pos(´é´, variaveldastring)+1);
Se ainda não for assim, me explique com mais detalhes.
Tenho a string ´esta é uma string de teste´
Quero inserir a string ´, somente,´ entre ´é´ e ´uma´.
Insert(´, somente,´, variaveldastring, 7);
Ficará assim: ´esta é, somente, uma string de teste´
ou assim, de repente:
Insert(´, somente,´, Pos(´é´, variaveldastring)+1);
Se ainda não for assim, me explique com mais detalhes.
GOSTEI 0
Kroki
13/04/2003
Seria assim;
A string vai estar numa variavel´S´.
O texto>´0001 alguma coisa S ´.
Tenho o texto alinhado até a palavra´alguma coisa´,daí pra frente quero colocar uma palavra(mas em uma posição mais pra frente).
Desse modo depois do numero se a palavra for maior,a palavra S não vai desalinhar.
Veja como esta meu memo;
0001 LD A,B $378. Mas a palavra LD A,b poderia ser´LD A,(HL)´.
0001 LD A,(HL) $379. Eu uso 4 espaços antes de ($378,379...etc)
para não deixar o numero colado a palavra anterior,mas como viu,ela pode ser maior desalinhando tudo.SE eu puder escolher a posição da ultima palavra poderia evitar isso.
A string vai estar numa variavel´S´.
O texto>´0001 alguma coisa S ´.
Tenho o texto alinhado até a palavra´alguma coisa´,daí pra frente quero colocar uma palavra(mas em uma posição mais pra frente).
Desse modo depois do numero se a palavra for maior,a palavra S não vai desalinhar.
Veja como esta meu memo;
0001 LD A,B $378. Mas a palavra LD A,b poderia ser´LD A,(HL)´.
0001 LD A,(HL) $379. Eu uso 4 espaços antes de ($378,379...etc)
para não deixar o numero colado a palavra anterior,mas como viu,ela pode ser maior desalinhando tudo.SE eu puder escolher a posição da ultima palavra poderia evitar isso.
GOSTEI 0
Edmar Zatarin
13/04/2003
pelo que entedi vc quer inserir uma palavra qq na frente da primeira palavra de cada linha do memo, estou certo?
Pois entao se eh isso, vc pode fazer assim:
procedure TForm1.Button1Click(Sender: TObject);
var j: Integer;
aux : String;
InserePalavra : string;
begin
if trim(Memo1.Lines.Strings[i]) = ´´ then
Memo1.Lines.Add(´´);
InserePalavra := edit1.text;
aux := ´´;
for j := 1 to length(Memo1.Lines.Strings[i]) do
begin
if (Copy(Memo1.Lines.Strings[i], j, 1) <> ´ ´)
and (Copy(Memo1.Lines.Strings[i], j, 1) <> ´´) then
aux := aux + Copy(Memo1.Lines.Strings[i], j, 1);
end;
InserePalavra := aux + ´ ´ + InserePalavra;
Memo1.Lines.Strings[i] := InserePalavra;
i := i + 1;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
i := 0;
end;
senao eh isso que deseja, vc pode alterar esse algoritmo pra fazer outras coisas senao por favor, especifique melhor sua duvida.
valeus...
abracao....
Pois entao se eh isso, vc pode fazer assim:
procedure TForm1.Button1Click(Sender: TObject);
var j: Integer;
aux : String;
InserePalavra : string;
begin
if trim(Memo1.Lines.Strings[i]) = ´´ then
Memo1.Lines.Add(´´);
InserePalavra := edit1.text;
aux := ´´;
for j := 1 to length(Memo1.Lines.Strings[i]) do
begin
if (Copy(Memo1.Lines.Strings[i], j, 1) <> ´ ´)
and (Copy(Memo1.Lines.Strings[i], j, 1) <> ´´) then
aux := aux + Copy(Memo1.Lines.Strings[i], j, 1);
end;
InserePalavra := aux + ´ ´ + InserePalavra;
Memo1.Lines.Strings[i] := InserePalavra;
i := i + 1;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
i := 0;
end;
senao eh isso que deseja, vc pode alterar esse algoritmo pra fazer outras coisas senao por favor, especifique melhor sua duvida.
valeus...
abracao....
GOSTEI 0
Kroki
13/04/2003
Vamos ver se consigo me explicar.
Se resolver isso,tambem serve.No meu Edit,toda palavra que digito sempre tem 4 espaços a esquerda para alinhamento.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
hexa : String ;
digitos : integer;
w:integer;
u:integer;
codigo:string;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
codigo:=´ $378´;
digitos := 4;
hexa :=IntToHex (u,digitos);
inc (u);
Edit1.Text :=´ ´+Trim(Edit1.Text);
Memo1.Lines.add(hexa+Edit1.Text+codigo);
end;
end.
Digite CASA e depois CASA GRANDE.Não quero o ´$378´desalinhado
Se resolver isso,tambem serve.No meu Edit,toda palavra que digito sempre tem 4 espaços a esquerda para alinhamento.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
hexa : String ;
digitos : integer;
w:integer;
u:integer;
codigo:string;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
codigo:=´ $378´;
digitos := 4;
hexa :=IntToHex (u,digitos);
inc (u);
Edit1.Text :=´ ´+Trim(Edit1.Text);
Memo1.Lines.add(hexa+Edit1.Text+codigo);
end;
end.
Digite CASA e depois CASA GRANDE.Não quero o ´$378´desalinhado
GOSTEI 0
Kroki
13/04/2003
NOTA:
Onde esta´$378´ tem 4 espaços antes de $378.
No codigo´Edit1.Text :=´ ´+Trim(Edit1.Text); ´ são 4 espacos dentro de ´ ´.
Onde esta´$378´ tem 4 espaços antes de $378.
No codigo´Edit1.Text :=´ ´+Trim(Edit1.Text); ´ são 4 espacos dentro de ´ ´.
GOSTEI 0
Kroki
13/04/2003
Acho que praticamente cheguei no ponto.
procedure TForm1.Button1Click(Sender: TObject);
Var S: String;
s2:string;
begin
s2:=´0001 ´;
S := ´ ´+Trim(Edit1.Text); {pode ser ´ ´(espaço)}
Edit1.Text := Copy( S, Length(S)-10,11);
Memo1.Lines.Add(s2+Edit1.Text+´ $378´);
end;
Testem com um Memo,Um Edit e um Button e coloque 2 espaços depois de
´0001´ , 11 espaços em ´S:=´´ e 4 espaços no começo em ´$378´.
Desse modo ha um alinhamento á esquerda,digite uma palavra com 4
letras e depois uma com 8.
É possível fazer exatamente isso mas com a palavra deslocando pra direita?
procedure TForm1.Button1Click(Sender: TObject);
Var S: String;
s2:string;
begin
s2:=´0001 ´;
S := ´ ´+Trim(Edit1.Text); {pode ser ´ ´(espaço)}
Edit1.Text := Copy( S, Length(S)-10,11);
Memo1.Lines.Add(s2+Edit1.Text+´ $378´);
end;
Testem com um Memo,Um Edit e um Button e coloque 2 espaços depois de
´0001´ , 11 espaços em ´S:=´´ e 4 espaços no começo em ´$378´.
Desse modo ha um alinhamento á esquerda,digite uma palavra com 4
letras e depois uma com 8.
É possível fazer exatamente isso mas com a palavra deslocando pra direita?
GOSTEI 0