Главная страница
    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.013 c
14-46922
sniknik
2003-04-25 08:53
2003.05.15
Кто понимает эту бредовую ситуацию?


14-47007
Zilog
2003-04-28 15:45
2003.05.15
Как можно организовать TimeOut?


3-46566
Behemoth
2003-04-25 09:03
2003.05.15
Репликация БД.


3-46637
ki11er
2003-04-23 18:32
2003.05.15
Почему может расти PDOXUSRS.LCK?


3-46647
Pk
2003-04-24 16:52
2003.05.15
Импорт отчета QReport в другой формат (*.rtf, *.txt ...)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский