IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Компонент
сообщение
Сообщение #1


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


С помощью инета сделал свой компонент. Подскажите, как
unit component1;

interface

{uses
SysUtils, Classes, ExtCtrls;}
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;

var Timer: TTimer;

type
tcomponent1 = class(TComponent)

private
{ Private declarations }
FShowType:boolean;
protected
{ Protected declarations }
procedure OnTimer(Sender: TObject);
public
{ Public declarations }
constructor Create(AOwner:TComponent);override;
published
{ Published declarations }
property ShowType: boolean read FshowType write FShowType;
end;



procedure Register;

implementation

procedure Register;
begin
RegisterComponents('Samples', [tcomponent1]);
end;

constructor tcomponent1.Create(aowner:Tcomponent);
begin
Timer:=TTimer.Create(self);
Timer.Enabled:=true;
Timer.OnTimer:=OnTimer;
Timer.Interval:=1000;
end;

procedure tcomponent1.OnTimer(Sender: TObject);
begin
FShowType:=not FShowType; <<----------------------------------------вот здесь
end;

end.

изменять, например, свойство Visible формы, на которую этот компонент установлен.

Сообщение отредактировано: sheka -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Цитата
но его и остальные поля и методы предка - НЕТ! т.е. их не видит.
wacko.gif Чего кто там не видит? Ты скриншоты показывай что-ли, что и где ты хочешь увидеть, а не видишь...

Цитата
и еще, что вот это за проверка:if Assigned(FOnTimer) then FOnTimer(Self);
А если у тебя за время между тиками таймера (т.е. за эту самую секунду) произошли изменения, ты (ну, или кто-то другой, неважно) сбросил FOnTimer в nil? Что будет на следующем тике? Попытка разыменовать нулевой указатель будет, а это приведет только к аварийному вылету. Вот поэтому сначала проверяем, есть ли собственно обработчик, и если есть - то вызываем его.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Вот смотрите: если на форме стоит только один Edit1 и прописать:
procedure TForm1.Edit1Change(Sender: TObject);
begin
form1.Caption:=edit1.Text;
end;

тогда в Run-Time будет при изменении Edit1.Text будет меняться form1.Caption.
как мне сделать чтобы при изменении текста моего компонента происходило то же самое, без предварительной прописки в новоп проекте:
procedure TForm1.MyComponent1Change(Sender: TObject);
begin
form1.Caption:=edit1.Text;
end;


Что собой представляет TNotifyEvent? указатель на какое-то событие? если да, то ним могут быть все(OnClick,OnCreate..итд)?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
sheka   Компонент   17.11.2009 22:43
volvo   Свойство Owner тебе поможет.   17.11.2009 22:50
sheka   Свойство Owner тебе поможет. owner.visible?   17.11.2009 22:58
volvo   На самом деле лучше бы так сделать: type TCompon…   17.11.2009 23:23
sheka   это я с сайта списывал. Насколько я понял, то чт…   18.11.2009 0:55
volvo   Нет, мне не удалось добиться того, что ты хочешь (…   18.11.2009 3:35
sheka   Выложите пожалуйста свой компонент. не могу понять…   18.11.2009 5:36
volvo   Вот сам компонент: В основном приложении на форм…   18.11.2009 6:47
sheka   Спасибо, уже кое-что стало понятно,но еще вопросы …   18.11.2009 23:10
volvo   :wacko: Чего кто там не видит? Ты скриншоты показ…   18.11.2009 23:43
sheka   Вот смотрите: если на форме стоит только один Edit…   19.11.2009 1:58
volvo   Ну, так в чем проблема? Проверяй, что компонент ле…   19.11.2009 2:31
sheka   Ну, так в чем проблема? Вы меня не правильно пон…   19.11.2009 4:26
sheka   Я сделал то что хотел!!! procedure TMy…   19.11.2009 6:19
volvo   Нет, по-моему мы друг друга не понимаем... Какая п…   19.11.2009 6:27
sheka   Бррр... Так ты хочешь, чтобы твой метод Change был…   19.11.2009 22:34
volvo   Хелп читал? (Вот отсюда) А ты вызываешь напрямую…   19.11.2009 23:57
sheka   Я ничего не описывал. Не предупредила.   20.11.2009 0:36
sheka   Создается компонент, картинка. при нажатии на нее …   11.12.2009 4:26
volvo   Ты забыл добавить Parent-а создаваемой картинке. А…   11.12.2009 7:25
sheka   Покажите пожалуйста фрагмент кода, где добавляется…   16.12.2009 1:32
volvo   Вот так, например: unit Component2; interface us…   16.12.2009 2:29


 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 4.05.2024 2:30
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name