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

Вниз

Помогите c компонентов в Run_time   Найти похожие ветки 

 
BoTToN!k ©   (2003-04-29 12:23) [0]

Подскажите кому не трудно, как создать событие компанента, созданнго во время выполнения программы...немогу разобратся....желательно с примером например на таймере...Большое спасибо!!


 
Skier ©   (2003-04-29 12:30) [1]

http://delphimaster.net/view/1-1051543749/


 
Zergling   (2003-04-29 12:44) [2]

uses TypInfo;

Через RTTI меньше глюков соберем и к любому обекту

TVSetMethodProp(DestObject,"OnClick",TVGetMethodProp(SourceObject,"OnClick"));

Procedure TVSetMethodProp(AComponent:TObject;APropertyName:String;AMethod:TMethod);
var PropInfo: PPropInfo;
Begin
PropInfo:=GetPropInfo(AComponent.ClassInfo,APropertyName);
if PropInfo<>nil then
if PropInfo^.PropType^.Kind=tkMethod then SetMethodProp(AComponent,PropInfo,AMethod);
End;

Function TVGetMethodProp(AComponent:TObject;APropertyName:String):TMethod;
var PropInfo: PPropInfo;
Begin
PropInfo:=GetPropInfo(AComponent.ClassInfo,APropertyName);
if PropInfo<>nil then
if PropInfo^.PropType^.Kind=tkMethod then Result:=GetMethodProp(AComponent,PropInfo);
End;


 
BoTToN!k ©   (2003-05-01 08:46) [3]

млин ..неполучается....создал компанент пишу button1.onclick:=myproc;
...
procedure myproc(sender:TObject)
////
каr?


 
Levan Varshanidze   (2003-05-01 09:18) [4]

Собитие или обработчик собития ?


 
Лесник ©   (2003-05-01 10:55) [5]

Очевидно уже в архиве мой топик. Я делал следующим образом, для того чтобы пользователь в поле Edit мог вводить только цифровые значения и DecimalSeparator, а Вы можете вставлять любую свою процедуру.

...
// создаем процедуру на событие
Type
TMyKeyPress = class
private
procedure EditKeyPress(Sender:TObject;var Key:Char);
end;
procedure TMyKeyPress.EditKeyPress(Sender:TObject; var Key: Char);
begin
If not (Key in ["0".."9",Decimalseparator])then Key:=#0;
end;

// функция где Вы создаете свой компонент
function InputQueryC(const ACaption, APrompt: string;
var Value: string): Boolean;

var
Form: TForm;
Edit: TEdit;
........
Edit := TEdit.Create(Form);
with Edit do
begin
Parent := Form;
Left := Prompt.Left;
Top := Prompt.Top + Prompt.Height + 5;
Width := MulDiv(164, DialogUnits.X, 4);
MaxLength := 255;
Font.Color:=clNavy;
Text := Value;
SelectAll;
MyKey:=nil;
OnKeyPress:=MyKey.EditKeyPress;// вот здесь и обработка
end;


 
Лесник ©   (2003-05-01 11:12) [6]

Да еще забыл Там где описаны переменные формы и едита еще надо добавить и еще одну переменную например у меня
MyKey : TMyKeyPress;
а MyKey:=nil;должен быть для того чтобы убрать warning при компиляции


 
KSergey ©   (2003-05-01 12:04) [7]

http://www.delphikingdom.ru/helloworld/runtime_comp.htm


 
BoTToN!k ©   (2003-05-03 04:19) [8]

спосибо всем...разобрался...



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

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

Наверх




Память: 0.48 MB
Время: 0.011 c
1-46694
BlackTiger
2003-05-02 20:20
2003.05.15
Можно ли сделать модальную форму resizeable?


4-47056
SSCha
2003-03-11 15:52
2003.05.15
Как узнать, завершено ли копирование файла?


1-46725
qqqqq0001
2003-05-04 20:30
2003.05.15
Tfinddialog


14-47000
AZ
2003-04-26 23:18
2003.05.15
---|Ветка была без названия|---


14-46914
Zheka
2003-04-24 16:51
2003.05.15
Настройка компиляции