Вопрос по меню
-
Veliant, выложи где-нибудь свои скины для скачивания.
Щас выложу. У меня нова трабла хотел сделать панель цвета A60000(красный), но заместо этого панель сверху нужного цвета, а бОльшая часть - голубая. Из-за чего так?
P.S.
И ещё:
если использовать последний скин то придется некоторые проги переделать т.к. они рисуют компоненты прямо по заголовку (т.к. он шире обычного)
P.S.
И ещё:
если использовать последний скин то придется некоторые проги переделать т.к. они рисуют компоненты прямо по заголовку (т.к. он шире обычного)
Попоробуй цвет без нулевых компонетов, скажем A60101
Тоже сталкивался с таким глюком. Для панели можно выставить не любой цвет
Глюки с цветом панели связаны, видимо, с тем, что компоненты цвета уменьшаются/увеличиваются не по отдельности, а все вместе.
Пример кода:
В таком случае, если в EAX находилось число 0x00A60000, то станет оно равным 0x00A4FEFF, что, естественно, больше похоже на синий/голубой, а не на красный.
Чтобы исправить ситуацию, обычно делают, например, так:
Пример кода:
Code: Select all
sub eax,0x00010101
Чтобы исправить ситуацию, обычно делают, например, так:
Code: Select all
mov ecx,3
@@: dec al
jns .lp1
xor al,al
.lp1: ror eax,8
loop @b
shr eax,8
подскажите как можно панельку пошире сделать??? если конечно это возможно...
В @Panel наверно где то зарыто. скорее всего рядом с цветом.
AqwAS
Ты имеешь в виду по высоте? Пока что это невозможно. Ты, конечно, можешь увеличить высоту окна панели, но нижняя часть при этом отрисовываться не будет и панель будет выглядеть такой же узкой
Ты имеешь в виду по высоте? Пока что это невозможно. Ты, конечно, можешь увеличить высоту окна панели, но нижняя часть при этом отрисовываться не будет и панель будет выглядеть такой же узкой
mike.dld
Я спрашивал не тебя. Соответственно отвечать должен был автор.
И хватит уже играть роль суперцензора. Вот откроешь сайт http://www.kolibrios.org, вот там, пожалуйста, затыкай рот, кому хочешь и когда хочешь. Тем более это будет полностью твой сайт...
А здесь люди имеют право говорить все, что они думают. Если ты не перестанешь заниматься той деятельностью, которую ты развел здесь, то я могу и забанить тебя и без всяких опросов. Это крайняя мера и она будет использована лишь в последнюю очередь.
Veliant
Heavyiron
Для создания псевдотрехмерности панель рисуется не одним цветом. Сверху и снизу (по 2 линии) цвета изменены относительно цвета середины. Это приходиться учитывать, когда вы пытаетесь применять чистые цвета. Не для всех цветов правильно срабатывает изменение цвета.
AqwAS
А ты посмотри код внимательней и думаю, догадаешься, где поправить нужно, правда придется править код в нескольких местах сразу, так как панель состоит из нескольких частей.
Я спрашивал не тебя. Соответственно отвечать должен был автор.
И хватит уже играть роль суперцензора. Вот откроешь сайт http://www.kolibrios.org, вот там, пожалуйста, затыкай рот, кому хочешь и когда хочешь. Тем более это будет полностью твой сайт...
А здесь люди имеют право говорить все, что они думают. Если ты не перестанешь заниматься той деятельностью, которую ты развел здесь, то я могу и забанить тебя и без всяких опросов. Это крайняя мера и она будет использована лишь в последнюю очередь.
Veliant
Heavyiron
Для создания псевдотрехмерности панель рисуется не одним цветом. Сверху и снизу (по 2 линии) цвета изменены относительно цвета середины. Это приходиться учитывать, когда вы пытаетесь применять чистые цвета. Не для всех цветов правильно срабатывает изменение цвета.
AqwAS
А ты посмотри код внимательней и думаю, догадаешься, где поправить нужно, правда придется править код в нескольких местах сразу, так как панель состоит из нескольких частей.
в версии ме 0.75 кажется (точно не помню) была панелька linux-подобная... я много раз код отрисовки смотрел..., но разницу не нашёл... в чём-то конечно есть, но все игры с цифрами илши вообще ничего не давали или панель не работала...
простите конечно за глупые вопросы, но я только начал вникать в систему...
простите конечно за глупые вопросы, но я только начал вникать в систему...
Так я посмотрел код изменять нужно, в 4 местах. Это только чтобы окно рисовалось на другой размер, а уж высоту остальных деталей найдете сами, а то будет маразмом описывать все здесь.
1)
newline3:
add edx,[esi]
add esi,4
mov eax,38
int 0x40
add ecx,1*65536+1
cmp cx,15 - здесь рисуется центральная часть панели, начальное значение 5, отсюда 15-5=10
jb newline3
2)
stripe:
dd -0x010101
dd -0x010101
dd -0x020202
dd -0x010101
dd -0x000000
dd 0x000000
dd 0x010101
dd 0x020202
dd 0x010101
dd 0x010101
здесь должно быть столько строк сколько рисуется в первой процедуре. Они определяют псевдотрехмерность формы панели.
3)
set_variables:
pusha
mov [b_size_y],dword 38
cmp [graph_text],1
jne noy2
mov [b_size_y],dword 18 - тут нужно прописать высоту всей панели
noy2:
4)
no_def_width:
mov ebx,eax
mov [screenxy],ebx
shr ebx,16
sub ax,38
shl eax,16
mov ecx,eax
add ecx,0*65536+38
cmp [graph_text],1
jne no_text_1
mov cx, 18 - здесь желательно тоже прописать высоту
add ecx,20*65536 - а вот старшие 16 бит ecx определяют где будет начинаться окно, смотрите как это вычисляется в коде выше.
no_text_1:
mov eax, 0 ; DEFINE AND DRAW WINDOW
mov edx, [wcolor]
or edx, 0x01000000 ; do not draw the window
mov esi, [wcolor]
or esi, 0x01000000 ; unmovable window
mov edi, [wcolor]
int 0x40
Вот и все, вроде не особо сложно.
А для того чтобы было проще отлаживать код можно пользоваться отладчиком который написал Diamond.
http://meos.sysbin.com/viewtopic.php?t= ... sc&start=0
Тем более, что он написал для него весьма подробное руководство.
1)
newline3:
add edx,[esi]
add esi,4
mov eax,38
int 0x40
add ecx,1*65536+1
cmp cx,15 - здесь рисуется центральная часть панели, начальное значение 5, отсюда 15-5=10
jb newline3
2)
stripe:
dd -0x010101
dd -0x010101
dd -0x020202
dd -0x010101
dd -0x000000
dd 0x000000
dd 0x010101
dd 0x020202
dd 0x010101
dd 0x010101
здесь должно быть столько строк сколько рисуется в первой процедуре. Они определяют псевдотрехмерность формы панели.
3)
set_variables:
pusha
mov [b_size_y],dword 38
cmp [graph_text],1
jne noy2
mov [b_size_y],dword 18 - тут нужно прописать высоту всей панели
noy2:
4)
no_def_width:
mov ebx,eax
mov [screenxy],ebx
shr ebx,16
sub ax,38
shl eax,16
mov ecx,eax
add ecx,0*65536+38
cmp [graph_text],1
jne no_text_1
mov cx, 18 - здесь желательно тоже прописать высоту
add ecx,20*65536 - а вот старшие 16 бит ecx определяют где будет начинаться окно, смотрите как это вычисляется в коде выше.
no_text_1:
mov eax, 0 ; DEFINE AND DRAW WINDOW
mov edx, [wcolor]
or edx, 0x01000000 ; do not draw the window
mov esi, [wcolor]
or esi, 0x01000000 ; unmovable window
mov edi, [wcolor]
int 0x40
Вот и все, вроде не особо сложно.
А для того чтобы было проще отлаживать код можно пользоваться отладчиком который написал Diamond.
http://meos.sysbin.com/viewtopic.php?t= ... sc&start=0
Тем более, что он написал для него весьма подробное руководство.
огромное спасибо... буду пробовать...
все сделал... работает... теперь хочу картинку поставить на кнопку меню, но почемуто она не отображается... вместо картинки разноцветные точки!
AqwAS
Чтобы вывести картинку тебе придется использовать формат BMP и к тому же перевернуть картинку по горизонтали и вертикали пред использованием, плюс учитывать сдвиг, так как в начале идут служебные данные.
Либо есть возможность использовать библиотеку Павлюшина Евгения ASCL - в ней кроме вывода BMP можно выводить и GIF картинки и там не нужно манипулировать с картинкой. Правда описание не очень подробное, так что придется смотреть реализацию кода в приложенных демках. Сама библиотека ASCL включена в исходники Колибри. Правда, там она в нескольких версиях, просто в более поздних отсутствовали некоторые демо приложения.
Чтобы вывести картинку тебе придется использовать формат BMP и к тому же перевернуть картинку по горизонтали и вертикали пред использованием, плюс учитывать сдвиг, так как в начале идут служебные данные.
Либо есть возможность использовать библиотеку Павлюшина Евгения ASCL - в ней кроме вывода BMP можно выводить и GIF картинки и там не нужно манипулировать с картинкой. Правда описание не очень подробное, так что придется смотреть реализацию кода в приложенных демках. Сама библиотека ASCL включена в исходники Колибри. Правда, там она в нескольких версиях, просто в более поздних отсутствовали некоторые демо приложения.
Who is online
Users browsing this forum: No registered users and 0 guests