Окно вывода в LAZARUS
Модератор: Модераторы
-
AlexGordon
- новенький
- Сообщения: 28
- Зарегистрирован: 07.12.2010 20:02:15
Окно вывода в LAZARUS
Здравствуйте. У меня возник следующий вопрос.
Вот к примеру, когда в лазарусе идет компиляция проекта, то в окне вывода пишутся все сообщения компилятора.
Вот я написал, допустим, свою среду, которая использует консольный компилятор. Как сделать так, чтобы все сообщения из консольной программы так же направлялись в окно вывода? То есть какую форму надо создать, какие объекты разместить, какие свойства прописать? Если кто-нибудь с этим работал, то помогите пожалуйста. Заранее спасибо.
Вот к примеру, когда в лазарусе идет компиляция проекта, то в окне вывода пишутся все сообщения компилятора.
Вот я написал, допустим, свою среду, которая использует консольный компилятор. Как сделать так, чтобы все сообщения из консольной программы так же направлялись в окно вывода? То есть какую форму надо создать, какие объекты разместить, какие свойства прописать? Если кто-нибудь с этим работал, то помогите пожалуйста. Заранее спасибо.
-
AlexGordon
- новенький
- Сообщения: 28
- Зарегистрирован: 07.12.2010 20:02:15
А вы не могли бы подсказать, какая команда за что там отвечает?
http://wiki.lazarus.freepascal.org/Exec ... 0.B5.D1.80
Это для простого TProcess, для TAsyncProcess, возможно, придётся адаптировать.
Это для простого TProcess, для TAsyncProcess, возможно, придётся адаптировать.
-
AlexGordon
- новенький
- Сообщения: 28
- Зарегистрирован: 07.12.2010 20:02:15
Odyssey, спасибо вам огромное!
Но у меня еще один вопрос. У меня есть объект SynMemo, и при загрузке в него текста из файла с русским текстом русский текст не отображается. Как это поправить, не пересохраняя текстовый файл?
Но у меня еще один вопрос. У меня есть объект SynMemo, и при загрузке в него текста из файла с русским текстом русский текст не отображается. Как это поправить, не пересохраняя текстовый файл?
А в какой кодировке текстовый файл?
-
AlexGordon
- новенький
- Сообщения: 28
- Зарегистрирован: 07.12.2010 20:02:15
1251 ANSI Кириллица
С SynMemo не работал, но подозреваю, что ему требуется utf-8. Можно перед записью в SynMemo прочитать файл в буферную строку или StringList и перекодировать, используя модуль LConvEncoding, функцию CP1251ToUTF8.
-
AlexGordon
- новенький
- Сообщения: 28
- Зарегистрирован: 07.12.2010 20:02:15
А можно чуть-чуть поподробнее?
- dunin
- энтузиаст
- Сообщения: 634
- Зарегистрирован: 02.05.2007 13:18:11
- Откуда: Тољя††и
- Контактная информация:
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]));как-то так... не проверял.
Поищи по форуму. Вопрос про кодировки ну ооооочень часто встречается.
AlexGordon писал(а):А можно чуть-чуть поподробнее?
Например:
Код: Выделить всё
uses ... , LConvEncoding;
...
var Buffer: TStringList;
...
Buffer := TStringList.Create;
Buffer.LoadFromFile('file.txt');
Memo1.Text := CP1251ToUTF8(Buffer.Text);
FreeAndNil(Buffer);Только с TStringList будут накладные расходы на разбивку/склеивание значений. Лучший способ (загрузка строки из файла напрямую) есть например тут.
- dunin
- энтузиаст
- Сообщения: 634
- Зарегистрирован: 02.05.2007 13:18:11
- Откуда: Тољя††и
- Контактная информация:
Odyssey, проблем с концевыми символами строки не будет? Хотя если под Виндусом, то, скорее всего, без разницы.
Добавлено спустя 1 минуту 54 секунды:
Не, гоню. tStringList уже набор строк с правильным "окончанием". Полюбому все нормально.
Добавлено спустя 1 минуту 54 секунды:
Не, гоню. tStringList уже набор строк с правильным "окончанием". Полюбому все нормально.
