[Delphi] Pionowe wyświetlanie rekordów

0

Właśnie robie komunikator, wszystko ładnie pięknie, ale mam problem z wyświetlaniem rozmowy.
Jak wiadomo, w DBGridzie znalezione rekordy są wyswietlane poziomo, co w kontekscie komunikatorea wygląda tak:

Jacek napisał: bla bla bla

A ma wyglądać tak:

Jacek napisał:
bla bla bla

Moje zapytanie wygląda tak:

procedure TForm2.FormShow(Sender: TObject);
begin
adoquery1.close;
adoquery1.SQL.Clear;
adoquery1.SQL.add('SELECT tekst, nadawca FROM chat_talk WHERE nadawca='''+form1.edit1.text+''' ORDER BY godzina ASC;');
adoquery1.Open;

I działa.

PRÓBUJE wyświetlać znalezione pola tak:

while not ADOQuery1.eof do
begin
Memo1.lines.add(adoquery1.fieldbyname('nadawca').asstring+' napisal(-a):');
Memo1.lines.add(adoquery1.fieldbyname('tekst').asstring);
Memo1.lines.add('');
end;
end;

Ale forma się zawiesza (nie pokazuje się). Ba! Zawiesza się cały program.

Ma ktoś pomysł jak to rozwiązać?

A, i jeszcze jedno:
Jak sprawdzać co 1s, czy ktos do nas napisał ?</delphi>

0

#odswiezam

to dla mnie bardzo wazne; pomoze ktos?

0

nick+' napisał:' +#13 + tekst_rozmowy

0
while not ADOQuery1.eof do
begin
Memo1.lines.add(adoquery1.fieldbyname('nadawca').asstring+' napisal(-a):');
Memo1.lines.add(adoquery1.fieldbyname('tekst').asstring);
Memo1.lines.add('');
//Tutaj trzeba przesunac o jeden rekord do przodu
ADOQuery1.Next;
end;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1