Dělám na textovém editoru a mám následující problém: Při přepisování obrazovky, když je poslední řádek plný znaků, tak po napsání posledního znaku kurzor automaticky skočí na další řádek a čeká na další pokyny (tím pádem první řádek se mi smaže). Používám to třeba při zmáčknutí šipky nahoru: vrátím se o určitý počet řádků nahoru, a pak je vypíšu, no a ten první mi pak zmizí a zůstane viset kurzor na prázdném spodním řádku. Je vůbec možné, aby se vypsal znak a neposunul se kurzor (nebo aspoň se neposunul na další řádek)?
Fórum › Pascal
Vypsání znaku bez posunu kurzoru
![](img/forum_vlakno_help_vyreseno.png)
To JumBo: No chcelo by to nejaké informácie navyše:
- hlavne v čom to programuješ? V Turbo Pascale alebo v Delphi? A akú komponentu k tomu využívaš?
Samozřejmě to možné je, dá se to řešit více způsoby a nejvhodnější se jeví náhrada procedury WRITE pomocí pseudopolí MEM. Mírnou nevýhodou je, že když použiješ následující postup, tak to můžeš použít jenom v Turbo pascalu. Pro jiné pascaly a hlavně jiné platformy (linux, OS/2) by se to muselo upravovat.
uses crt;
const SIRKA_OBRAZOVKY = 80;
Procedure XWrite(x,y:byte;s:string);
var a,w:word;
begin
w:=((y-1)*SIRKA_OBRAZOVKY+(x-1))*2;
for a:=1 to Length(s) do
begin
mem[SegB800:w]:=byte(s[a]);
mem[SegB800:w+1]:=textattr;
w:=w+2;
end;
end;
var a,b:byte;
begin
clrscr;
TextColor(7);
TextBackground(0);
for a:=1 to 80 do xwrite(a,1,'A');
for b:=2 to 25 do
for a:=1 to 80 do xwrite(a,b,'B');
readln;
end.
Vyzkouším, ale přišel jsem na jednodušší způsob: Mám nadefinované okno, do kterého se mi vypisují ty znaky a vpravo od toho okna mám rámeček na jeden znak, takže pro ten jeden konkrétní případ si zvětším o 1 znak šířku toho okna, vypíšu znak a vrátím se na původní okno (je to sice taková nic moc ojebávka, ale účel splňuje).
Každopádně díky za tvoje řešení, jsem rád, že jsem se něco přiučil.
![](img/forum_nove_psp_new.png)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
![](/img/smile/1.gif)
![](/img/smile/2.gif)
![](/img/smile/3.gif)
![](/img/smile/4.gif)
![](/img/smile/5.gif)
![](/img/smile/6.gif)
![](/img/smile/7.gif)
![](/img/smile/8.gif)
![](/img/smile/9.gif)
![](/img/smile/10.gif)
![](/img/smile/11.gif)
![](/img/smile/12.gif)
![](/img/smile/13.gif)
![](/img/smile/14.gif)
![](/img/smile/15.gif)
![](/img/smile/16.gif)
![](/img/smile/17.gif)
![](/img/smile/18.gif)
![](/img/smile/19.gif)
![](/img/smile/20.gif)
![](/img/smile/21.gif)
![](/img/smile/22.gif)
![](/img/smile/23.gif)
![](/img/smile/24.gif)
![](/img/smile/25.gif)
![](/img/smile/26.gif)
![](/img/smile/27.gif)
![](/img/smile/28.gif)
![](/img/smile/29.gif)
![](/img/smile/30.gif)
![](/img/smile/31.gif)
![](/img/smile/32.gif)
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Automatické kliknutí bez přesunutí kurzoru? — založil permutace
Smazání posledního znaku v Edit, posunutí kurzoru nakonec řádku — založil BretaS
Vstup znaku bez ENTERu — založil eidam1995
Čtení znaku bez enteru — založil Thadeus
Broblikávání obrázků při posunu — založil Navara
Moderátoři diskuze