Fórum Como Inserir dados Campo Memo sempre no inicio #361483

23/07/2008

0

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.


Helio Nascimento

Helio Nascimento

Responder

Posts

23/07/2008

Marco Salles

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;



Responder

Gostei + 0

23/07/2008

Helio Nascimento

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


Responder

Gostei + 0

23/07/2008

Paulo

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


Responder

Gostei + 0

23/07/2008

Helio Nascimento

Paulo. É isto mesmo que desejo.

Marcos. Testei. Não funcionou, está indo para o final como o habitual.


Responder

Gostei + 0

23/07/2008

Helio Nascimento

Pessoal. Fiz o título errado. Não é campo Memo, e sim Campo DBMemo.
Desculpa-me!


Responder

Gostei + 0

23/07/2008

Brunodsr

Use a procedure MOVE do TString.

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


Responder

Gostei + 0

23/07/2008

Marco Salles

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

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


Responder

Gostei + 0

24/07/2008

Helio Nascimento

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



Responder

Gostei + 0

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

Aceitar