Главная страница
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.016 c
14-101496
Best Before 2024
2002-10-11 17:09
2002.10.31
Что делать, если изменили обе на рабочем столе?


1-101246
foks
2002-10-22 10:40
2002.10.31
Имя документа при отправке на принтер


3-101092
Alex Chu
2002-10-09 09:32
2002.10.31
Как узнать имя компьютера на котором запускается приложение?


3-101145
Cool
2002-10-09 06:24
2002.10.31
Затащить *.mdb в exe-шник


7-101556
stx
2002-08-22 17:34
2002.10.31
резервирование памяти