Como Inserir dados Campo Memo sempre no inicio
Colegas.
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.
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
Curtidas 0
Respostas
Marco Salles
23/07/2008
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.
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
Helio Nascimento
23/07/2008
Marcos Sales
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!!
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
Paulo
23/07/2008
Olá Marco, o que ele quer é que os novos itens quando forem sendo adicionados, que eles fiquem sempre na primeira linha, tipo: Eu tenho
ABACATE
MELÃO
Agora se eu for adicionar MELANCIA a lista ficaria assim:
MELANCIA
ABACATE
MELÃO
e não
ABACATE
MELÃO
MELANCIA
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
Helio Nascimento
23/07/2008
Paulo. É isto mesmo que desejo.
Marcos. Testei. Não funcionou, está indo para o final como o habitual.
Marcos. Testei. Não funcionou, está indo para o final como o habitual.
GOSTEI 0
Helio Nascimento
23/07/2008
Pessoal. Fiz o título errado. Não é campo Memo, e sim Campo DBMemo.
Desculpa-me!
Desculpa-me!
GOSTEI 0
Brunodsr
23/07/2008
Use a procedure MOVE do TString.
Siga o exemplo abaixo: (retirei do help do delphi mesmo)
Alimentando a minha lista
Mudando a posicao dos meus itens.
Com esse exemplo, vc pode modificar para inserir e depois mover o registro para a ponta da lista.
Espero ter ajudado
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
Marco Salles
23/07/2008
eu ainda não entendi como voe esta editando essas Base de dados
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
com certeza isto coloca a StringMelancia No Inicio ... e não no Fim
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
Olá Marco, o que ele quer é que os novos itens quando forem sendo adicionados, que eles fiquem sempre na primeira linha, tipo: Eu tenho
ABACATE
MELÃO
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 :
Agora se eu for adicionar MELANCIA a lista ficaria assim:
MELANCIA
ABACATE
MELÃO
e não 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
Helio Nascimento
23/07/2008
Marcos.
Desta vez deu certo. Abaixo mostro-lhes trecho meu código.
Obrigado a todos e... até a próxima !!
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