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

Вниз

Обработка событий для компонентов, созданных в Run-Time   Найти похожие ветки 

 
DimonForever :)   (2002-10-19 00:51) [0]

Здрасте всем!
Такая ситуация:
В run-time создается RichEdit, допустим надо выделить весь тект в этом новом RichEdit"е, у меня это делает процедура SelectAll, но как определить какой RichEdit активен в момент вызова этой процедуры, вот в чем загвоздка. Буду очень благодарен, если кто-нибудь поможет. Спасибо за внимание!


 
Rouse_ ©   (2002-10-19 00:53) [1]

Много вариантов, покажи как ты делаешь

Желаю успехов


 
DimonForever :)   (2002-10-19 01:05) [2]

Да тут показывать-то нечего впринципе:

procedure TMainForm.New(Sender: TObject);
var
NewTabSheet: TTabSheet;
NewSynEdit: TSynEdit;
begin
// Создаем новый TabSheet
NewTabSheet := TTabSheet.Create(PageControl1);
NewTabSheet.Caption := "Untitled";
NewTabSheet.PageControl := PageControl1;
PageControl1.SelectNextPage(True);
// Создаем новый SynEdit
NewSynEdit := TSynEdit.Create(NewTabSheet);
NewSynEdit.Align := alClient;
NewSynEdit.Parent := NewTabSheet;
end;

SynEdit это практически тот же RichEdit, только с подсветкой синтаксиса. Компонент такой :) кому неизвестно.

// Select All
procedure TMainForm.SelectAll(Sender: TObject);
begin
SynEdit1.SelectAll; // НО ВЫДЕЛЕНИЕ МНЕ НУЖНО НЕ В SynEdit1 А В //ДРУГОМ СОЗДАННОМ В RUN-TIME И АКТИВНОМ В ДАННЫЙ МОМЕНТ
end;


 
DimonForever :)   (2002-10-19 01:21) [3]

Ну вопрос вроде не сложный... Это я ламос, а вы то, господа, мастера как-никак :) Need help!
Не сочтите за флуд...


 
Rouse_ ©   (2002-10-19 01:31) [4]

Ага, отлично, я тоже делал так. Значит что тее нужно сделать.
1. Создать массив компонентов, которые ты будешь ложить на TabSheet
2. У каждого TabSheet-а проставлять свойство Tag
3. Создавать компонент не так
> NewSynEdit := TSynEdit.Create(NewTabSheet);
> NewSynEdit.Align := alClient;
> NewSynEdit.Parent := NewTabSheet;

а так
SynArray[NewTabSheet.Tag] := TSynEdit.Create(NewTabSheet);
4. Проверять, какая закладка активна, и элементу массива с номером Tag делать выделение всего текста

Что не понятно спрашивай

Желаю успехов


 
DimonForever :)   (2002-10-19 02:22) [5]

Ура! :)
var
SynArray: array[0..255] of TSynEdit;

procedure TMainForm.New(Sender: TObject);
var
NewTabSheet: TTabSheet;
begin
// Создаем новый TabSheet
NewTabSheet := TTabSheet.Create(PageControl1);
NewTabSheet.Caption := "Untitled";
NewTabSheet.PageControl := PageControl1;
Tag := Tag+1;
NewTabSheet.Tag := Tag;
PageControl1.SelectNextPage(True);
// Создаем новый SynEdit
SynArray[NewTabSheet.Tag] := TSynEdit.Create(NewTabSheet);
SynArray[NewTabSheet.Tag].Align := alClient;
SynArray[NewTabSheet.Tag].Parent := NewTabSheet;
end;

procedure TMainForm.SelectAll(Sender: TObject);
begin
if PageControl1.ActivePageIndex>0 then
SynArray[PageControl1.ActivePageIndex].SelectAll
else
SynEdit1.SelectAll;
end;

Спасибо Rouse_(c)!


 
Rouse_ ©   (2002-10-19 02:35) [6]

;)
Всегда пожалуйста



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

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

Наверх




Память: 0.48 MB
Время: 0.009 c
6-101414
Malder
2002-08-29 18:45
2002.10.31
Как послать пактеты именно по данному интерфейсу ?


7-101530
nv-vetal
2002-08-24 12:23
2002.10.31
Как пересчитать все папки (файлы) в определенной папке?


14-101492
Николай Быков
2002-10-11 16:11
2002.10.31
Си плюс плюсы


14-101511
Nostradamus
2002-10-12 18:45
2002.10.31
Как избавится от посетителя???


14-101517
Pat
2002-10-11 22:43
2002.10.31
Что делать, если я сломал палец...