• 7 odgovora
  • 4.442 pregleda
Memo Kontrola i Scroll Bar 29.10.2005. u 16:00 · pre 255 meseci #1
Pravim nešto nalik Hiper Terminalu. Za prikaz primljenih podataka preko serijskog porta, koristim Memo kontrolu. Postavio sam samo Vertikalni scroll bar. Problem je u tome što kada se kontrola napuni i uključi scroll bar, novi podaci se ne vide jer nikako ne mogu da namestim auto scroll. Ručno skrolovanje nema smisla u ovakvoj aplikaciji.
Pitanje je da li može, i kako da se aktivira autoskrolovanje za Memo kontrolu. Ako ovo nije moguće dobrodošli su i predlozi za bilo kakvu alternativnu kontrolu ili savet.

Hvala svima.
Potpis
2 sxy 4 ma shirt
Re: Memo Kontrola i Scroll Bar 29.10.2005. u 19:45 · pre 255 meseci #2
Kojom metodom punis Memo?
Kako si opisao cini mi se da koristis : Memo1.Lines.Text:=PortText;
Probaj sa Memo1.Lines.Add(PortText) i bice sve ok.
Ako hoces da ti novi segment texta bude uvek na vrhu kontrole onda probaj sa Memo1.Lines.Insert(0,PortText);
Potpis
Marcha
-----------------------------------
Pretpostavka je majka zajeba.
Re: Memo Kontrola i Scroll Bar 29.10.2005. u 21:01 · pre 255 meseci #3
mislim da ni Add ne radi autoscroll (tj. kad napuni vise od visine memo-a tako da se pojavi scrollbar, pa ti onda odvuces scroll na kraj, onda nastavlja sam da scrolluje), a i mene zanima autoscroll......
Potpis
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
Re: Memo Kontrola i Scroll Bar 30.10.2005. u 09:21 · pre 255 meseci #4
Probaj pa ces videti :)
Radi...
Potpis
Marcha
-----------------------------------
Pretpostavka je majka zajeba.
Re: Memo Kontrola i Scroll Bar 30.10.2005. u 12:51 · pre 255 meseci #5
Ne može Add zato što se odnosi na linije, a meni treba da dodajem karakter po karakter, kao što to radi pravi hiper terminal. Inače stvrarno radi autoskroll, ali kažem meni je sekorisan koristim Memo.text := Memo.text + Rx_Karakter;
Sinoć sam par sati isprobavao i ništa nije davalo rezultate. Kada bi mogao nekako da dobijem handle na skrol pa preko njega da ga skrolujem svaki put, ima li neka kontrola koja ima autoskrol? Probao sam i RichEdit i nema ni ona
Potpis
2 sxy 4 ma shirt
Re: Memo Kontrola i Scroll Bar 30.10.2005. u 13:49 · pre 255 meseci #6
Kad pokrenes program uradis prvo jedan Add('') tako da imas jednu praznu liniju. Kad god ti se pojavi nov karakter, a da nije ASCII kod za novi red, dodas ga ovako
Code:
Memo1.Lines[Memo1.Lines.Count - 1] := Memo1.Lines[Memo1.Lines.Count - 1] + Karakter;
, a ako si primio ASCII kod za novi red uradis ponovo Add('');

Provereno je i radi 100%
Potpis
Play Store
Re: Memo Kontrola i Scroll Bar 31.10.2005. u 11:18 · pre 255 meseci #7
Srki brate, šta da ti kažem, hvala. Ovo stvarno radi i to odlično. Još nisam implementirao to za CR ali razmišljam da ga stavim kao opciju jer moj HT planiram za rad sa mikrokontrolerima tj samo za te stvari tako da ima komunikaciju samo sa COM porta.

Hvala vam svima ljudi.
Ako vam treba ovakav terminal, javite pa da ga negde zakačim.
Glavna fora je što istovremeno prikazujer podatke u Hex, ASCII i Dec kodovima, u tri različite kontrole.

Ako ima zainteresovanih možemo da napravimo Open Source HT tako da zajedno napravimo HT sa mnogo dobrih funkcija.
Potpis
2 sxy 4 ma shirt
Re: Memo Kontrola i Scroll Bar 31.10.2005. u 11:28 · pre 255 meseci #8
Zaboravih. Kako da u Delphi-ju napravim novi thread i u njega stavim kod koji čita podatke iz prijemnog buffer-a i puni Memo kontolu?
Znači otprilike ovako
Code:

ThreadProc
var
i: Char;
begin
i:=Char(ReadPort);
Memo1.Lines[Memo1.Lines.Count - 1] := Memo1.Lines[Memo1.Lines.Count - 1] + i;
end;

Sad je fazon što ova funkcija mora da se okida pomoću nekog tajmera ali mora biti u drugoj niti jer trenutno nije i zaglavljuje mi upravljanje programom.
Znači treba da napravim nit koja poziva funkciju na svakih, recimo, 100ms.

Ko zna nek priča!
Potpis
2 sxy 4 ma shirt
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme