Heavyiron wrote:
Кстати, еще и баг заметил: если поперемещать немного полосы прокрутки - они исчезают вместе с нумерацией ячеек.
Из пожеланий к самой программе:
1) скролинг колесом мыши;
2) немного более отзывчивые полосы прокрутки (орисовка по мере передвижения, а не по отпусканию мыши), как, например в Eolite или в тинипаде;
3) чтобы поставил курсор в нужную ячейку, набрал значение и после этого не нужно было нажимать Enter. А теперь стоит нажать стрелку или клацнуть мышкой по другой ячейке и набранное ранее стирается.
1) - я уже говорил, думаю сделает)
2) - согласен, я так понял полосы были прикручены на скорую руку
3) - я думаю, это фича.
Я решил пойти дальше советов

Посмотрел код... Первое:
Quote:
//Сейчас после схлопывания окна в заголовок прога вылетает.
//Потому надо добавить вот такую строку в draw_window(), сразу после отрисовки окна
IF (Form.height==skin_width+3) {WindowRedrawStatus(2); return;}
//Тогда если окно свёрнуто в заголовок - ничего не рисутся.
и второе - попытка объединить control-c и control-х, для С-- такой код работал бы:
Code:
case 03: // control-c
case 24: // control-x
{
if (ctrl)
{
//rtlDebugOutString("control-c!");
int i, j, x0, y0;
freeBuffer();
buf_col = abs(sel_end_x - sel_x) + 1;
buf_row = abs(sel_end_y - sel_y) + 1;
x0 = min(sel_x, sel_end_x);
y0 = min(sel_y, sel_end_y);
buf_old_x = x0;
buf_old_y = y0;
buffer = (char***)allocmem(buf_col * sizeof(char**));
for (i = 0; i < buf_col; i++)
{
buffer[i] = (char**)allocmem(buf_row * sizeof(char*));
for (j = 0; j < buf_row; j++)
{
if (cells[i + x0][j + y0])
{
//вот тут только отличие - это для control-c
if (keyCode==03)
{
buffer[i][j] = (char*)allocmem(strlen(cells[i + x0][j + y0]));
strcpy(buffer[i][j], cells[i + x0][j + y0]);
}
////а это для control-x
else
{
buffer[i][j] = cells[i + x0][j + y0];
cells[i + x0][j + y0] = NULL;
}
}
else
buffer[i][j] = NULL;
}
}
if (keyCode==24) calculate_values(); //!!!!!!!!!!
draw_window();
break;