Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TKolRichEdit и TKolListBox


Юрий ©   (2003-05-04 18:43:00) 

Кто использовал TKolRichEdit? Каким образом загрузить файл?
LoadFromFile прописан для TStrList, а такого свойства у TKolRichEdit вроде нет.

У TKolListBox событие OnClick происходит только после двойного клика, хотя вижу, что это контрол обладает и событием OnMouseDblClick.
Что сделать, чтобы отрабатывался код после одного клика?

Следующий код не работает (Runtime Error) после двойного клика.

procedure TSearchForm.KolListBox1Click(Sender: PObj);
var sl: TStrList;
begin
// В KolListBox1 - список имён файлов
if (KolListBox1.CurIndex < 0) then exit;
s := lRecs.Items[lRecs.CurIndex];
sl.LoadFromFile(s);
KolRichEdit1.Text := sl.Text;
end;


Gandalf   (2003-05-06 22:07:00) [1]

Кладов посчитал, что для ListBox - Click и DblClick - это одно и тоже - и назначил, на них одно событаи - вотрое эквивалентно VCL.DblClick. При этом эквивалентом (послным это одно и тоже) VCL.Click - является, в случаи ListBox, SelChange.

> Времени не столь много, чтобы по исходникам разбираться.
> Коли КОЛ запускается из Дельфи, то всё-таки ожидаешь от
> Контролов такого же поведения как и в VCL, а оказывается,
> что кое-что сильно разнится.


Так старался делать я в своих компонентах, но дело в том, что VCL удобно, но не оптимально и в KOL порой жертвую удобством во имя оптимальности - потому возникают различия (KOL ближе к API).


Юрий   (2003-05-06 18:05:00) [2]

default:
"а то в исходнике Click-а посмотри"

Времени не столь много, чтобы по исходникам разбираться. Коли КОЛ запускается из Дельфи, то всё-таки ожидаешь от Контролов такого же поведения как и в VCL, а оказывается, что кое-что сильно разнится.

Кстати Button.OnClick требует одинарного клика, почему же у ListBox.OnClick должно быть иначе?


default   (2003-05-06 14:32:00) [3]

а то в исходнике Click-а посмотри


Юрий   (2003-05-06 14:27:00) [4]

"Оба срабатывают при двойном клике - причем DblClick раньше, чем OnClick. Это не баг - это API."

Следующий код на VBasic также срабатывает при одинарном клике, так при чём же здесь API в таком случае?

Private Sub ListBox1_Click()
Dim ...
...
End Sub

Почему в VCL и VBasic событие Click срабатывает при одинарном клике, а в KOL это требует двойного клика?


Юрий   (2003-05-05 15:26:00) [5]

"Оба срабатывают при двойном клике - причем DblClick раньше, чем OnClick. Это не баг - это API."

А как же в VCL сделали, чтобы при одинарном клике событие срабатывало? Не лучше ли, чтобы было как в VCL?


Юрий   (2003-05-05 15:24:00) [6]


В "Object Inspector" RichEdit2.Font.FontHeight := 0;

RichEdit2.RE_LoadFromFile(lRecs.Items[lRecs.CurIndex], reText, False);
while (true) do begin
RichEdit2.Font.FontHeight := RichEdit2.Font.FontHeight+1;
( Int2Str(RichEdit2.Font.FontHeight) [8]


В "Object Inspector" RichEdit2.Font.FontHeight := 0;

RichEdit2.RE_LoadFromFile(lRecs.Items[lRecs.CurIndex], reText, False);
while (true) do begin
RichEdit2.Font.FontHeight := RichEdit2.Font.FontHeight+1;
MsgBox(Int2Str(RichEdit2.Font.FontHeight), 0);
end;

Этот код действительно меняет фонт, без него загруженный текст показывается с фонтом, который по умолчанию стоит, какой FontHeight в "Object Inspector" не ставлю.
В чём дело? Похоже это баг.


Gandalf   (2003-05-05 15:10:00) [7]


> Для чего же в "Object Inspector" свойство FontHeight помещён,
> если изменение этого свойства никак не влияет? Это баг?


Влияет, да и лень убирать (он есть у предка).


> У TKolListBox событие OnClick кто-нибудь использовал? Срабатывает
> при двойном клике оно или при одинарном? У меня при двойном
> клике отрабатывает код. Чем же отличается это событие от
> OnMouseDblClick?


Оба срабатывают при двойном клике - причем DblClick раньше, чем OnClick. Это не баг - это API.


Юрий   (2003-05-05 14:57:00) [8]

У TKolListBox событие OnClick кто-нибудь использовал? Срабатывает при двойном клике оно или при одинарном? У меня при двойном клике отрабатывает код. Чем же отличается это событие от OnMouseDblClick?


Юрий   (2003-05-05 14:49:00) [9]

Для чего же в "Object Inspector" свойство FontHeight помещён, если изменение этого свойства никак не влияет? Это баг?


Gandalf   (2003-05-05 13:53:00) [10]

Работает:

RichEdit2.RE_CharFmtArea:=raAll;
RichEdit2.RE_FmtFontSize:=720;


Юрий   (2003-05-04 19:37:00) [11]

Совершенно не могу поменять ширину фонта у TKolRichEdit, какую цифру не ставлю в FontHeight, результат тот же, хотя загружен обычный текстовый файл.


Nix   (2003-05-04 18:59:00) [12]


REdit.RE_LoadFromFile(Dialog.Filename,reText,false)

REdit.RE_SaveToFile(Dialog.Filename,reText,false);


Юрий   (2003-05-04 18:49:00) [13]

Поправка в код (не полностью сменил имена контролов):

procedure TForm1.KolListBox1Click(Sender: PObj);
var sl: TStrList; s: String;
begin
if (KolListBox1.CurIndex < 0) then exit;
s := KolListBox1.Items[KolListBox1.CurIndex];
sl.LoadFromFile(s);
KolRichEdit1.Text := sl.Text;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо