Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];

Вниз

Цвет текста в консолном приложении   Найти похожие ветки 

 
Artemka   (2004-10-05 01:30) [0]

Очень терзает меня такой вопрос: как в консольном приложении сменить цвет символов? Без ассемблера не обойтись?


 
GanibalLector ©   (2004-10-05 02:02) [1]

http://www.delphimaster.ru/articles/console.html

Там все есть.И еще,ТУДА надо почаще заходить!


 
П7   (2004-10-05 11:12) [2]

Прочитал статью, только у меня там что-то не всё получается. Кто разобрался - не могли бы привести простенький РАБОТАЮЩИЙ примерчик вывода разноцветных символов? А то что бы не делал, либо какая-то бодяга отображается, либо стандартные цвета... ):


 
Amoeba ©   (2004-10-05 11:22) [3]

Если поискать в сети, то можно даже найти библиотеки для написания консольных приложений эмулирующие ф-ии  и процедуры модуля CRT из TurboPascal.


 
DiamondShark ©   (2004-10-05 11:24) [4]

program Project1;
{$APPTYPE CONSOLE}
uses SysUtils, Windows;

const
 Text: PChar = "Однажды в студёную зимнюю пору..."#13#10;
var
 hOut: THandle;
 Dummy: DWORD;
begin
 hOut := GetStdHandle(STD_OUTPUT_HANDLE);
 WriteConsole(hOut, Text, StrLen(Text), Dummy, nil);
 SetConsoleTextAttribute(hOut, BACKGROUND_BLUE or FOREGROUND_GREEN);
 WriteConsole(hOut, Text, StrLen(Text), Dummy, nil);
 readln;
end.

А вообще-то, справка, раздел Console Functions


 
П7   (2004-10-05 11:27) [5]


> DiamondShark ©   (05.10.04 11:24) [4]

Спасибо. А чё там за трабла с выводим букв? Он, вероятно хочет в DOS"кодировке выводить? Можно ли настроить, чтобы он выводил в Win или изменить кодировку IDE-редактора?


 
DiamondShark ©   (2004-10-05 12:19) [6]


> А чё там за трабла с выводим букв? Он, вероятно хочет в
> DOS"кодировке выводить?

Да.


> Можно ли настроить, чтобы он выводил в Win или изменить
> кодировку IDE-редактора?

Можно, конечно, набирать в OEM кодировке.
Можно перед выводом преобразовывать.


 
П7   (2004-10-05 15:39) [7]

Ясно, единственный нормальный способ решения этой проблемы, который я сейчас вижу, это хранение всей текстовой информации в отдельном файле в DOS кодировке.

У меня возникла проблема с вводом. Взял из статьи исходник функции ввода, у меня олна выглядит вот так:

function P7Console.Read() : string;
var
 a : byte;
 Wr : Cardinal;
 // InpStr объявлена в самом классе, как и hInp
begin
 repeat
   a := 0;
   WaitForSingleObjectEx( hInp, INFINITE, True );
   ReadConsole( hInp, @a, 1, Wr, nil );
   if a > 31 then
     InpStr := InpStr + chr(a);
   if a = 8 then
   begin
     Delete( InpStr, Length( InpStr ), 1 );
     if Length( InpStr ) > 0 then
WriteConsole( hOut, @BckSpSeq, Length(BckSpSeq), Wr, nil );
   end
   else
     WriteConsole( hOut, @a, 1, Wr, nil );
 until a = 13;
 Result := InpStr;
end;

В статье она была явно либо Char либо String, но тут это не важно, хотя я так тоже пробовал.
Проблема в следующем, при нажатии ENTER (#13), если нажития уже производились (InpStr <> ""), возвращается странное значение...
В общем что-то с ReadConsole, но что? Я не знаю...

Опять же, есть ли готовый пример НОРМАЛЬНОЙ работы с ReadConsole, т.к. использовать низкоуровневый ввод я не хочу... ):

Извиняюсь за настырность, заранее благодарен.. (:


 
П7   (2004-10-05 16:08) [8]

Мастера, ну очень нужно, подскажите... (:


 
П7   (2004-10-05 16:17) [9]

И ещё вот, когда выводишь символы с помощью WriteConsole, то он автоматически делает перевод каретки на новую строку. Как выводить символ так, чтобы курсор оставался на месте?


 
panov ©   (2004-10-05 19:02) [10]

>П7   (05.10.04 16:17) [9]
Свои вопросы в других ветках.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.039 c
6-1091760804
DelphiN!
2004-08-06 06:53
2004.10.17
Как перехватить закачку IE?


1-1096716248
roma
2004-10-02 15:24
2004.10.17
Install component


3-1095403065
PhAn
2004-09-17 10:37
2004.10.17
Глюк like или Access?


1-1096754760
delphi-coder
2004-10-03 02:06
2004.10.17
Перевод любого файла в HEX


9-1087138876
Жора
2004-06-13 19:01
2004.10.17
Перемещние по карте





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский