nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 03:21



Reply to topic  [ 67 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next
Win32 вопросы 
Author Message
Senior

Joined: 07 Aug 2006 10:18
Posts: 185
Reply with quote
Post 
Shaos wrote:
А на JS не проще будет такое накодить и повесить где-нить у нас на недопц? ;)
О, да. Про js-то я и забыл. Можно вообще обойтись без монструозных офисов и зубодробительных VBA. И, кстати, даже и без кнопок. Всё будет происходить на полном автомате. Правда не очень понятно как получить binary файл без GET запроса с последующим выбором файла для сохранения. Но это уже мелочи.


04 Sep 2012 10:07
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
bar wrote:
Shaos wrote:
А на JS не проще будет такое накодить и повесить где-нить у нас на недопц? ;)
О, да. Про js-то я и забыл. Можно вообще обойтись без монструозных офисов и зубодробительных VBA. И, кстати, даже и без кнопок. Всё будет происходить на полном автомате. Правда не очень понятно как получить binary файл без GET запроса с последующим выбором файла для сохранения. Но это уже мелочи.


в текстовое окошко можно вывести в хексе - чтобы потом копипастить и программатором в пзу...

_________________
:dj: https://mastodon.social/@Shaos


04 Sep 2012 10:14
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
в текстовое окошко можно вывести в хексе - чтобы потом копипастить и программатором в пзу...

Каким нафех программатором? :o Оно потом в модель "Протеуса" в ПЗУ подставляется -
и прогон тестов...

_________________
iLavr


04 Sep 2012 10:20
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Lavr wrote:
Shaos wrote:
в текстовое окошко можно вывести в хексе - чтобы потом копипастить и программатором в пзу...

Каким нафех программатором? :o Оно потом в модель "Протеуса" в ПЗУ подставляется -
и прогон тестов...


ну он поди hex-формат тоже прожуёт, не? ;)

_________________
:dj: https://mastodon.social/@Shaos


04 Sep 2012 10:23
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
не... тока бинарник чистый - как реально в ПЗУ

_________________
iLavr


04 Sep 2012 10:25
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Lavr wrote:
не... тока бинарник чистый - как реально в ПЗУ


странно - я думал эта софтина должна за такие бабки поддержать все форматы, которые понимает любой программатор...

_________________
:dj: https://mastodon.social/@Shaos


04 Sep 2012 10:34
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Бабки ашаленные... они вощще апупели... :o

_________________
iLavr


04 Sep 2012 10:43
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Lavr wrote:
Бабки ашаленные... они вощще апупели... :o


хотя квота на сайте просит стошечку в год (но триста за два года) - это ещё терпимо ;)

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

_________________
:dj: https://mastodon.social/@Shaos


04 Sep 2012 10:55
Profile WWW
Senior

Joined: 07 Aug 2006 10:18
Posts: 185
Reply with quote
Post 
Во. Оно конечно не полнофункционально. Лишь табличка с возможностью редактирования. Да и табличку бы не помешало покрасивше сделать. Но у меня ff почему-то падает, когда я пытаюсь в firebug'е в DOM модели поковыряться. А так, наизусть, я не помню всех этих HTML-атрибутов и CSS-стилей.
Но и тем не менее единички на нулики и обратно можно менять в один клик. Все данные при этом хранятся построчно в глобальной переменной data -- в двумерном массиве.

tmp.html:
Code:
<!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>

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
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
bar, ну ты крут ;)

_________________
:dj: https://mastodon.social/@Shaos


04 Sep 2012 17:49
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
У меня это выглядит вот так:

Image
(включен режим - масштаб: 50%)

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


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


PPS. На работе под Firefox/3.6.25 не заработало совсем... :(

_________________
iLavr


04 Sep 2012 20:50
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
ALS wrote:
В свойствах Columns для каждой колонки выставить MaxWidth=30,
MinWidth=30 и Width=30 (ну или любое другое значение).

Вот этот совет мне попадался в Интернете до того, как я задал вопрос здесь.
Попадался он на сайте Делфи, и похоже, что он верный...

Вот только я никак не соображу, как это в 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
Profile
Senior
User avatar

Joined: 07 Aug 2012 11:11
Posts: 123
Location: Севастополь
Reply with quote
Post 
Да, я, похоже, протупил... Почему-то при виде сочетания "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
Profile WWW
Senior

Joined: 07 Aug 2006 10:18
Posts: 185
Reply with quote
Post 
Lavr wrote:
По кликам ничего в таблице не меняет, об ошибках - также ничего не говорит.... :(

А в каком браузере, если не секрет?

Quote:
PPS. На работе под Firefox/3.6.25 не заработало совсем...

NoScript? AdBlock? Сей код, на самом деле, по большей части копипаст из моего скрипта фиксящего ie-вёрстку некоего сайта, который у меня не функционировал в ff. И если я не ошибаюсь, тот скрипт создавался примерно во времена ff 3.6. То есть оно весьма вряд ли может не работать в ff 3.6


05 Sep 2012 12:34
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
bar wrote:
А в каком браузере, если не секрет?

Да какой секрет - я уж зарекламировал этот браузер тут! :lol: И все меня уже
многократно заругали:"Опера9.64".

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

А у меня в Firefox не появилось ваабще ничего! :o
JS - включен, я проверил.

_________________
iLavr


05 Sep 2012 12:43
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 67 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next

Who is online

Users browsing this forum: No registered users and 23 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.