Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

hugalves

Como colar texto no StringGrid..

Recommended Posts

Olá,To com um problema. Tenho uma grid que possui 3 colunas:ID ESTADO PAÍSDaí eu tenho no clipboard isto:1 SAO PAULO BRASIL2 PERNAMBUCO BRASIL3 AMAZONAS BRASILE eu queria, que quando eu fosse na grid e apertasse control+v, adicionasse na grid em sua respectiva coluna, os itens. Tentei habilitar goEditing mas ele copia apenas em uma coluna. Alguém sabe como fazer isso?Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desenvolvi uma pequena forma assim:

 

procedure TForm1.StringGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);var	x, linha, coluna: integer;	texto, aux: string;beginif ((Key = ord('V')) and (ssCtrl in Shift)) then	begin	texto:=Clipboard.AsText;	if texto <> '' then		begin		aux:='';		coluna:=0;		linha:=StringGrid1.RowCount - 1;		x:=1;		while x <= Length(texto) do			begin			if ((texto[x] = #13) and (texto[x + 1] = #10)) then				begin				StringGrid1.Cells[coluna,linha]:=aux;				aux:='';				coluna:=0;				Inc(linha);				StringGrid1.RowCount:=linha + 1;				Inc(x);				end			else				begin				if texto[x] = ' ' then					begin					StringGrid1.Cells[coluna,linha]:=aux;					Inc(coluna);					aux:='';					end				else					aux:=aux + texto[x]				end;			if x = Length(texto) then				StringGrid1.Cells[coluna,linha]:=aux;			Inc(x);			end;		end;	end;end;

No caso você teria de adicionar mais controles para fazer de forma certa a separação, pois da forma que eu fiz quando contiver espaços ele separa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

marcio.theis,Funcionou legal cara, bem do jeito que eu queria! Valeu ae!! Tu poderia me explicar umas coisas?if ((Key = ord('V')) and (ssCtrl in Shift))ord seria pra pegar o ascii de um elemento? ssCtrl in shift é oq?? Como expressar o control?Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi..mas queria saber, como você sabe que o enter significa isso: "#13#10"? Tem alguma tabela que você confere isso? Como você "descobriu" isso?Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Neste caso aprendi com o tempo mesmo, debugando e entendendo o que ele gerava, passava, etc... Mas pode procurar pela tabela ASCII e ver os caracters todos com os seus códigos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.