На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> Работа с TMemo
    Как поместить картинку в компонент Memo (я пишу чат для локалки и хочу использовать смайлики)
      Ну так знай, в TMemo у тебя не получится, он такое просто не поддерживает.
        я вот тож подумал, а почему не воспользоваться RichEdit и не сделать его readonly ?
          Да, вообщето не получиться.
          Вопрос, почему M$ не стала поддерживать OWNERDRAW у EDITBOX? (Для тех кто не знает, Memo - это большой EDITBOX). Т.е. вообще странно, почему можно рисовать в COMBOBOX, LISTBOX, LISTVIEW, BUTTON и даже STATIC, а в EDITBOX - нет.
          Так что дял такой задачи придется писать свой класс, самому обрабатывать клаву, расставялть строки по местам и т.д. и т.п.
          А чем тут может помочь RICHEDIT, я не понял.
            Ну почему же не получится ?
            У любого видимого компонента, в том числе и TMemo есть Canvas, а на ней по определению можно чертить, рисовать, класть битмапы,писать буквами итд.
            Другое дело какой компонент взять, чтобы геморроя было поменьше...
            У ТМемо, я так понимаю, только один геморрой будет - как устроить скроллинг иконок вместе с текстом... Ну или при редактировании текста как отрабатывать их перемещение...
              С Canvas ты загнул определенно: как ты вообще это собираешся реализовыать. Вот есть у тебя текст, а тебе надо посредине вставить картинку. Вопрос, как ты этот текст раздвинешь? Веть он рисуется вне зависимости от тебя. Да конечно, рисвоть в канве можно, но с текстом ты ничего не сделаешь. Можно конечно стерать все по OnPaint, и рисовать текст еще раз самостоятельно (с картинками), но это уже точно гемморой. Да и систему загрузит.
                Ну, к примеру, можно сделать так:
                Есть некое определенное количество смайликов (иконок). Назначаем каждой иконке некий нечитабельный код символа, который точно не должен присутствовать в тексте, ну там $01,$02,$03... Создаем предка от TMemo и подправляем вывод текста на канвас (ну или метод в предке который этим занимается), с тем условием, что если встречается такой символ, то надо не букву вывести а иконку вставить и сдвинуть текущую позицию на ширину иконки...
                Тогда все операции по перерисовке и скролингу он будет делать сам без посторонней помощи...
                Вариант 2 , правда не пройдет с разноцветными иконками:
                Создаем динамически шрифт, в котором содержатся эти самые смайлики или переключаем шрифт в момент вывода на экран, если встретился такой символ...(к сожалению TMemo только с одним шрифтом одновременно работать умеет) Единственное что удастся раскрасить - это символ целиком. Ну это уже по желанию...
                  Вот об этом я и говорил. Как ты собираешся раздвигать текст, ели он рисуется без твоего разумения (его рисует Windows), и ни какой предок TMemo этим не занимается.
                    Блин... Ну и фиг с ним, нехай рисует, мне что от этого... Что я ему дам и где скажу - там и нарисует...
                    Или виндовс сам знает что писать и где?
                    Позиция и текст хранятся в КОМПОНЕНТЕ !
                    Скармливать виндам текст по кускам и где надо свою процедуру запускать с перерисовкой иконок и ок..
                    Что опять не прав ?
                      Я об этом уже говорил, что так можно делать, но вопервых, придется сначала все стирать, а потом рисовать самостоятельно, а это сильно гемморойно и не рационально.
                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,0291 ]   [ 16 queries used ]   [ Generated: 2.05.24, 04:16 GMT ]