![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]()
нужно перенести каретку вниз на новую строку
я использовал Код:
Код:
выводил текст таким образом: Код:
|
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Перенести каретку в компоненте типа Мемо?
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]()
ну я просто всё в одной строке пишу и вывожу с помощью DrawText. На белом фоне вывожу.
Мне просто надо чтобы строки одна под одной были. Ну, можно и в Memo. |
![]() |
![]() |
![]() |
#4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Так стоп!! Всетки, вывод в специализированный контрол или собственная отрисовка?
Ибо для DrawText есть ключ переноса строки DT_WORDBREAK : Код:
I'm learning to live...
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]()
сейчас начал делать нормальное окно с EDIT-ом и у меня вообще какая-то непонятка со стеком пошла.
Окно не создаётся, так как CreateWindowEx (для главного окна) выдаёт ошибку: ERROR_CANNOT_FIND_WND_CLASS Я посмотрел в отладчик, там вообще не то что надо в стек помещается!!!! А как это произошло непонятно! Подскажите, пожалуйста! вот здесь сам файл. Эта функция вызывается на строке 431 Это асм-файл http://zalil.ru/31718892 вот скрин с отладчика как видно, в поля __in_opt LPCTSTR lpClassName, __in_opt LPCTSTR lpWindowName, совсем не то что надо помещается Последний раз редактировалось Stilet; 18.09.2011 в 19:38. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]()
КАЖЕТСЯ Я ПОНЯЛ ЧТО НЕ ТАК. просто одна переменная в .data затёрла другую.
В смысле одна строка затёрла другую. Вот только почему это произошло и как надо было этого избежать я не знаю. Подскажите, пожалуйста. точнее ка избежать пришло на ум: название класса пихнуть в верх, а ту переменную, размер которой будет увеличиваться в самый низ. Только одно непонятно. Или это кривой вариант или надо было предполагаемую строку объявлять в виде массива из всех нулей. И в соответствии с этим имеется ещё один важный вопрос. Почему подобных ситуаций не происходит в языках высокого уровня? Последний раз редактировалось Stilet; 18.09.2011 в 21:00. |
![]() |
![]() |
![]() |
#7 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Цитата:
Что касается секции данных - обычно ее очищает либо загрузчик (если ее размер указан более чем в файле есть) либо просто сам компилятор в файле дорисовываает нули к секции до 512Кбайт для четности. Ты просто это не учел. Еще раз с акцентирую - не храни динамические структуры в секции с константами.
I'm learning to live...
|
||
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]()
если тебе не трудно, пожскажи, пожалуйста на примере. Просто я с динамическим выделением памяти ещё не работал и немножко не понял о чём речь.
Например, имеется строка string___STROKA_1 DB "Это строка",0 и в последствии каких-то операций надо выполнять конкатенацию строка, напрнимер к string___STROKA_1 приклеивать значение в строке STRING_TEMP____ Как бы ты рекомендовал это сделать? |
![]() |
![]() |
![]() |
#9 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
![]() Так уж получилось что пришлось забить на свой проект, где это должно было воплотиться в жизнь. Однако могу сказать что в мыслях я представлял решение на уровне VirtualAlloc, и переносом старой строки через rep movs в нововыделенное местечко, плюс дописыванием к этому местечку, в конец перенесенной строки новую строку. Так собственно стараются поступать все компиляторы (нативные по крайне мере), а старая строка (имеется ввиду если на нее был указатель) освобождается через VirtualFree, ну а если эта строка была в константах, в секции данных то просто ничего не делать. Это только моя стратегия, в код я ее не воплощал.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]() Код:
и далее уже с этой строкой работать? |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Позиция каретки в пикселях(TMemo) | Gregor | Компоненты Delphi | 4 | 21.12.2010 18:11 |
Переод каретки в указанное место в RE | MyLastHit | Общие вопросы Delphi | 8 | 08.08.2010 20:49 |
Координаты каретки | miatu | Microsoft Office Word | 11 | 28.08.2009 19:38 |
Создание второй каретки мыши | andreyasu | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 02.07.2009 16:01 |
Позиционирование каретки | Spice | Win Api | 1 | 25.03.2009 04:51 |