Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Вниз

Создание разделителя между RichEdit ами.   Найти похожие ветки 

 
Fenix ©   (2006-03-14 15:29) [0]

Доброго времени суток.
Подскажите плз как можзно создать разделитель между двумя RichEdit"ами, притом что у них Align=Client, и они создаються динамически. Мне нужно, что бы можно было перетаскиванием менять им размеры (перетаскивание вертикально). Что то вроде как в Проводнике (между деревом каталогов и рабочим окном), но мне надо горизонтально так сделать.


 
Джо ©   (2006-03-14 15:31) [1]

TSplitter?


 
Fenix ©   (2006-03-14 15:37) [2]

Да, но как мне привязать их?

вот код создания моих RichEdit
HistoriChat[PageControl1.PageCount-1]:=Trichedit.Create(self);
HistoriChat[PageControl1.PageCount-1].Parent := Page[PageControl1.PageCount-1];
HistoriChat[PageControl1.PageCount-1].Align:=alClient;
mess[PageControl1.PageCount-1]:=Trichedit.Create(self);
mess[PageControl1.PageCount-1].Parent := Page[PageControl1.PageCount-1];
mess[PageControl1.PageCount-1].Align:=alClient;

Как мне прописать туда TSplitter?

И еще вопрос. Т.к. у меня указан Page[PageControl1.PageCount-1] в виде предка, то если уничтожу его, то и все что на нем находиться тоже освободит память?


 
clickmaker ©   (2006-03-14 15:48) [3]


> И еще вопрос. Т.к. у меня указан Page[PageControl1.PageCount-
> 1] в виде предка, то если уничтожу его, то и все что на
> нем находиться тоже освободит память?

если в качестве Owner в конструктор передашь, то освободит. А Parent - не владелец, а просто окно-контейнер


> Да, но как мне привязать их?

один эдит alTop, другой alClient, например. Сплиттер - alTop


 
Fenix ©   (2006-03-14 16:14) [4]


> если в качестве Owner в конструктор передашь, то освободит.
>  А Parent - не владелец, а просто окно-контейнер

А как мне лучше сдалать???
используя Owner? или все по отдельности освобождать?
вот как щас у меня:

HistoriChat[PageControl1.PageCount-1].Free;
mess[PageControl1.PageCount-1].Free;
Page[PageControl1.PageCount-1].Free;
Splitter[PageControl1.PageCount-1].Free;

со Splitter все работает СПС :)


 
clickmaker ©   (2006-03-14 16:48) [5]


> А как мне лучше сдалать???

Принудительный Free обычно делают для недолгоживущих объектов. Если у тебя контролы используются вплоть до выхода из проги, то смысла нет, лучше через Owner


 
Fenix ©   (2006-03-14 16:54) [6]

Я разрабатываю клиент ICQ, и у меня это создаються окна чатов, на PAgeControl и пользователь может в любое время закрыть чат... Что посоветуете? просто если через Owner, то по идее меньше кода будет, но что больше подходит для моей задачи?


 
clickmaker ©   (2006-03-14 17:03) [7]


> Fenix ©   (14.03.06 16:54) [6]

если закрытие чата означает удаление PageControl, то проще через Owner.


 
Fenix ©   (2006-03-14 17:10) [8]

нет закрытие чата означает удаление одной страницы из PageControl. Просто у меня на страницах открываються разные контакты....


 
clickmaker ©   (2006-03-14 17:12) [9]


> Fenix ©   (14.03.06 17:10) [8]

ну сделай владельцем не PageControl, а TabSheet. Это даже логичней


 
Fenix ©   (2006-03-14 17:18) [10]

Еще возникла проблемка... я сделал что бы отправленные сообщения были красного цвета, а принятые синего, но когда я меняю шрифт у RichEdit"а, то у меня сбиваются все цвета.... Посоветуйте как можно это избежать....


 
Fenix ©   (2006-03-14 17:21) [11]

Мне пишеться что св-во Owner предназначено только для чтения...... может я чтото не так делаю... вот код:

Page[PageControl1.PageCount]:=TTabSheet.Create(Self);
Page[PageControl1.PageCount].Caption:=ActiveUIN;
Page[PageControl1.PageCount].PageControl := PageControl1;
HistoriChat[PageControl1.PageCount-1]:=Trichedit.Create(self);
HistoriChat[PageControl1.PageCount-1].Parent := Page[PageControl1.PageCount-1];
HistoriChat[PageControl1.PageCount-1].Align:=alClient;
HistoriChat[PageControl1.PageCount-1].owner:=Page[PageControl1.PageCount-1];


 
clickmaker ©   (2006-03-14 17:38) [12]


> Fenix ©   (14.03.06 17:21) [11]

внимательней читай clickmaker ©   (14.03.06 15:48) [3]


 
Fenix ©   (2006-03-14 17:44) [13]

с owner разобрался :)
теперь остался вопрос про сохранение форматированного текста....
Fenix ©   (14.03.06 17:18) [10]


 
clickmaker ©   (2006-03-14 17:54) [14]


> Fenix ©   (14.03.06 17:44) [13]

SelStart, SelLength
SelAttributes.Color


 
Fenix ©   (2006-03-14 18:02) [15]

не я так делаю..... проблема как я сказал заключаеться в том, что после изменения размера шрифта, у меня все дывеления сбиваються (заного прорисовывать как то неохото...) и у меня идет прорисовка при добавлении нового сообщения. Просто если будет много текста в RichEdit, то его прорисвка может занять много времени.... Мне интересно как можно сохранить форматирование, если я просто пишу:
HistoriChat[PageControl1.ActivePageIndex].Font.Size:=FontDialog1.Font.Size;
HistoriChat[PageControl1.ActivePageIndex].Font.FontAdapter:=FontDialog1.Font.Fon tAdapter;

По идее меняеться только размер и тип шрифта, но почему сбиваеться цветовая раскраска непонятно :(


 
clickmaker ©   (2006-03-14 18:22) [16]


> Fenix ©   (14.03.06 18:02) [15]

ну так работает рич эдит... нельзя в лоб ему менять шрифт. Только через SelAttributes. Тем более, что "если будет много текста в RichEdit, то его прорисвка может занять много времени".


 
Fenix ©   (2006-03-14 18:42) [17]

все я понял алгоритм увеличения шрифта и изменение его стиля. Еще меня интересует как снять выделение?
Richedit1.SlectAll;//Это что бы выделить весь текст
Richedtt1.SelLength:=0;// что бы снять выделение.

Но потом у меня он не окрашивает следующую строку. я пишу:
Richedit1.SelAttributes.Color:=clBlue;
Richedit1.Lines.Add("Сообщение от  " +Form1.Caption);
Richedit1.SelAttributes.Color:=clBlue;
Richedit1.Lines.Add(Message);
Вторую строку он окрашивает в синий, а первую нет(



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.05 c
11-1122728443
jumpingjack
2005-07-30 17:00
2006.03.26
Не компилируется KOL проект.


2-1141894874
МегаЧайник
2006-03-09 12:01
2006.03.26
Не могу установить InterBase 7.0.1


1-1140919693
Grol
2006-02-26 05:08
2006.03.26
Быстро обновить все визуальные компонент на форме


15-1141476853
Музыкант
2006-03-04 15:54
2006.03.26
У кого есть ноты?


10-1110390853
Nicolas1989
2005-03-09 20:54
2006.03.26
Как вставить строку в Excel через ExcelApplication?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский