Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.26;
Скачать: CL | DM;

Вниз

Создание разделителя между 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.04 c
15-1140691446
старый маразматик(с)
2006-02-23 13:44
2006.03.26
что вы думаете за Кашпировского?


3-1138718238
Mac_
2006-01-31 17:37
2006.03.26
Как сохранить результат запроса в dbf формате ?


2-1141379563
Логин
2006-03-03 12:52
2006.03.26
Импорт из Excel.


2-1141837878
Volkodav
2006-03-08 20:11
2006.03.26
Перетаскивание формы


6-1134481685
KosTiger
2005-12-13 16:48
2006.03.26
Сервер авторизации