Окно вывода в LAZARUS

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Окно вывода в LAZARUS

Сообщение AlexGordon » 07.12.2010 21:05:59

Здравствуйте. У меня возник следующий вопрос.
Вот к примеру, когда в лазарусе идет компиляция проекта, то в окне вывода пишутся все сообщения компилятора.
Вот я написал, допустим, свою среду, которая использует консольный компилятор. Как сделать так, чтобы все сообщения из консольной программы так же направлялись в окно вывода? То есть какую форму надо создать, какие объекты разместить, какие свойства прописать? Если кто-нибудь с этим работал, то помогите пожалуйста. Заранее спасибо.
AlexGordon
новенький
 
Сообщения: 28
Зарегистрирован: 07.12.2010 21:02:15

Re: Окно вывода в LAZARUS

Сообщение alexs » 07.12.2010 23:14:13

TAsincProcess
Смотри его.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Окно вывода в LAZARUS

Сообщение AlexGordon » 08.12.2010 19:56:12

А вы не могли бы подсказать, какая команда за что там отвечает?
AlexGordon
новенький
 
Сообщения: 28
Зарегистрирован: 07.12.2010 21:02:15

Re: Окно вывода в LAZARUS

Сообщение Odyssey » 08.12.2010 23:01:10

http://wiki.lazarus.freepascal.org/Exec ... 0.B5.D1.80

Это для простого TProcess, для TAsyncProcess, возможно, придётся адаптировать.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Окно вывода в LAZARUS

Сообщение AlexGordon » 09.12.2010 17:21:57

Odyssey, спасибо вам огромное!
Но у меня еще один вопрос. У меня есть объект SynMemo, и при загрузке в него текста из файла с русским текстом русский текст не отображается. Как это поправить, не пересохраняя текстовый файл?
AlexGordon
новенький
 
Сообщения: 28
Зарегистрирован: 07.12.2010 21:02:15

Re: Окно вывода в LAZARUS

Сообщение Odyssey » 09.12.2010 17:28:25

А в какой кодировке текстовый файл?
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Окно вывода в LAZARUS

Сообщение AlexGordon » 09.12.2010 17:33:12

1251 ANSI Кириллица
AlexGordon
новенький
 
Сообщения: 28
Зарегистрирован: 07.12.2010 21:02:15

Re: Окно вывода в LAZARUS

Сообщение Odyssey » 09.12.2010 21:23:55

С SynMemo не работал, но подозреваю, что ему требуется utf-8. Можно перед записью в SynMemo прочитать файл в буферную строку или StringList и перекодировать, используя модуль LConvEncoding, функцию CP1251ToUTF8.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Окно вывода в LAZARUS

Сообщение AlexGordon » 09.12.2010 22:27:16

А можно чуть-чуть поподробнее?
AlexGordon
новенький
 
Сообщения: 28
Зарегистрирован: 07.12.2010 21:02:15

Re: Окно вывода в LAZARUS

Сообщение dunin » 09.12.2010 23:29:07

Odyssey писал(а):С SynMemo не работал, но подозреваю...

Аналогично
AlexGordon писал(а):А можно чуть-чуть поподробнее?

Код: Выделить всё
var List: tStringList
i: integer;
...
List.loadfromfile(CP1251ToUTF8('файла с русским текстом.txt'));
for i:=0 to List.Count-1 do
Memo1.Lines.add(CP1251ToUTF8(List.Strings[i]));

как-то так... не проверял.

Поищи по форуму. Вопрос про кодировки ну ооооочень часто встречается. :|
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: Окно вывода в LAZARUS

Сообщение Odyssey » 10.12.2010 00:27:21

AlexGordon писал(а):А можно чуть-чуть поподробнее?

Например:
Код: Выделить всё
uses ... , LConvEncoding;
...
var Buffer: TStringList;
...
Buffer := TStringList.Create;
Buffer.LoadFromFile('file.txt');
Memo1.Text := CP1251ToUTF8(Buffer.Text);
FreeAndNil(Buffer);

Только с TStringList будут накладные расходы на разбивку/склеивание значений. Лучший способ (загрузка строки из файла напрямую) есть например тут.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Окно вывода в LAZARUS

Сообщение dunin » 10.12.2010 09:46:36

Odyssey, проблем с концевыми символами строки не будет? Хотя если под Виндусом, то, скорее всего, без разницы.

Добавлено спустя 1 минуту 54 секунды:
Не, гоню. tStringList уже набор строк с правильным "окончанием". Полюбому все нормально. :)
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37

Рейтинг@Mail.ru