Board.KolibriOS.org

Official KolibriOS board
It is currently Tue Jun 02, 2020 2:33 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 403 posts ]  Go to page Previous 112 13 14 15 1627 Next
Author Message
PostPosted: Mon Jul 30, 2012 4:17 pm 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1163
IgorA wrote:
Простых примеров скорее всего нет. Есть примеры которые есть используют сразу несколько элементов.

Ну или хотябы не самые сложные примеры.

_________________
я лишь учусь


Top
   
PostPosted: Mon Jul 30, 2012 6:43 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
У edit_box-а после вызова edit_box_set_text не пропадает выделение, если оно было до вызова.


Top
   
PostPosted: Wed Aug 01, 2012 11:24 am 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 821
0CodErr wrote:
У edit_box-а после вызова edit_box_set_text не пропадает выделение, если оно было до вызова.

Исправил в ревизии 2898


Top
   
 Post subject:
PostPosted: Fri Aug 17, 2012 9:27 am 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1163
В каком формате возвращает значение форма для ввода данных, с флагом ввода только цифр?

_________________
я лишь учусь


Top
   
 Post subject: Re:
PostPosted: Fri Aug 17, 2012 11:53 am 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 821
punk_joker wrote:
В каком формате возвращает значение форма для ввода данных, с флагом ввода только цифр?

Каким образом возвращает? Если подразумевается указатель text в структуре editbox, то там по указателю будет строка текста.
Вообще флаг ввода только цифр ничего не преобразовывает в числовой формат, он просто фильтрует попытки ввода не числовых символов.


Top
   
PostPosted: Fri Aug 17, 2012 12:22 pm 
Вообще можно сделать чтобы возвращалось целое число, но такой метод не гибкий и по идее выходит за рамки логической целесообразности.


Top
   
 Post subject:
PostPosted: Fri Aug 17, 2012 5:10 pm 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1163
Ну я так и думал насчет возвращаемого значения. И еще, есть у кого процедурка или макрос для преобразования этой строки в число? А то не хочется лишний раз велосипед изобретать, а учитывая мой опыт на фасме это дело может затянуться.

_________________
я лишь учусь


Top
   
PostPosted: Fri Aug 17, 2012 6:59 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 821
есть функция, только она для целочисленных значений (без плавающей точки)
Spoiler: Show
Code:
;input:
; buf - указатель на строку, число должно быть в 10 или 16 ричном виде
;output:
; eax - число
align 4
proc conv_str_to_int, buf:dword
   xor eax,eax
   push ebx ecx esi
   xor ebx,ebx
   mov esi,[buf]

   ;на случай если перед числом находятся пробелы
   @@:
   cmp byte[esi],' '
   jne @f
      inc esi
      jmp @b
   @@:

   ;определение отрицательных чисел
   xor ecx,ecx
   inc ecx
   cmp byte[esi],'-'
   jne @f
      dec ecx
      inc esi
   @@:

   cmp word[esi],'0x'
   je .load_digit_16

   .load_digit_10: ;считывание 10-тичных цифр
      mov bl,byte[esi]
      cmp bl,'0'
      jl @f
      cmp bl,'9'
      jg @f
         sub bl,'0'
         imul eax,10
         add eax,ebx
         inc esi
         jmp .load_digit_10
   jmp @f

   .load_digit_16: ;считывание 16-ричных цифр
      add esi,2
   .cycle_16:
      mov bl,byte[esi]
      cmp bl,'0'
      jl @f
      cmp bl,'f'
      jg @f
      cmp bl,'9'
      jle .us1
         cmp bl,'A'
         jl @f ;отсеиваем символы >'9' и <'A'
      .us1: ;составное условие
      cmp bl,'F'
      jle .us2
         cmp bl,'a'
         jl @f ;отсеиваем символы >'F' и <'a'
         sub bl,32 ;переводим символы в верхний регистр, для упрощения их последущей обработки
      .us2: ;составное условие
         sub bl,'0'
         cmp bl,9
         jle .cor1
            sub bl,7 ;convert 'A' to '10'
         .cor1:
         shl eax,4
         add eax,ebx
         inc esi
         jmp .cycle_16
   @@:
   cmp ecx,0 ;если число отрицательное
   jne @f
      sub ecx,eax
      mov eax,ecx
   @@:
   pop esi ecx ebx
   ret
endp


Top
   
PostPosted: Sat Aug 18, 2012 12:55 pm 
Offline
User avatar

Joined: Fri Jun 27, 2008 3:22 pm
Posts: 988
punk_joker

Например так.


Attachments:
hda_tester.7z [17.25 KiB]
Downloaded 246 times
Top
   
 Post subject:
PostPosted: Sun Aug 19, 2012 8:24 pm 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1163
Вопрос по option_box. Куда заноситсю значение? Если я правильно понимаю, то если пункт выбран, то возвращает значение 1, иначе 0. Но куда это значение возвращается?

_________________
я лишь учусь


Top
   
 Post subject:
PostPosted: Sun Aug 19, 2012 8:28 pm 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1163
Asper спасибо за исходничек, многое помог понять.

_________________
я лишь учусь


Top
   
 Post subject:
PostPosted: Thu Aug 23, 2012 8:05 am 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1163
Второй пост в вверх. Подскажите.

_________________
я лишь учусь


Top
   
PostPosted: Thu Aug 23, 2012 8:38 am 
http://websvn.kolibrios.org/filedetails ... ox_lib.mac
Spoiler: Show
Code:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Basic macros for use OptionBox                           ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

struc option_box point_gr,left,top,op_text_margin,op_size,color,border_color,text_color,text,op_text_length,flags

{        ;структура параметров для чек бокса
op_flag_en=10b
.option_group: dd point_gr
.left: dw left       ;+0 ;положение по х
.top:  dw top        ;положение по у
.ch_text_margin:  dd op_text_margin ;расстояние от прямоугольника чек бокса до надписи
.ch_size: dd op_size ;размер квадрата чек бокса, для примера 12
.color:   dd color   ;цвет внутри чекбокса
.border_color: dd border_color ;цвет рамки
.text_color:   dd text_color   ;цвет надписи
.text: dd text                 ;адрес в коде программы где расположен текст
.ch_text_length: dd op_text_length ;длинна строки с символами
.flags: dd flags+0   ; флаги
}


Quote:
.flags: dd flags+0 ; флаги


Top
   
PostPosted: Thu Nov 01, 2012 2:50 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Устанавливаю для скроллбара такие параметры:
Code:
scrollbar:
  .size_x         dw 15
  .start_x        dw 20
  .size_y         dw 300
  .start_y        dw 20
  .btn_high       dd 15
  .type           dd 1
  .max_area       dd 30
  .cur_area       dd 7
  .position       dd 0
  .bckg_col       dd 0xEEEEEE
  .frnt_col       dd 0xBBDDFF
  .line_col       dd 0
  .redraw         dd 0
  .delta          dw 0
  .delta2         dw 0
  .r_size_x       dw 0
  .r_start_x      dw 0
  .r_size_y       dw 0
  .r_start_y      dw 0
  .m_pos          dd 0
  .m_pos_2        dd 0
  .m_keys         dd 0
  .run_size       dd 0
  .position2      dd 0
  .work_size      dd 0
  .all_redraw     dd 1
  .ar_offset      dd 10

Если передвинуть ползунок до конца вниз, то .position = 24.
Теперь, если нажать на скроллбаре кнопку со стрелочкой вниз, то .position = 23.


Top
   
PostPosted: Mon Nov 19, 2012 8:01 am 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Должен ли edit_box терять фокус при нажатии на кнопку(событие с кодом 3)?


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 403 posts ]  Go to page Previous 112 13 14 15 1627 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 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 Limited