Fórum Posição palavra no memo #154577

13/04/2003

0

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

Responder

Posts

13/04/2003

Theofernandes

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


Responder

Gostei + 0

15/04/2003

Kroki

Qual o inverso desse codigo?
s2:=Copy(memo1.Lines.Strings[a],11,4);
Caption:=s2;
Quero dizer,quero colocar uma palavra nessa posição.


Responder

Gostei + 0

15/04/2003

Theofernandes

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.


Responder

Gostei + 0

16/04/2003

Kroki

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.


Responder

Gostei + 0

16/04/2003

Edmar Zatarin

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


Responder

Gostei + 0

16/04/2003

Kroki

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


Responder

Gostei + 0

16/04/2003

Kroki

NOTA:
Onde esta´$378´ tem 4 espaços antes de $378.
No codigo´Edit1.Text :=´ ´+Trim(Edit1.Text); ´ são 4 espacos dentro de ´ ´.


Responder

Gostei + 0

16/04/2003

Kroki

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?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar