Jak udělat Textcolor? – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Jak udělat Textcolor? – Pascal – Fórum – Programujte.comJak udělat Textcolor? – Pascal – Fórum – Programujte.com

 

Mircosoft+1
Věrný člen
24. 5. 2007   #1
-
0
-

Ahoj lidi,
zajímalo by mě, jak vlastními prostředky napsat obdobu procedury Textcolor z jednotky CRT - prostě něco, co mi umožní nastavit barvu písma, kterou pak bude na obrazovku psát standardní Write a Writeln. Vím, jak psát barevně přímým zápisem do VRAM, ale to se mi teď zrovna nehodí, potřebuju Writeln.
Hledal jsem všude možně a nic. Dělám v TP 7.

Nahlásit jako SPAM
IP: ...–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Laaca0
Stálý člen
25. 5. 2007   #2
-
0
-

Použijou proměnnou TextAttr. (z jednotky Crt)
Např. TextAttr:=2; znamená černý text na zeleném pozadí. TextAttr:=128 je šedý(?) text na černém pozadí. Je to každopádně popsáno v nápovědě TP.
Další možnost je použít ANSI kódy v případě, že má uživatel zaveden ovladač ANSI.SYS

Nahlásit jako SPAM
IP: ...–
DOS-u-akbar
Mircosoft+1
Věrný člen
25. 5. 2007   #3
-
0
-

Textattr znam. Myslel jsem vlastnimi prostredky, tj. bez CRT. Ta to preci taky musi nejak delat, ne? A urcite bez ANSI, protoze jeji barevny text funguje kdekoli.

Nahlásit jako SPAM
IP: ...–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Laaca0
Stálý člen
25. 5. 2007   #4
-
0
-

No, vlastně taky můžeš použít příslušné funkce BIOSu (přes INT 10h), to by mělo výhodu, že by automaticky skroloval text.
Asi bych se fakt klonil k tomu BIOSu....

Nahlásit jako SPAM
IP: ...–
DOS-u-akbar
Mircosoft+1
Věrný člen
26. 5. 2007   #5
-
0
-

To jako napsat vlastní variantu Writeln, která by psal pomocí služeb BIOSu? No jo, ale to bych přišel o ty báječné nekonzistentní parametry, které writeln baští. Jestli jsi myslel přes nějakou službu BIOSu nastavit atribut a pak psát writeln, tak takovou službu právě hledám, ale nenacházím (AThelp, Sysman). Ale jít to musí - když nastavím barvu a ukončím program, píšu v DOSu pořád tou barvou, takže si to musí pamatovat hadrware a ne jednotka CRT. Jenom zjistit, co to je za podslužbu int $10...

Nahlásit jako SPAM
IP: ...–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Laaca0
Stálý člen
26. 5. 2007   #6
-
0
-

Další co mě napadá, je využít skutečnosti, že DOS píše jenom na sudé adresy - jinými slovy, zapisuje jenom znaky, nikoliv atributy.
Proto je možné, "předpřípravit" si liché adresy obrazovky (barevné atributy), aby když přes to DOS něco napíše na sudé adresy, tak aby to vytvořilo barevný text.
Nejsem si ale jistý, jestli by to fungovalo i s ovladačem ANSI.SYS

Není mi ale jasné, proč nechceš použít jednotku Crt.

Nahlásit jako SPAM
IP: ...–
DOS-u-akbar
Mircosoft+1
Věrný člen
27. 5. 2007   #7
-
0
-

Prostě proto, že když to zvládne CRT, tak my přece taky :-). A taky se chci definitivně vyhnout možnosti, že si pak někdy někdo zkompiluje můj zdroják se svojí nepatchlou CRT a pak mi bude nadávat, že ten program umírá na error 200.

Zkusím disassembler. Porovnám prázdný program s programem obsahujícím jeden Textcolor a třeba z toho půjde vykoukat, jak je udělaný.

Nahlásit jako SPAM
IP: ...–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Laaca0
Stálý člen
27. 5. 2007   #8
-
0
-

Ještě jsem se na to díval a teď si jsem jistý: To, že někdy i po ukončení programu píšeš jinými barvami než standardní bílou na černé, je způsobené efektem, o kterém jsem psal v minulém příspěvku. Disassembler netřeba, jinak to být nemůže. Akorát je potřeba prozkoušet, jestli DOS vůbec nešahá na atributy, nebo jestli na lichý adresy v některých případech nává atribut předešlého znaku a jak se to celé chová při rolování obrazovky.

Nahlásit jako SPAM
IP: ...–
DOS-u-akbar
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

Podobná vlákna

Jak to udělat — založil Dave

Jak udělat hodiny — založil frontm4n

Jak udělat gradient? — založil ingiraxo

Jak to lze udělat — založil Radka

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý