Главная страница
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.013 c
14-46978
kost
2003-04-27 17:50
2003.05.15
C++


1-46712
.::D.e.M.o.N.i.X::.
2003-05-04 05:40
2003.05.15
Как поймать сообщения консоли?


6-46868
nikolo
2003-03-18 13:08
2003.05.15
FTP + DialUp


1-46718
Киря
2003-05-04 17:01
2003.05.15
Удаления дубликатов в ListBox


1-46698
BoTToN!k
2003-05-03 14:52
2003.05.15
проблемма с консоль проектом...