Вверх ↑
Этот топик читают: Гость
Ответов: 1324
Рейтинг: 30
#1: 2022-05-28 20:27:29 ЛС | профиль | цитата
даже описывать не буду, просто надо добавить и всё....

в процедуру THIRadioButton._work_doSelect, в конец добавить _hi_OnEvent(_event_onSelect);
ибо как то не правильно, у чекбокса есть событие при установке галочки а у кружочка нет
карма: 2

0
vip
#1.1контекстная реклама от партнеров
Ответов: 1994
Рейтинг: 129
#2: 2022-05-28 21:08:09 ЛС | профиль | цитата
а у кружочка нет

А ты что, в одинаре его используешь?
А если репу почесать?...

Всё уже решено, до того, как зародились мамонты, а HiAsm - это только одна из проекций.
На вечный двигатель заявки давно не принимаются.
Может стоит посмотреть, что не ладно в Вашем королевстве?

Редактировалось 2 раз(а), последний 2022-05-28 21:21:32
карма: 5

0
Ответов: 1324
Рейтинг: 30
#3: 2022-05-28 22:37:27 ЛС | профиль | цитата
flint2 писал(а):
А ты что, в одинаре его используешь?
А если репу почесать?...

Всё уже решено, до того, как зародились мамонты, а HiAsm - это только одна из проекций.
На вечный двигатель заявки давно не принимаются.
Может стоит посмотреть, что не ладно в Вашем королевстве?


......


а чё не работает, а кто ошибся с точками??, почему точка называется onSelect а не onClick????, в описании же написано про клик....
Add(MainForm,2953706,119,126)
{
link(onCreate,720251:doRead,[])
}
Add(ChanelToIndex,11705371,504,140)
{
Count=4
link(onIndex,720251:doWrite,[(564,146)(564,73)(212,73)(212,153)])
}
Add(IndexToChanel,328290,371,140)
{
Count=4
Point(Index)
Point(Data)
link(onEvent1,8303004:doSelect,[(419,146)(419,125)])
link(onEvent2,12026675:doSelect,[(419,153)(419,160)])
link(onEvent3,12742712:doSelect,[(419,160)(419,195)])
link(onEvent4,2198198:doSelect,[(419,167)(419,230)])
link(Index,7151283:Value,[(377,128)(325,128)(325,184)(272,184)])
link(Data,11625228:Value,[])
}
Add(Ini,720251,224,140)
{
FileName="cfg"
Section="cfg"
Key="pos"
link(onResult,7151283:doValue,[])
}
Add(RadioButton,8303004,434,119)
{
Left=25
Top=15
Width=20
Caption=""
link(onSelect,11705371:doWork1,[(485,125)(485,146)])
}
Add(RadioButton,12026675,434,154)
{
Left=45
Top=15
Width=20
Caption=""
link(onSelect,11705371:doWork2,[(485,160)(485,153)])
}
Add(RadioButton,12742712,434,189)
{
Left=25
Top=35
Width=20
Caption=""
link(onSelect,11705371:doWork3,[(485,195)(485,160)])
}
Add(RadioButton,2198198,434,224)
{
Left=45
Top=35
Width=20
Caption=""
link(onSelect,11705371:doWork4,[(485,230)(485,167)])
}
Add(Memory,11625228,378,98)
{
Default=Integer(1)
}
Add(Memory,7151283,266,140)
{
link(onData,8684092:doTimer,[])
}
Add(Timer,8684092,315,140)
{
Interval=1
Enable=1
AutoStop=1
link(onTimer,328290:doEvent,[])
}

а вот если сделать правку, то всё отлично работает и никому не мешает...

procedure THIRadioButton._work_doSelect;
begin
if ReadBool(_Data) then
SendMessage(Control.Handle,BM_CLICK,0,0)
else
Control.Checked := false;
_hi_OnEvent(_event_onSelect);
end;

Редактировалось 1 раз(а), последний 2022-05-28 22:38:11
карма: 2

0
Ответов: 1994
Рейтинг: 129
#4: 2022-05-28 23:08:00 ЛС | профиль | цитата
ошибся с точками??, почему точка называется
Я не хрена не понимаю, по этому утро вечера мурЁнее.
Но, всё-таки, всё писалось по лекалам, эта версия одного и того же, только вид сбоку.
В оснополагающих элементах, замете - не компонентах, ошибки быть не может.
Повторюсь - всё под копирку, а иначе и быть не могло.
Значит какое то недопонимание, или своё построение мира. Прикольно увидеть ещё одну геометрию до старости своей.

Редактировалось 1 раз(а), последний 2022-05-28 23:16:01
карма: 5

0
Разработчик
Ответов: 26013
Рейтинг: 2108
#5: 2022-05-29 01:06:57 ЛС | профиль | цитата
А вот мне, к примеру, это нафиг не вперлось, чтобы по doSelect выставлялось onSelect, тк это мешает инициализации при старте программы, когда изменения флажков записываются по onSelect. А если при старте эта точка сработает, то произойдет инициализация изменений, и при закрытии будет выдавать просьбу пересохранить, но ведь я сам ничего не менял, и приходится в таких случаях устраивать танца с бубном вокруг этой точки, чтобы отключить ее при старте, что приводит к увеличению компонентов. В данном случае я ничего менять не буду, все останется "как есть".

Редактировалось 1 раз(а), последний 2022-05-29 01:07:48
карма: 22
Если что-то хочешь сделать хорошо -- сделай сам!
0
Ответов: 1324
Рейтинг: 30
#6: 2022-05-29 09:36:59 ЛС | профиль | цитата
Хотя бы тогда исправить либо название точки либо описание точки, потому как не соответствует, называется она onSelect, а в описании написано то что событие происходит при клике
карма: 2

0
Ответов: 1994
Рейтинг: 129
#7: 2022-05-29 11:40:18 ЛС | профиль | цитата
Коллеги!
Вы уж не серчайте. Мои на дачу уехали, и я дал волю чувствам, пока деньги не закончились.
Но скоро пенсия.
карма: 5

0
Разработчик
Ответов: 26013
Рейтинг: 2108
#8: 2022-05-29 12:13:04 ЛС | профиль | цитата
Rysik писал(а):
Хотя бы тогда исправить либо название точки либо описание точки, потому как не соответствует, называется она onSelect, а в описании написано то что событие происходит при клике

Насчет исправить описание, то можно сделать.

--- Добавлено в 2022-05-29 12:31:23

Вообще-то, точка onSelect работает правильно. Это событие происходит по doSelect только, если ты выбираешь точку значением отличным от 0. Ведь точка и называется doSelect, те "Выбрать", если нет выбора, то и точка срабатывать не должна, и не должно выдавать событие onSelect.

Редактировалось 3 раз(а), последний 2022-05-29 12:40:00
карма: 22
Если что-то хочешь сделать хорошо -- сделай сам!
0
Ответов: 1324
Рейтинг: 30
#9: 2022-05-31 22:02:57 ЛС | профиль | цитата
nesco писал(а):
Вообще-то, точка onSelect работает правильно. Это событие происходит по doSelect только



всмысле onSelect, её нет вообще))))

возможно я юзаю старую версию), а что касаемо её то выглядит вот так:

unit hiRadioButton;

interface

uses Windows,Kol,Share,Win,Messages;


{$I share.inc}
type
THIRadioButton = class(THIWin)
private
procedure _OnClick(Obj:PObj);
procedure SetCaption(const Value:string);
procedure SetSelected(Value:byte);
public
_event_onSelect:THI_Event;

constructor Create(Parent:PControl);
procedure _work_doSelect(var _Data:TData; Index:word);
procedure _work_doCaption(var _Data:TData; Index:word);
procedure _var_Selected(var _Data:TData; Index:word);
property _prop_Selected:byte write SetSelected;
property _prop_Caption:string write SetCaption;
end;

implementation

constructor THIRadioButton.Create;
begin
inherited Create(Parent);
Control := NewRadioBox(Parent,'RadioButton');
Control.OnClick := _OnClick;
end;

procedure THIRadioButton._work_doSelect;
begin
if ReadBool(_Data) then
SendMessage(Control.Handle,BM_CLICK,0,0)
else
Control.Checked := false;
_hi_OnEvent(_event_onSelect);
end;

procedure THIRadioButton._work_doCaption;
begin
Control.Caption := Share.ToString(_Data);
end;

procedure THIRadioButton._var_Selected;
begin
dtInteger(_Data,integer(Control.Checked));
end;

procedure THIRadioButton.SetCaption;
begin
Control.Caption := Value;
end;

procedure THIRadioButton.SetSelected;
begin
Control.Checked := value = 0;
end;

procedure THIRadioButton._OnClick;
//var i:integer;
begin
{
for i := 0 to Control.Parent.ChildCount-1 do
if Control.Parent.Children[i].Style and BS_RADIOBUTTON > 0 then
SendMessage(Control.GetWindowHandle, BM_SETCHECK, BST_UNCHECKED, 0);

Control.SetChecked(true);
}
end;

end.

[color=gray][size=9]Редактировалось 1 раз(а), последний 2022-05-31 22:03:22[/size][/color]
карма: 2

0
Разработчик
Ответов: 26013
Рейтинг: 2108
#10: 2022-06-01 04:16:33 ЛС | профиль | цитата
На SVN это выглядит вот так:

procedure THIRadioButton._OnClick;
//var i:integer;
begin
{
for i := 0 to Control.Parent.ChildCount-1 do
if Control.Parent.Children[i].Style and BS_RADIOBUTTON > 0 then
SendMessage(Control.GetWindowHandle, BM_SETCHECK, BST_UNCHECKED, 0);

Control.SetChecked(true);
}
_hi_OnEvent(_event_onSelect);
end;
Я не знаю, откуда ты выдрал свой код, но компонент никто не менял с 2010 года.

Редактировалось 1 раз(а), последний 2022-06-01 04:19:19
карма: 22
Если что-то хочешь сделать хорошо -- сделай сам!
0
Ответов: 1324
Рейтинг: 30
#11: 2022-06-01 10:34:44 ЛС | профиль | цитата
nesco писал(а):
Я не знаю, откуда ты выдрал свой код, но компонент никто не менял с 2010 года.


FPC x64
карма: 2

0
Разработчик
Ответов: 26013
Рейтинг: 2108
#12: 2022-06-01 11:28:16 ЛС | профиль | цитата
Rysik писал(а):
FPC x64

Все вопросы по переделанным компонентам под FPC x64 надо направлять NetSpirit-y. Это никак не относится к стандартным компонентам.
карма: 22
Если что-то хочешь сделать хорошо -- сделай сам!
0
Ответов: 187
Рейтинг: 3
#13: 2022-06-01 16:22:28 ЛС | профиль | цитата
flint2 писал(а):


Старость не радость, отдыхать тоже надо.
карма: 1

0
Ответов: 4579
Рейтинг: 730
#14: 2022-06-02 10:05:11 ЛС | профиль | цитата
nesco писал(а):
Я не знаю, откуда ты выдрал свой код, но компонент никто не менял с 2010 года.
В актуальном архиве под новый FPC - абсолютно идентично. Я тоже не знаю где он берет свой код.
карма: 26

0
14
Сообщение
...
Прикрепленные файлы
(файлы не залиты)