Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.05.15;
Скачать: [xml.tar.bz2];

Вниз

Помогите 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
3-46614
ATK
2003-04-24 07:20
2003.05.15
OleContainer???


8-46858
Анат
2003-02-01 15:05
2003.05.15
Рисование на рабочем столе


3-46639
N&N
2003-04-17 16:51
2003.05.15
Связывание трех таблиц


3-46592
Belkova
2003-04-22 20:55
2003.05.15
IBSecurityService


14-46965
NetBreaker666
2003-04-24 20:21
2003.05.15
Обработка исключений





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский