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

Вниз

EditBox, метод Add и св-во Caption   Найти похожие ветки 

 
Ruzzz   (2009-07-25 15:00) [0]

В книге KOL написано «2.23.6. Текст окна и шрифт для окна - Caption ...  Хранится в буфере, по крайней мере, до момента создания окна для объекта (после чего содержимое буфера игнорируется, а чтение и запись свойства происходит путем чтения или установки текста окна, через функции API)»

1) Но вот если создаю NewEditBox(Form, [eoMultiline]) и добавляю текст «вручную», а затем использую где-нибудь MemoLog.Add(Str), то текст добавленный «вручную пропадает».

Получается что при Add я попадаю в KOL_ASM.inc - function TControl.Add, где выполняется код:
@@add_text_simple:
       LEA      EAX, [EBX].fCaption
       CALL     System.@LStrCat
       MOV      EDX, [EBX].fCaption
       MOV      EAX, EBX
       CALL     SetCaption
Здесь в EBX ранее переданный из EAX указатель на self, а в EDX добавляемая строка. То есть получается мы используем буфер FCaption, но никак не API, и это проблема :(

В KOL.pas нашел TControl.Add и вроде бы он должен работать с API, но это pascal версия и  не совсем тогда понимаю, почему такая разная реализация? И как подключить ее?

2) Проблема также в том что многие функции для изменения текста, используют API для получения этого текста, но не буфер, например в KOL.pas - TControl.DeleteLines, в ней используется TControl.ReplaceSelection, которая использует API.

Помогите разобраться, возможно эти моменты уже где-то описаны? Спасибо!


 
Ruzzz   (2009-07-25 15:08) [1]

Получается что вместо метода Add(Str) лучше использовать Memo.Caption := Memo.Caption + Str.
Еще бы разобраться как полностью отключить буфер fCaption?


 
Ruzzz   (2009-07-25 16:09) [2]

Запутался я, DeleteLines работает, вроде бы не работал :(



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

Текущий архив: 2013.10.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.006 c
15-1367841718
O'ShinW
2013-05-06 16:01
2013.10.20
Чисто теоретический вопрос на запись в файл в начало со сдвигом


15-1367872203
Юрий
2013-05-07 00:30
2013.10.20
С днем рождения ! 7 мая 2013 вторник


15-1367775508
NailMan
2013-05-05 21:38
2013.10.20
Еще не забыли летуна?


15-1367958603
Юрий
2013-05-08 00:30
2013.10.20
С днем рождения ! 8 мая 2013 среда


2-1359542241
Vitamin
2013-01-30 14:37
2013.10.20
проектирование бд