Fórum Como Inserir dados Campo Memo sempre no inicio #361483
23/07/2008
0
Preciso de uma forma que toda vez que for editar um campo memo ao invés de ir para a última linha, a edição sempre iniciar na linha 0 e ir ´empurrando´ os outros dados para baixo.
Obrigado a todos.
Helio Nascimento
Curtir tópico
+ 0Posts
23/07/2008
Marco Salles
eu não sei como e o que voce define como Edição ...
mas depende da sua Lógica a instrução abaixo pode atender a sua necessidade
procedure TForm1.Memo1Click(Sender: TObject); begin memo1.SelStart:=0; if memo1.Lines.Strings[0] <> ´´ Then begin memo1.Lines.Strings[0]:=sLineBreak+memo1.Lines.Strings[0]; memo1.SelStart:=0; end; end;
Gostei + 0
23/07/2008
Helio Nascimento
Sempre você nos ajudando...
Você é o cara!!!
Marcos seguinte: Ainda não testei o seu código, mas você suscitou uma dúvida sobre o que eu quero que o sistema realize.
Tenho um campo DBMemo1, que recebe diariamente ocorrências operacionais.
Exemplo (1) Situação atual:
==================
13/07/2008 - João Jose de Souza
---------------------------------------
Realizou experiências laboratoriais nulas
15/07/2008 - Pedro Augusto
----------------------------------------
Houve registro de perda de uma falange do
dedo médio em máquina operatriz.
Situação desejada:
============
23/07/2008 - Hélio Nascimento
----------------------------------------
Realiza consultas ao Forum DevMédia para resolver
questões da inserção de dados sempre no
incio do Campo DBmemo1.
15/07/2008 - Pedro Augusto
----------------------------------------
Houve registro de perda de uma falange do
dedo médio em máquina operatriz.
13/07/2008 - João Jose de Souza
---------------------------------------
Realizou experiências laboratoriais nulas
Percebeu! -
As edições deste campo DBMemo sempre serão inciada no
TOP ´empurando´ para baixo as edições passadas, de forma que ao ser consultado sobre as ocorrências você sempre verá a última no top e não no final como é habitual.
Pegou!!
Gostei + 0
23/07/2008
Paulo
ABACATE
MELÃO
Agora se eu for adicionar MELANCIA a lista ficaria assim:
MELANCIA
ABACATE
MELÃO
e não
ABACATE
MELÃO
MELANCIA
Gostei + 0
23/07/2008
Helio Nascimento
Marcos. Testei. Não funcionou, está indo para o final como o habitual.
Gostei + 0
23/07/2008
Helio Nascimento
Desculpa-me!
Gostei + 0
23/07/2008
Brunodsr
Siga o exemplo abaixo: (retirei do help do delphi mesmo)
Alimentando a minha lista
procedure TForm1.FormCreate(Sender: TObject); var I: Integer; begin ListBox1.MultiSelect := False; Button1.Caption := ´Move to Top´; for I := 1 to 10 do ListBox1.Items.Add(´Item ´ + IntToStr(I)); end;
Mudando a posicao dos meus itens.
procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.Move(ListBox1.ItemIndex, 0); end;
Com esse exemplo, vc pode modificar para inserir e depois mover o registro para a ponta da lista.
Espero ter ajudado
Gostei + 0
23/07/2008
Marco Salles
se a edição é manual ... Se a edição vem de Alguma outra Fonte .
O que eu penso é o seguinte
Tenho Um DbMemo com algum Conteudo
Supondo que eu quero Adicionar Melancia ... Isto é Adicionar a Base de Dados ... Aonde o Conteudo de Melancia vem Por exemplo de Um Edit
Ficando Assim :
pois bem se eu entendi direito uma idéia seria + ou - assim
UmDataSet.Edit; dbMemo1.Lines.Text:=edit1.Text+sLineBreak+dbMemo1.Lines.Text; UmDataSet.Post;
com certeza isto coloca a StringMelancia No Inicio ... e não no Fim
Gostei + 0
24/07/2008
Helio Nascimento
Desta vez deu certo. Abaixo mostro-lhes trecho meu código.
Obrigado a todos e... até a próxima !!
procedure TFrmFichaOcorrencias.DBMemo1Enter(Sender: TObject); VAR tam,risco : string; i: integer; begin inherited; if DtSrc.DataSet.State in [dsBrowse] then if not(DtSrc.DataSet.State=dsEdit) then DtSrc.DataSet.Edit; begin if (DtSrc.DataSet.State=dsInsert) then tam:= StaticText1.Caption +´ - ´+ Trim(FacDbEdit2.Text) else tam:=DateTimeToStr(now)+´ - ´+ Trim(FacDbEdit2.Text); risco:=´´; for i:= 1 to (Length(tam)) do risco:=risco+´--´; if not(DtSrc.DataSet.State=dsInsert) then begin DBmemo1.Lines.Text:=tam+13+risco+sLineBreak+13+DBmemo1.Lines.text; dbMemo1.lines.Insert(2,´ ´); end; end; end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)