|
|
Konzol alkalmazások készítése Delphi-vel
Konzol alkalmazások 1. rész
|
|
Példaprogram letöltése
3582 bájt
|
Új cikksorozatunkban a Delphi-vel készíthető konzol alkalmazások lehetőségeit vesszük sorra. Így például megnézzük, miként használhatunk színes karaktereket a konzol ablakban, hogyan lehet felhasználói inputot kezelni, adatokat írni az ablakra, vagy beállítani a magyar kódlapot, hogy minden ékezetes betű rendesen jelenjen meg. Megvizsgáljuk azt is, hogy miként használhatunk egy konzol ablakhoz több buffert, ennek előnye az lesz, hogy bármelyik buffert aktivizálhatjuk úgy, hogy a többin lévő adat nem veszik el, így azokat nem kell újra kiírni csak átváltani az egyikről a másikra.
Az első részben megnézzük, miként tudunk adatot írni a konzol ablakba, hogyan válthatunk kódlapot és az ablak fejléc szövegét miként határozhatjuk meg.
Konzol alkalmazás készítéséhez válasszuk a File - New menüpontot, majd a Console Application elemet.
Az ablakba történő írásra többféle lehetőség is nyílik. Az egyikhez szükségünk lesz egy azonosítóra (THandle), melyet a GetStdHandle függvénnyel kérhetünk le. Paraméterként a STD_OUTPUT_HANDLE konstanst használjuk, hogy megkapjuk az alapértelmezett kimeneti csatorna azonosítóját.
begin
FI:=0;
FHandle:=GetStdHandle(STD_OUTPUT_HANDLE);
Kódlap váltásra a SetConsoleOutputCP függvény alkalmas. Paraméterként a kívánt kódlap számát kell megadnunk. Ettől kezdve a kimeneti adatok a megadott kódlapon lesznek értelmezve. A Windows regisztrációs adatbázisának HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage címéről megtudhatjuk, hogy mely kódlapok választására nyílik lehetőségünk az adott rendszeren.
A SetConsoleTitle függvény paraméterében megadott sztring lesz az ablak fejléc szövege.
SetConsoleTitle('Software Online (http://www.SoftwareOnline.hu)');
while true do begin
s:='ű '+IntToStr(FI);
Az alapértelmezett kimenetre küldhetünk adatot a Write, illetve a WriteLn függvényekkel. Az első csak a paraméterként megadott sztringet jeleníti meg, míg a második egy új sort is kezd.
Egy másik kiírási lehetőséget valósítunk meg, a saját WriteLn2 függvényünkben.
WriteLn2(s);
inc(FI);
Sleep(250);
end;
end.
A WriteLn2-ben a WriteConsole függvényt használjuk az adat kiírásához. Itt első paraméterben a már lekérdezett azonosítót kell megadnunk, mellyel azt tudatjuk a függvénnyel, hogy hova szeretnénk írni. A későbbiekben ennek még nagy hasznát vesszük. A második paraméterben adhatjuk meg a kiírandó sztringet, míg a harmadikban annak hosszát. A negyedik paraméterben kapjuk vissza, hogy ténylegesen hány karakter lett kiírva az átadott sztringből. Azt utolsó paraméter jelenleg nem használt.
procedure WriteLn2(s: string);
var
count: DWORD;
begin
s:=s+#13#10;
WriteConsole(FHandle, PChar(s), Length(s), count, nil);
end;
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
Delphi Software Offline 2001 évkönyv 611. oldal
Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!
|