Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Ср авг 23, 2017 6:36 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 87 сообщений ]  На страницу Пред. 1 2 3 4 5 6 След.
Автор Сообщение
 Заголовок сообщения: Re: Excel в Kolibri
СообщениеДобавлено: Вс окт 05, 2008 4:15 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пт янв 27, 2006 3:06 pm
Сообщения: 1070
Цитата:
3) - я думаю, это фича.

Ну да, представляю: человек пришел из екселя, не поленился - набрал длинющую формулу - и по привычке стрелочкой переместился на соседнюю ячейку - и тут пошел мат-перемат :)


Вернуться к началу
 Заголовок сообщения: Re: Excel в Kolibri
СообщениеДобавлено: Пн окт 06, 2008 1:56 am 
Не в сети

Зарегистрирован: Ср июн 04, 2008 10:16 pm
Сообщения: 174
Часть недостатков устранены (то, что отмечено на картинках).

Leency писал(а):
и второе - попытка объединить control-c и control-х

Принято :)

Скроллинг колесиком, "отзывчивые" полосы прокрутки и сохранение текста без нажатия "Enter" в разработке.


Вложения:
table-0.88.7z [15.32 КБ]
118 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Excel в Kolibri
СообщениеДобавлено: Пн окт 06, 2008 3:29 am 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4093
А программа всё лучше и лучше)))

Кстати, оказывается что горизонтальные стрелки - это 0x1A / 0x1B
Относительно мелькания окна при прокрутке - у меня было тоже самое в Эолайте. Уже дошло до таааких ухищрений, пока Марио не просветил что мелькание списка - результат того что вначале рисуется белый фон, а потом выводится всё остальное. Оказывается чтобы не мелькало надо чтобы всё выводилось по строчке - вначале строка 1, потом рисуется строка 2 и т.д. Тогда мелькание будет намооого меньше.
Там, где на рисунке обведено - неплохо бы сделать по-центру.
Да... ещё очень хочется посмотреть свежие исходники, ато старые править как-то не труъ :)


Вложения:
kiylo.PNG
kiylo.PNG [ 1.86 КБ | 4014 просмотров ]

_________________
Через тернии к звездам
Вернуться к началу
 Заголовок сообщения: Re: Excel в Kolibri
СообщениеДобавлено: Пн окт 06, 2008 6:32 am 
Не в сети
Аватара пользователя

Зарегистрирован: Чт мар 01, 2007 4:16 pm
Сообщения: 426
> Оказывается чтобы не мелькало надо чтобы всё выводилось по строчке - вначале строка 1, потом рисуется строка 2 и т.д. Тогда мелькание будет намооого меньше.
Полагаю что тогда его не будет вообще, а еще лучше использовать "буфер" и отрисовывать в него, когда изображение будет полностью построено вывести его на экран. Не гуманно по отношению к памяти.

..bw


Вернуться к началу
 Заголовок сообщения: Re: Excel в Kolibri
СообщениеДобавлено: Пн окт 06, 2008 6:39 am 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4093
Будет мелькание, но даже в Кьему без акселератора kaqemu его будет очень сложно заметить.
А рисовать в буфер, а потом выводить сложно, учитывая что тогда большую часть проги придётся переписать с нуля. Если я не ошибаюсь, только KFAR сейчас такое умеет.

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Re: Excel в Kolibri
СообщениеДобавлено: Пн окт 06, 2008 11:40 am 
Не в сети
Аватара пользователя

Зарегистрирован: Чт мар 01, 2007 4:16 pm
Сообщения: 426
И тут оффтопом занялись :-).
Собственно - один раз написал и используй этот код пока не надоест.

..bw


Вернуться к началу
 Заголовок сообщения: Re: Excel в Kolibri
СообщениеДобавлено: Пн окт 06, 2008 4:53 pm 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 690
Может помочь ещё и следующее (http://kolibrios.org/?p=Documentation&s ... ons&sfp=00):
  • edx = 0xXYRRGGBB, где:
    • X = DCBA (биты)
      • C = 1 - не закрашивать рабочую область при отрисовке окна
Используется в KFAR, Tinypad. Суть в том, что если программа рисует *всё* в окне сама - ОС нет смысла заливать фон при вызове 0-й функции (из-за чего и наблюдается фликеринг)

_________________
in code we trust


Вернуться к началу
 Заголовок сообщения: Re: Excel в Kolibri
СообщениеДобавлено: Пн окт 06, 2008 11:41 pm 
Не в сети

Зарегистрирован: Ср июн 04, 2008 10:16 pm
Сообщения: 174
Leency, вот исходники текущей версии.


Вложения:
excel-src.7z [44.07 КБ]
118 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Excel в Kolibri
СообщениеДобавлено: Ср окт 08, 2008 11:33 pm 
Не в сети

Зарегистрирован: Ср июн 04, 2008 10:16 pm
Сообщения: 174
Следующий вариант: добавлена прокрутка колесиком, сохранение текста при выделении другой ячейки (не нужно больше нажимать Enter, а чтобы отменить ввод, нажмите Escape).

mike.dld писал(а):
если программа рисует *всё* в окне сама - ОС нет смысла заливать фон при вызове 0-й функции (из-за чего и наблюдается фликеринг)

Сделал, помогло.

bw писал(а):
еще лучше использовать "буфер" и отрисовывать в него, когда изображение будет полностью построено вывести его на экран.

Этот прием годится не для всех приложений, так как приходится переписывать процедуры рисования всех примитивов (в том числе вывода текста).

Leency писал(а):
Кстати, оказывается что горизонтальные стрелки - это 0x1A / 0x1B

Leency писал(а):
Там, где на рисунке обведено - неплохо бы сделать по-центру.

Исправил.


Вложения:
Комментарий к файлу: программа+исходники
table-0.89.7z [44.55 КБ]
118 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Excel в Kolibri
СообщениеДобавлено: Чт окт 09, 2008 12:33 am 
Не в сети
Аватара пользователя

Зарегистрирован: Чт мар 01, 2007 4:16 pm
Сообщения: 426
> Этот прием годится не для всех приложений, так как приходится переписывать процедуры рисования всех примитивов (в том числе вывода текста).
Для всех. Просто не нужно, каждый раз, выделять буфер вновь и перерисовавать его полностью. Пусть он остается и ты просто дописываешь в него изменения, а после выводишь буфер на экран. При этом нет необходимости выводить весь буфер на экран, можешь вывести тольку ту часть, в которой произошли изменения. Да, это усложняет задачу и можно, в большинстве случаев, обойтись без такой особенности.

..bw


Вернуться к началу
 Заголовок сообщения: Re: Excel в Kolibri
СообщениеДобавлено: Чт окт 09, 2008 4:17 am 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4093
1. Уменьшил перерисовку окна при перемотке колёсиком, одновременно успростил код.

2. Таки поставил стрелки на место)

3. При правке текста в ячейке, сделал так что текст не подпрыгивает вверх. Обнаружил баг: из-за того что размер ячеек можно менять, строка 135
kos_WriteTextToWindow(editbox_x, editbox_y+3,0x80,0,edit_text,0);
должна выглядеть так:
kos_WriteTextToWindow(editbox_x, editbox_h/2-3+editbox_y,0x80,0,edit_text,0);

4. Строка if (redraw) draw_window();
осталась для меня загадкой. Зачем переменная если можно просто вместо redraw=1 вставить draw_window().
Это сделано для того чтобы окно не перерисовывалось 2 раза?

Кстати, везде используется draw_window(); - это не труъ. Дожно быть dwaw_grid(); или что-то в этом роде - перерисовка только ячеек и полос прокрутки без перерисовки всего окна - так будет намного быстрее. Далее, надо сделать вывод сетки полосами.
ИМХО надо дофиксить баги и заняться этим...


Вложения:
table-0.89b.zip [69.51 КБ]
120 скачиваний

_________________
Через тернии к звездам
Вернуться к началу
 Заголовок сообщения: Re: Excel в Kolibri
СообщениеДобавлено: Чт окт 09, 2008 7:59 pm 
Не в сети

Зарегистрирован: Ср июн 04, 2008 10:16 pm
Сообщения: 174
Leency, спасибо за помощь в разработке.

Leency писал(а):
4. Строка if (redraw) draw_window();осталась для меня загадкой. Зачем переменная если можно просто вместо redraw=1 вставить draw_window().Это сделано для того чтобы окно не перерисовывалось 2 раза?

Эта строка больше не нужна, а раньше, действительно, служила для однократной перерисовки.


Вернуться к началу
 Заголовок сообщения: Re: Excel в Kolibri
СообщениеДобавлено: Пт окт 10, 2008 11:58 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт янв 27, 2006 3:06 pm
Сообщения: 1070
прямоугольник под панелью сохранения\загрузки файлов нужно расширить на 1 пиксел вправо и вниз


Вернуться к началу
 Заголовок сообщения: Re: Excel в Kolibri
СообщениеДобавлено: Вс окт 12, 2008 9:48 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4093
dword wi = WND_W, he = WND_H;
надо заменить на
int wi = WND_W, he = WND_H;

т.к. из-за строчки
he -= kos_GetSkinHeight() + MENU_PANEL_HEIGHT;
прога на маленьких размерах окна вылетает.

После
kos_DefineAndDrawWindow(10,40,WND_W,WND_H,0x33,0x40FFFFFF,0,0,(Dword)"Table v0.89b");
надо вставить код
if (he + MENU_PANEL_HEIGHT<= 8)
{
kos_WindowRedrawStatus(2);
return;
}
или что-то типа этого, похожий код ДО рисования окна убрать, он тоже приводит к вылетанию на маленьких размерах.

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Re: Excel в Kolibri
СообщениеДобавлено: Вс окт 12, 2008 10:24 pm 
Не в сети

Зарегистрирован: Ср июн 04, 2008 10:16 pm
Сообщения: 174
Heavyiron, Leency
Исправлено :)


Вложения:
table-0.89c.7z [45.5 КБ]
116 скачиваний
Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 87 сообщений ]  На страницу Пред. 1 2 3 4 5 6 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB