powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Несробатывает SetStroke
5 сообщений из 5, страница 1 из 1
Несробатывает SetStroke
    #39703664
Janex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.
Есть мои компонент, в нём один Property GaugeDivisions;
Всё работает, НО есть одна проблема - если ему что то меняю в своистве Stroke,
то процедура SetStroke почему то не срабатывает :(
Рядом лежит Count - там что то меняем и SetCount срабатывает.
Немогу понять - толи я что то не то или глюк делфи ?
Версия 10.2.3

Есть идеи где грабли ?



Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
TxdxGaugeDivisions = Class(TPersistent)
Private
  FCount  :Integer;
  FStroke :TStrokeBrush;
  Procedure SetCount(AValue: Integer);
  Procedure SetStroke(Const AValue :TStrokeBrush);
Public
  Constructor Create(Owner: TxdxGauge);
  Destructor  Destroy; Override;
Published
  Property Count  :Integer      Read FCount  Write SetCount;
  Property Stroke :TStrokeBrush Read FStroke Write SetStroke;
End;

Constructor TxdxGaugeDivisions.Create(Owner: TxdxGauge);
Begin
  FCount  := 5;
  FStroke := TStrokeBrush.Create(TBrushKind.Solid, TAlphaColors.Red);
End;

Destructor TxdxGaugeDivisions.Destroy;
begin
  FStroke.Free;
  Inherited;
End;

Procedure TxdxGaugeDivisions.SetCount(AValue: Integer);
Begin
  FCount := AValue;
  showmessage('2');
End;

Procedure TxdxGaugeDivisions.SetStroke(Const AValue :TStrokeBrush);
Begin
  FStroke := AValue;
  showmessage('1');
End;



WBR
Janex
...
Рейтинг: 0 / 0
Несробатывает SetStroke
    #39703670
zinpub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так не бывает
...
Рейтинг: 0 / 0
Несробатывает SetStroke
    #39703678
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понятно, может нужно просто еще раз скомпилировать компонент и инсталлировать в IDE


и замечание по коду: вы так теряете созданный объект FStroke := TStrokeBrush.Create
Код: pascal
1.
2.
3.
4.
Procedure TxdxGaugeDivisions.SetStroke(Const AValue :TStrokeBrush);
Begin
   FStroke := AValue;
   ...



Может лучше на что-нибудь такое заменить
Код: pascal
1.
2.
3.
4.
Procedure TxdxGaugeDivisions.SetStroke(Const AValue :TStrokeBrush);
Begin
   FStroke.Assigne(AValue );
   ...
...
Рейтинг: 0 / 0
Несробатывает SetStroke
    #39703684
Janex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик СемёнНе понятно, может нужно просто еще раз скомпилировать компонент и инсталлировать в IDE


и замечание по коду: вы так теряете созданный объект FStroke := TStrokeBrush.Create
Код: pascal
1.
2.
3.
4.
Procedure TxdxGaugeDivisions.SetStroke(Const AValue :TStrokeBrush);
Begin
   FStroke := AValue;
   ...



Может лучше на что-нибудь такое заменить
Код: pascal
1.
2.
3.
4.
Procedure TxdxGaugeDivisions.SetStroke(Const AValue :TStrokeBrush);
Begin
   FStroke.Assigne(AValue );
   ...



Да, FStroke.Assigne(AValue ); будет првильнее.
Но да - несробатывает, хоть смотрел пример ис TMS - там также, но решение нашёл, подглянул с
таго же TMS - у FStroke надо указать :

FStroke.OnChanged := _MyStrokeOnChanged;

Тогда там могу словить изменения, так что вопрос вроде как резрешился :)
Спасибо.
...
Рейтинг: 0 / 0
Несробатывает SetStroke
    #39703733
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В зависимости от того что есть TStrokeBrush...
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Несробатывает SetStroke
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]