![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отрисовка Tedit на другом Tcanvas
antonn © (2007-02-21 12:56:00)Вот такая задача, есть несколько TEdit (возможно будут Tmemo) на форме. Мне на другой форме нужно отрисовать эти Tedit, причем нужно отрисовать при каждой перерисовки их (т.е. поставили курсор в Edit, на канве другой форме долже н отрисоваться этот edit с курсором). Т.е. сделать так, что бы этот Tedit отображался сразу на двух формах (ну, ессно, работал только на первой:)).
не пойму, честно говоря, откуда начинать?.. Мне кроме отрисовки этого Эдита больше ничего в программе и не нужно (вариант с таймером был убит после 15 минут использования - не нормально это, а как ловить сообщения по перерисовке - не пойму). Может кто сталкивался, покажет? :)
antonn (2007-02-21 19:08:00) [1]ладно, уберем форму другую, чтоб не смущала:)
как на Tbitmap иметь визуальную копию Tmemo? т.е. я выделаю в нем текст, на битмапе как же нарисован tmemo и в нем выделен текст, проматываю вниз - на битмапе промотаный tmemo. Мне не только Tedit нужен, хотелось бы иметь универсальное решение для TwinControl (чтоб рисовать Tedit/Tbutton/Tmemo)
webpauk (2007-02-21 17:24:00) [2]при условии что на другой форме есть те же Tedit, а иначе их еще и создавать.
Короче, путь тебе лежит в API
webpauk (2007-02-21 17:23:00) [3]может SendMessage...
на одной форме (главной) - в коде обработчика события посылаешь сообщение другой форме (GetWindow etc) на те же самые действия (WM_SETTEXT etc)
antonn (2007-02-21 17:14:00) [4]А можно ли компоненту назначить "графический вывод" на другой канвас (типа parent - на чем лежит, а какой нибудь parentDraw - хендл канвы вывода)?
antonn (2007-02-21 17:13:00) [5]а еще через PaintTo() не рисуется курсор в Tmemo... :(
antonn (2007-02-21 17:09:00) [6]Юрий Зотов © (21.02.07 17:03) [8]
нет, речь шла именно о другом канвасе, битмап нигде не отрисовывается (точнее он не отрисовывается на окне, к тому же может понадобится обработка (ну в серпию перекрасить палитру, например)). Вот:)
Юрий Зотов (2007-02-21 17:03:00) [7]> antonn © (21.02.07 15:29) [3]
Речь шла о форме... ну да ладно, пусть будет битмап.
Битмап этот, в конечном счете, отрисован на каком-то окне. Вот оно, это окно и может быть родителем для нового Edit'а.
antonn (2007-02-21 15:46:00) [8]Или может кто видел в "скинных" компанентах подобный код? (ну в тех, что открыты кодом. Вообще, есть такие?)
antonn (2007-02-21 15:44:00) [9]Джо © (21.02.07 15:35) [5]
а смена позиции курсора? а выделение части текста в нем?
К тому же я хотел и Tbutton так же отрисовывать на битмап...
Джо (2007-02-21 15:35:00) [10]> [3] antonn © (21.02.07 15:29)
> Джо © (21.02.07 15:18) [2]
> да это я знаю, я не пойму, при каких событиях его нужно
> использовать. Т.е. как отловить от Tedit, что он перерисовался?
Ну, отрисовывается он, по большей части, при изменении своего содержимого (текста). Вот и используй OnChange.
antonn (2007-02-21 15:32:00) [11]Да же еще вот так. Есть функция UpdateLayeredWindow(), использует Tbitmap, который "показывает" вместо формы. Ессно никаких контролов не видно, если их не рисовать самому на этом битмапе. Вот что то типа этого мне и нужно сделать - отрисовать TEdit на другом канвасе (ну и еще нужно с другими координатами относительно самого канваса, но это мелочи).
antonn (2007-02-21 15:29:00) [12]Джо © (21.02.07 15:18) [2]
да это я знаю, я не пойму, при каких событиях его нужно использовать. Т.е. как отловить от Tedit, что он перерисовался?
Юрий Зотов © (21.02.07 15:06) [1]
как на Tbitmap создать Tedit? вот так следовало сразу сформулировать. Мне вообще нужно на другой канвас вывести, ну да пускай будет TBitmap;
Джо (2007-02-21 15:18:00) [13]Edit1.PaintTo
Юрий Зотов (2007-02-21 15:06:00) [14]А зачем рисовать? Гораздо проще создавать.