Posição palavra no memo

Delphi

13/04/2003

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.


Kroki

Kroki

Curtidas 0

Respostas

Theofernandes

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...


GOSTEI 0
Kroki

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.


GOSTEI 0
Theofernandes

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.


GOSTEI 0
Kroki

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.


GOSTEI 0
Edmar Zatarin

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....


GOSTEI 0
Kroki

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


GOSTEI 0
Kroki

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 ´ ´.


GOSTEI 0
Kroki

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?


GOSTEI 0
POSTAR