Re[2]: Version 3.3.0.0 with CSSS! is out.
От: c-smile Канада http://terrainformatica.com
Дата: 13.05.08 17:51
Оценка:
Здравствуйте, Obukhov, Вы писали:

O>А еще происходит падение при загрузке вот такого стиля.


O>
O>    select#SYSTEM
O>    {
O>      value-changed! : 
O>          $1(tr.info_fields):checked = (self:value == 6);
O>    }
O>


Не только там Разбираюсь.
Re[12]: Version 3.3.0.0 with CSSS! is out.
От: c-smile Канада http://terrainformatica.com
Дата: 13.05.08 18:35
Оценка:
Здравствуйте, TK, Вы писали:

CS>>Еще раз, что-то держит элемент.


TK>А в HTMLayout не держит? Реализация для Htmlayout/Sciter отличается только тем, что в одном случае дергаются функции Htmlayout а в другом, SciterGetDomApi() и вызовы SciterDomApi — в HTMLayout при удалении все детачится, в Sciter нет. Я правильно понимаю, что HELEMENT это просто поинтер на какой-то C++ объект? Если смотреть на него отладчиком то, счетчик ссылок в ноль уходит.


TK>Например, почему element.Parent.InnerHtml = "" приводит к вызову BEHAVIOR_DETACH для element, а если заменить на element.DetachElement() нет?


Ты можешь собрать минимальный пример для Sciter?
Re[13]: Version 3.3.0.0 with CSSS! is out.
От: TK Лес кывт.рф
Дата: 13.05.08 19:29
Оценка:
Здравствуйте, c-smile, Вы писали:

TK>>Например, почему element.Parent.InnerHtml = "" приводит к вызову BEHAVIOR_DETACH для element, а если заменить на element.DetachElement() нет?


CS>Ты можешь собрать минимальный пример для Sciter?


Да, здесь два варианта — один htmlayout, другой sciter при клике на кнопку удаляется элемент #content
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[14]: Version 3.3.0.0 with CSSS! is out.
От: c-smile Канада http://terrainformatica.com
Дата: 13.05.08 20:29
Оценка:
Здравствуйте, TK, Вы писали:

TK>Здравствуйте, c-smile, Вы писали:


TK>>>Например, почему element.Parent.InnerHtml = "" приводит к вызову BEHAVIOR_DETACH для element, а если заменить на element.DetachElement() нет?


CS>>Ты можешь собрать минимальный пример для Sciter?


TK>Да, здесь два варианта — один htmlayout, другой sciter при клике на кнопку удаляется элемент #content


А что должно происходить?

У меня при запуске возникает
MsgBox ("attached {content}" )
после него окно со sciter. При закрытии оного получаю:
MsgBox ("detached {content}" )

И для htmlayout и для sciter. И на твоей версии sciter/htmlayout и на том что есть у меня.

Что здесь не так?
Re[15]: Version 3.3.0.0 with CSSS! is out.
От: TK Лес кывт.рф
Дата: 13.05.08 20:37
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Что здесь не так?


Надо мышкой на кнопку с картинкой в левом верхнем кликнуть :) Тогда, для Htmlayout detached будет, а для sciter нет
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[16]: Version 3.3.0.0 with CSSS! is out.
От: c-smile Канада http://terrainformatica.com
Дата: 13.05.08 20:53
Оценка:
Здравствуйте, TK, Вы писали:

TK>Здравствуйте, c-smile, Вы писали:


CS>>Что здесь не так?


TK>Надо мышкой на кнопку с картинкой в левом верхнем кликнуть Тогда, для Htmlayout detached будет, а для sciter нет


В каком случае генерируется твой MsgBox("detached")?
Re[17]: Version 3.3.0.0 with CSSS! is out.
От: TK Лес кывт.рф
Дата: 13.05.08 21:08
Оценка:
Здравствуйте, c-smile, Вы писали:

TK>>Надо мышкой на кнопку с картинкой в левом верхнем кликнуть :) Тогда, для Htmlayout detached будет, а для sciter нет

CS>В каком случае генерируется твой MsgBox("detached")?

Это результат уведомления BEHAVIOR_DETACH.
код формы примерно такой:
            SciterBehavior bhv = new SciterBehavior();
            bhv.Attached += (s, e) => MessageBox.Show("Attached: " + e.Element.Attributes["id"]);
            bhv.Detached += (s, e) => MessageBox.Show("Detached: " + e.Element.Attributes["id"]);

            DocumentComplete += (s, e) => { RootElement.Find("#content").AttachBehavior(bhv); } // HTMLayoutAttachEventHandler(...)
            openButton.Click += (s, e) => { RootElement.Find("#content").Delete(); GC.KeepAlive(bhv); };


Метод Delete для Htmlayout вызывается CheckResult(HTMLayoutDeleteElement(element.Handle));
Для Sciter:
            IntPtr parent;
            CheckResult(SciterGetParentElement(element.Handle, out parent));
            CheckResult(SciterDetach(element.Handle));
            CheckResult(SciterUpdateElement(parent, true));
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[18]: Version 3.3.0.0 with CSSS! is out.
От: c-smile Канада http://terrainformatica.com
Дата: 13.05.08 22:18
Оценка:
Здравствуйте, TK, Вы писали:

Ага, увидел. Починил для след билда.
Re[4]: Version 3.3.0.0 with CSSS! is out.
От: c-smile Канада http://terrainformatica.com
Дата: 14.05.08 02:58
Оценка:
Здравствуйте, Obukhov, Вы писали:

O>Но есть пара особенностей:

O>1. При первоначальной загрузке страницы (хотя select имеет определенный выбранный пункт) у code#INPUT_CODE значение пустое пока не перещелкнешь select.
O>2. При перещелкивании select с помощью курсорных клавиш, значение у code#INPUT_CODE меняется на адекватное, но при этом сам select остается неизменным (не перерисовывается).

O>как можно побороть пункт 1 ?

Гляну.

O>по второму щас постараюсь прислать пример.

Да, надо.
Re[4]: Version 3.3.0.0 with CSSS! is out.
От: c-smile Канада http://terrainformatica.com
Дата: 14.05.08 03:01
Оценка:
Здравствуйте, Obukhov, Вы писали:

O>Здравствуйте, c-smile, Вы писали:


CS>>Чего-то VC optimizer невзлюбил один мой файл...


O>Интересно, а как вы ловили что оптимайзер сломал код ?

O>вопрос чисто по обмену опытом

Да в общем тривиально. У меня две release версии с разными установками оптимизации. В одной валится в другой нет.
Пара моих проблем и один достоверный глюк оптимизатора.
Re: Version 3.3.0.0 with CSSS! is out.
От: Kubyshev Andrey  
Дата: 14.05.08 05:31
Оценка: 36 (1) +2 :)))
CS>(кажется я родил очередной лисапет. наверное судьба такая)

CS>


ты мощный...
Re[2]: Version 3.3.0.0 with CSSS! is out.
От: c-smile Канада http://terrainformatica.com
Дата: 14.05.08 06:02
Оценка:
Здравствуйте, Obukhov, Вы писали:

O>А еще происходит падение при загрузке вот такого стиля.


O>
O>    select#SYSTEM
O>    {
O>      value-changed! : 
O>          $1(tr.info_fields):checked = (self:value == 6);
O>    }
O>


Починил. Забираем 3.3.0.1
Re[4]: Version 3.3.0.0 with CSSS! is out.
От: c-smile Канада http://terrainformatica.com
Дата: 14.05.08 06:29
Оценка:
Здравствуйте, Obukhov, Вы писали:

O>1. При первоначальной загрузке страницы (хотя select имеет определенный выбранный пункт) у code#INPUT_CODE значение пустое пока не перещелкнешь select.


На пока:
select#INPUT_CODE
    {
      assigned!: $(code#INPUT_CODE):value = $1c(option[selected]).value; 
      value-changed! : $(code#INPUT_CODE):value = self:value;
    }
Re[5]: Version 3.3.0.0 with CSSS! is out.
От: Obukhov Россия  
Дата: 14.05.08 06:49
Оценка:
Здравствуйте, c-smile, Вы писали:

O>>по второму щас постараюсь прислать пример.

CS>Да, надо.

Ушло письмо.
... << RSDN@Home 1.2.0 alpha rev. 774>>
Re[5]: Version 3.3.0.0 with CSSS! is out.
От: Obukhov Россия  
Дата: 14.05.08 09:57
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, Obukhov, Вы писали:


O>>1. При первоначальной загрузке страницы (хотя select имеет определенный выбранный пункт) у code#INPUT_CODE значение пустое пока не перещелкнешь select.


CS>На пока:

CS>
CS>select#INPUT_CODE
CS>    {
    CS>      assigned!: $(code#INPUT_CODE):value = $1c(option[selected]).value; 
CS>      value-changed! : $(code#INPUT_CODE):value = self:value;
CS>    } 
CS>


Что то не работает.
Попробовал вот так еще:
    select#INPUT_CODE {
      assigned! :  $(code#INPUT_CODE):value = $1c(option[default]):value;
      value-changed! : $(code#INPUT_CODE):value = $1c(option:current):value;
  }

тоже самое
... << RSDN@Home 1.2.0 alpha rev. 774>>
Re[6]: Version 3.3.0.0 with CSSS! is out.
От: c-smile Канада http://terrainformatica.com
Дата: 14.05.08 17:26
Оценка:
Здравствуйте, Obukhov, Вы писали:

O>Здравствуйте, c-smile, Вы писали:


CS>>Здравствуйте, Obukhov, Вы писали:


O>>>1. При первоначальной загрузке страницы (хотя select имеет определенный выбранный пункт) у code#INPUT_CODE значение пустое пока не перещелкнешь select.


CS>>На пока:

CS>>
CS>>select#INPUT_CODE
CS>>    {
    CS>>      assigned!: $(code#INPUT_CODE):value = $1c(option[selected]).value; 
CS>>      value-changed! : $(code#INPUT_CODE):value = self:value;
CS>>    } 
CS>>


O>Что то не работает.


А у тебя вообще есть &lt;option selected&gt;?
Re[6]: Version 3.3.0.0 with CSSS! is out.
От: c-smile Канада http://terrainformatica.com
Дата: 14.05.08 22:09
Оценка:
Здравствуйте, Obukhov, Вы писали:

O>Здравствуйте, c-smile, Вы писали:


CS>>Здравствуйте, Obukhov, Вы писали:


O>>>1. При первоначальной загрузке страницы (хотя select имеет определенный выбранный пункт) у code#INPUT_CODE значение пустое пока не перещелкнешь select.


CS>>На пока:

CS>>
CS>>select#INPUT_CODE
CS>>    {
    CS>>      assigned!: $(code#INPUT_CODE):value = $1c(option[selected]).value; 
CS>>      value-changed! : $(code#INPUT_CODE):value = self:value;
CS>>    } 
CS>>


O>тоже самое


Состояние :current у option появляется только тогда когда он был активирован, скажем получил фокус.
До этого :current не определен.

Что делать?

Первое, объявить нужную option c атрибутом selected как я сказал в сообщении выше:

<select id="CODE" size="1" .requred style="width:100px">
   <option value="1" selected>select1</option>
   <option value="2">select2</option>
   <option value="3">select3</option>
</select>


В стиле объявить следующее:

select#CODE {
      assigned! : $1(code#CODE):value = $1c(option[selected]):value; // здесь (при инициализации) берем declared value
      value-changed! : $1(code#CODE):value = $1c(option:current):value; // здесь (после value-changed!) берем runtime value
}
Re[7]: Version 3.3.0.0 with CSSS! is out.
От: Obukhov Россия  
Дата: 15.05.08 12:26
Оценка:
Здравствуйте, c-smile, Вы писали:


CS>Состояние :current у option появляется только тогда когда он был активирован, скажем получил фокус.

CS>До этого :current не определен.

CS>Что делать?


CS>Первое, объявить нужную option c атрибутом selected как я сказал в сообщении выше:


CS>
CS><select id="CODE" size="1" .requred style="width:100px">
CS>   <option value="1" selected>select1</option>
CS>   <option value="2">select2</option>
CS>   <option value="3">select3</option>
CS></select>
CS>


CS>В стиле объявить следующее:


CS>
CS>select#CODE {
CS>      assigned! : $1(code#CODE):value = $1c(option[selected]):value; // здесь (при инициализации) берем declared value
CS>      value-changed! : $1(code#CODE):value = $1c(option:current):value; // здесь (после value-changed!) берем runtime value
CS>}
CS>


А атрибут default подойдет ?
Вроде сделал тоже самое с атрибутом default, нифига не получилось

Потом переделал все на selected — тоже самое
закрались некоторые подозрения...
взял и сделал глобальную CSSS функцию: test_call()

и попробовал сделать вот так:
    select#CODE {
      assigned! : $(code#CODE):value = $1c(option[selected]):value, test_call();
      value-changed! : $(code#CODE):value = $1c(option:current):value, test_call();
        }

Так вот функция test_call не вызывается при загрузке страницы !!!
только после перещелкивания селекта.
... << RSDN@Home 1.2.0 alpha rev. 774>>
Re[8]: Version 3.3.0.0 with CSSS! is out.
От: c-smile Канада http://terrainformatica.com
Дата: 15.05.08 17:57
Оценка:
Здравствуйте, Obukhov, Вы писали:


CS>>Первое, объявить нужную option c атрибутом selected как я сказал в сообщении выше:


CS>>
CS>><select id="CODE" size="1" .requred style="width:100px">
CS>>   <option value="1" selected>select1</option>
CS>>   <option value="2">select2</option>
CS>>   <option value="3">select3</option>
CS>></select>
CS>>


CS>>В стиле объявить следующее:


CS>>
CS>>select#CODE {
CS>>      assigned! : $1(code#CODE):value = $1c(option[selected]):value; // здесь (при инициализации) берем declared value
CS>>      value-changed! : $1(code#CODE):value = $1c(option:current):value; // здесь (после value-changed!) берем runtime value
CS>>}
CS>>


O>А атрибут default подойдет ?


Нет. См. ссылку в пред. сообщении.

O>Вроде сделал тоже самое с атрибутом default, нифига не получилось


Что именно не получилось?

O>Потом переделал все на selected — тоже самое

O>закрались некоторые подозрения...
O>взял и сделал глобальную CSSS функцию: test_call()

O>и попробовал сделать вот так:

O>
O>    select#CODE {
O>      assigned! : $(code#CODE):value = $1c(option[selected]):value, test_call();
O>      value-changed! : $(code#CODE):value = $1c(option:current):value, test_call();
O>        }
O>

O>Так вот функция test_call не вызывается при загрузке страницы !!!
O>только после перещелкивания селекта.

Я тестирую на том примере что ты прислал.

Файл send1.ru.html (добавлен selected аттрибут):

<td><select id="CODE" size="1" .requred style="width:100px"><option value="1" selected>select1</option><option value="2">select2</option><option value="3">select3</option></select></td>


И правило в файле send.ru.html

select#CODE {
      assigned! : $1(code#CODE):value = $1c(option[selected]):value;
      value-changed! : $1(code#CODE):value = $1c(option:current):value;
}


Это все работает.
Re[9]: Version 3.3.0.0 with CSSS! is out.
От: Obukhov Россия  
Дата: 16.05.08 03:35
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Это все работает.


Отличие присланного примера от реальной программы вот в чем:
<select id="CODE" size="1" .requred style="width:100px"><include src="dict:2:1"/></select>

И по HLN_LOAD_DATA, я отдаю реальное содержимое этого combo. Содержимое этого списка генерится из "справочника" лежащего в БД программы.
... << RSDN@Home 1.2.0 alpha rev. 774>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.