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