О, да. Про js-то я и забыл. Можно вообще обойтись без монструозных офисов и зубодробительных VBA. И, кстати, даже и без кнопок. Всё будет происходить на полном автомате. Правда не очень понятно как получить binary файл без GET запроса с последующим выбором файла для сохранения. Но это уже мелочи.Shaos wrote:А на JS не проще будет такое накодить и повесить где-нить у нас на недопц?
Win32 вопросы
Moderator: Shaos
-
- Senior
- Posts: 185
- Joined: 07 Aug 2006 10:18
-
- Admin
- Posts: 24083
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
в текстовое окошко можно вывести в хексе - чтобы потом копипастить и программатором в пзу...bar wrote:О, да. Про js-то я и забыл. Можно вообще обойтись без монструозных офисов и зубодробительных VBA. И, кстати, даже и без кнопок. Всё будет происходить на полном автомате. Правда не очень понятно как получить binary файл без GET запроса с последующим выбором файла для сохранения. Но это уже мелочи.Shaos wrote:А на JS не проще будет такое накодить и повесить где-нить у нас на недопц?
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
-
- Admin
- Posts: 24083
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
ну он поди hex-формат тоже прожуёт, не?Lavr wrote:Каким нафех программатором?Shaos wrote:в текстовое окошко можно вывести в хексе - чтобы потом копипастить и программатором в пзу...Оно потом в модель "Протеуса" в ПЗУ подставляется -
и прогон тестов...

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
-
- Admin
- Posts: 24083
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
-
- Admin
- Posts: 24083
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
хотя квота на сайте просит стошечку в год (но триста за два года) - это ещё терпимоLavr wrote:Бабки ашаленные... они вощще апупели...

P.S. ха - по кнопке NEXT они уже совсем иную цифру показывают - почти штуку, да пошли они в баню с такими ценами

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Senior
- Posts: 185
- Joined: 07 Aug 2006 10:18
Во. Оно конечно не полнофункционально. Лишь табличка с возможностью редактирования. Да и табличку бы не помешало покрасивше сделать. Но у меня ff почему-то падает, когда я пытаюсь в firebug'е в DOM модели поковыряться. А так, наизусть, я не помню всех этих HTML-атрибутов и CSS-стилей.
Но и тем не менее единички на нулики и обратно можно менять в один клик. Все данные при этом хранятся построчно в глобальной переменной data -- в двумерном массиве.
tmp.html:
tmp.js:
UPD. идентацию перекосило. заменил \t на пробелы -- вродь ничего.
Но и тем не менее единички на нулики и обратно можно менять в один клик. Все данные при этом хранятся построчно в глобальной переменной data -- в двумерном массиве.
tmp.html:
Code: Select all
<!DOCTYPE HTML> <!-- blah-blah-blah -->
<html>
<head>
<script language="javascript" type="text/javascript" src="tmp.js"></script>
</head>
<body>
<button onclick="make_table(16, 16)">Make table</button>
<table></table>
</body>
</html>
Code: Select all
/* place_for_table: xpath-expression for node that will be replaced with newly
* created table*/
var place_for_table = "/html/body/table";
var true_fg_color = "#000000";
var true_bg_color = "#ffffff";
var false_fg_color = "#ffffff";
var false_bg_color = "#000000";
var table_width = 0, table_height = 0;
var data = new Array();
var hex_cells = new Array();
function update_hex(row)
{
var i, num = 0;
for(i = 0; i < table_width; i ++) {
num *= 2;
num += data[row][i];
}
hex_cells[row].firstChild.nodeValue = "0x" + num.toString(16);
}
function on_cell_click(event, row, col)
{
var td, value;
td = event.target;
value = td.firstChild.nodeValue;
if(value == 0) {
td.firstChild.nodeValue = "1";
td.style.backgroundColor = true_bg_color;
td.style.color = true_fg_color;
data[row][col] = 1;
} else {
td.firstChild.nodeValue = "0";
td.style.backgroundColor = false_bg_color;
td.style.color = false_fg_color;
data[row][col] = 0;
}
update_hex(row);
}
function make_on_cell_click_handler(row, col)
{
return function (event) {
on_cell_click(event, row, col);
}
}
function make_editbox(chars)
{
var input = document.createElement("input");
input.type = "text";
input.value = "";
input.size = chars;
return input;
}
function make_tr(bgcolor, id)
{
var tr = document.createElement("tr");
if(bgcolor)
tr.style.backgroundColor = bgcolor;
if(id)
tr.id = id;
return tr;
}
function make_row(n, width)
{
var tr, td, row_name;
data[n] = new Array();
tr = make_tr("#e1e1e1");
/* Label */
td = document.createElement("td");
td.appendChild(make_editbox(8));
tr.appendChild(td);
/* Bits */
for(var i = 0; i < width; i ++) {
if(i != 0 && i % 8 == 0) {
td = document.createElement("td");
td.appendChild(document.createTextNode(""));
tr.appendChild(td);
}
td = document.createElement("td");
td.appendChild(document.createTextNode("0"));
data[n][i] = 0;
td.style.backgroundColor = false_bg_color;
td.style.color = false_fg_color;
td.addEventListener("click", make_on_cell_click_handler(n, i));
tr.appendChild(td);
}
/* hex */
td = document.createElement("td");
td.appendChild(document.createTextNode(""));
tr.appendChild(td);
hex_cells[n] = td;
update_hex(n);
return tr;
}
function make_table(width, height)
{
function make_header_0()
{
var tr, th, input;
tr = make_tr();
th = document.createElement("th");
th.width = 100;
tr.appendChild(th);
for(var i = 0; i < width; i ++) {
if(i != 0 && i % 8 == 0) {
th = document.createElement("th");
tr.appendChild(th);
}
th = document.createElement("th");
th.align = "center";
tr.appendChild(th);
}
td = document.createElement("th");
td.appendChild(document.createTextNode("Hex"));
tr.appendChild(td);
return tr;
}
function make_header()
{
var tr, td, input;
tr = make_tr("#818181");
td = document.createElement("td");
td.appendChild(document.createTextNode("asdf"));
tr.appendChild(td);
for(var i = 0; i < width; i ++) {
if(i != 0 && i % 8 == 0) {
td = document.createElement("td");
td.appendChild(document.createTextNode(""));
tr.appendChild(td);
}
td = document.createElement("td");
td.appendChild(make_editbox(4));
tr.appendChild(td);
}
td = document.createElement("td");
td.appendChild(document.createTextNode("Hex"));
tr.appendChild(td);
return tr;
}
var table = document.createElement("table");
table_width = width;
table_height = height;
table.setAttribute("cellspacing", "1");
table.setAttribute("cellpadding", "4");
table.border = 0;
var body = document.createElement("tbody");
table.appendChild(body);
body.appendChild(make_header());
for(var i = 0; i < height; i ++) {
body.appendChild(make_row(i, width));
}
var node_to_rplce = document.evaluate(
place_for_table, document, null,
XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
node_to_rplce.parentNode.replaceChild(table, node_to_rplce);
}
-
- Admin
- Posts: 24083
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
У меня это выглядит вот так:

(включен режим - масштаб: 50%)
По кликам ничего в таблице не меняет, об ошибках - также ничего не говорит....
PS. Я - со всем уважением к вашей квалификации, джентльмены, но JS -
это путь немного не туда.
Мне не страшен "выхлоп" в HEX - я вполне с удовольствием порой
пользуюсь "Прекрасным ассемблером К580ВМ80" на JS, т.к. есть утилиты
HEX2BIN и BIN2HEX.
Но с учетом того, что BIN-прошивку ПЗУ надо втаскивать на редакцию,
мы, получается, заменяем один комплект неудобных программ другим.
PPS. На работе под Firefox/3.6.25 не заработало совсем...

(включен режим - масштаб: 50%)
По кликам ничего в таблице не меняет, об ошибках - также ничего не говорит....

PS. Я - со всем уважением к вашей квалификации, джентльмены, но JS -
это путь немного не туда.
Мне не страшен "выхлоп" в HEX - я вполне с удовольствием порой
пользуюсь "Прекрасным ассемблером К580ВМ80" на JS, т.к. есть утилиты
HEX2BIN и BIN2HEX.
Но с учетом того, что BIN-прошивку ПЗУ надо втаскивать на редакцию,
мы, получается, заменяем один комплект неудобных программ другим.
PPS. На работе под Firefox/3.6.25 не заработало совсем...

iLavr
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Вот этот совет мне попадался в Интернете до того, как я задал вопрос здесь.ALS wrote:В свойствах Columns для каждой колонки выставить MaxWidth=30,
MinWidth=30 и Width=30 (ну или любое другое значение).
Попадался он на сайте Делфи, и похоже, что он верный...
Вот только я никак не соображу, как это в Win32 сделать...

Width у меня выставляется вот так:
Call SendMessage(.hWnd, LVM_SETCOLUMNWIDTH, ColumnIndex - 1, ByVal Style)
а вот для MaxWidth и для MinWidth я, похоже, не знаю нужной константы...
Придётся ковырять *.h-файлы Билдера... как я это не люблю, когда не знаю,
что искать... но поищу SETCOLUMNWIDTH может остальное найдётся рядом...

Last edited by Lavr on 05 Sep 2012 12:38, edited 1 time in total.
iLavr
-
- Senior
- Posts: 123
- Joined: 07 Aug 2012 11:11
- Location: Севастополь
Да, я, похоже, протупил... Почему-то при виде сочетания "List View control" я автоматом решил, что речь идет о делфи.
А о заголовке сообщения забыл (
ЗЫ
Так, в порядке бреда - есть параметры LVSCW_AUTOSIZE и LVSCW_AUTOSIZE_USEHEADER. С ними не пробовали "поиграться" ?
А о заголовке сообщения забыл (
ЗЫ
Так, в порядке бреда - есть параметры LVSCW_AUTOSIZE и LVSCW_AUTOSIZE_USEHEADER. С ними не пробовали "поиграться" ?
Last edited by ALS on 05 Sep 2012 12:39, edited 1 time in total.
-
- Senior
- Posts: 185
- Joined: 07 Aug 2006 10:18
А в каком браузере, если не секрет?Lavr wrote:По кликам ничего в таблице не меняет, об ошибках - также ничего не говорит....
NoScript? AdBlock? Сей код, на самом деле, по большей части копипаст из моего скрипта фиксящего ie-вёрстку некоего сайта, который у меня не функционировал в ff. И если я не ошибаюсь, тот скрипт создавался примерно во времена ff 3.6. То есть оно весьма вряд ли может не работать в ff 3.6PPS. На работе под Firefox/3.6.25 не заработало совсем...
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Да какой секрет - я уж зарекламировал этот браузер тут!bar wrote:А в каком браузере, если не секрет?

многократно заругали:"Опера9.64".
Но вот почему под Firefox/3.6.25 не заработало совсем - меня неподецки
удивило!
А у меня в Firefox не появилось ваабще ничего!bar wrote:Но у меня ff почему-то падает, когда я пытаюсь в firebug'е в DOM модели поковыряться.

JS - включен, я проверил.
iLavr