Author |
Message |
bar
Senior
Joined: 07 Aug 2006 10:18 Posts: 185
|
О, да. Про js-то я и забыл. Можно вообще обойтись без монструозных офисов и зубодробительных VBA. И, кстати, даже и без кнопок. Всё будет происходить на полном автомате. Правда не очень понятно как получить binary файл без GET запроса с последующим выбором файла для сохранения. Но это уже мелочи.
|
04 Sep 2012 10:07 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22576 Location: Silicon Valley
|
в текстовое окошко можно вывести в хексе - чтобы потом копипастить и программатором в пзу...
|
04 Sep 2012 10:14 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Каким нафех программатором? Оно потом в модель "Протеуса" в ПЗУ подставляется -
и прогон тестов...
_________________ iLavr
|
04 Sep 2012 10:20 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22576 Location: Silicon Valley
|
ну он поди hex-формат тоже прожуёт, не?
|
04 Sep 2012 10:23 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
не... тока бинарник чистый - как реально в ПЗУ
_________________ iLavr
|
04 Sep 2012 10:25 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22576 Location: Silicon Valley
|
странно - я думал эта софтина должна за такие бабки поддержать все форматы, которые понимает любой программатор...
|
04 Sep 2012 10:34 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Бабки ашаленные... они вощще апупели...
_________________ iLavr
|
04 Sep 2012 10:43 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22576 Location: Silicon Valley
|
хотя квота на сайте просит стошечку в год (но триста за два года) - это ещё терпимо
P.S. ха - по кнопке NEXT они уже совсем иную цифру показывают - почти штуку, да пошли они в баню с такими ценами
|
04 Sep 2012 10:55 |
|
|
bar
Senior
Joined: 07 Aug 2006 10:18 Posts: 185
|
Во. Оно конечно не полнофункционально. Лишь табличка с возможностью редактирования. Да и табличку бы не помешало покрасивше сделать. Но у меня ff почему-то падает, когда я пытаюсь в firebug'е в DOM модели поковыряться. А так, наизусть, я не помню всех этих HTML-атрибутов и CSS-стилей.
Но и тем не менее единички на нулики и обратно можно менять в один клик. Все данные при этом хранятся построчно в глобальной переменной data -- в двумерном массиве.
tmp.html: tmp.js: | | | | Code: /* 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); }
| | | | |
UPD. идентацию перекосило. заменил \t на пробелы -- вродь ничего.
|
04 Sep 2012 15:59 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22576 Location: Silicon Valley
|
bar, ну ты крут
|
04 Sep 2012 17:49 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
У меня это выглядит вот так:
(включен режим - масштаб: 50%)
По кликам ничего в таблице не меняет, об ошибках - также ничего не говорит....
PS. Я - со всем уважением к вашей квалификации, джентльмены, но JS - это путь немного не туда. Мне не страшен "выхлоп" в HEX - я вполне с удовольствием порой пользуюсь "Прекрасным ассемблером К580ВМ80" на JS, т.к. есть утилиты HEX2BIN и BIN2HEX. Но с учетом того, что BIN-прошивку ПЗУ надо втаскивать на редакцию, мы, получается, заменяем один комплект неудобных программ другим.
PPS. На работе под Firefox/3.6.25 не заработало совсем...
_________________ iLavr
|
04 Sep 2012 20:50 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Вот этот совет мне попадался в Интернете до того, как я задал вопрос здесь.
Попадался он на сайте Делфи, и похоже, что он верный...
Вот только я никак не соображу, как это в Win32 сделать...
Width у меня выставляется вот так:
Call SendMessage(.hWnd, LVM_SETCOLUMNWIDTH, ColumnIndex - 1, ByVal Style)
а вот для MaxWidth и для MinWidth я, похоже, не знаю нужной константы...
Придётся ковырять *.h-файлы Билдера... как я это не люблю, когда не знаю,
что искать... но поищу SETCOLUMNWIDTH может остальное найдётся рядом...
_________________ iLavr
Last edited by Lavr on 05 Sep 2012 12:38, edited 1 time in total.
|
05 Sep 2012 12:06 |
|
|
ALS
Senior
Joined: 07 Aug 2012 11:11 Posts: 123 Location: Севастополь
|
Да, я, похоже, протупил... Почему-то при виде сочетания "List View control" я автоматом решил, что речь идет о делфи.
А о заголовке сообщения забыл (
ЗЫ
Так, в порядке бреда - есть параметры LVSCW_AUTOSIZE и LVSCW_AUTOSIZE_USEHEADER. С ними не пробовали "поиграться" ?
Last edited by ALS on 05 Sep 2012 12:39, edited 1 time in total.
|
05 Sep 2012 12:23 |
|
|
bar
Senior
Joined: 07 Aug 2006 10:18 Posts: 185
|
А в каком браузере, если не секрет?
NoScript? AdBlock? Сей код, на самом деле, по большей части копипаст из моего скрипта фиксящего ie-вёрстку некоего сайта, который у меня не функционировал в ff. И если я не ошибаюсь, тот скрипт создавался примерно во времена ff 3.6. То есть оно весьма вряд ли может не работать в ff 3.6
|
05 Sep 2012 12:34 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Да какой секрет - я уж зарекламировал этот браузер тут! И все меня уже многократно заругали:"Опера9.64". Но вот почему под Firefox/3.6.25 не заработало совсем - меня неподецки удивило!
А у меня в Firefox не появилось ваабще ничего!
JS - включен, я проверил.
_________________ iLavr
|
05 Sep 2012 12:43 |
|
|