Форум: "Основная";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];
ВнизОбработка событий для компонентов, созданных в 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c