GMC Bulgaria

Здравейте ( Вход | Регистрация )

 
Reply to this topicStart new topic
Едноредов Textbox
яверт
коментар 20:46:52, 12-July-2011, Tuesday
Коментар #1


Засмян тъпоъгълник :D
Икона на група

Група: Администратор
Коментари: 1790
Регистриран: 21.07.08
Град: Това е място, населено с много хора. FPS: 60
Потребител № 1116



обект textbox, draw event
Код
if view_current==0
{
draw_set_halign(0);draw_set_font(uup);draw_set_valign(1);c(0);
if mouse_check_button_pressed(mb_left) {if kwetwores(x1,y1,x2,y2) u3=1;else {u3=0;uce=0;}}
//if noc==-1 draw_text(x2,(y1+y2)/2,nuc);else
draw_text(x1,y12,nuc);
if u3
     {
     draw_line(x1+string_width(string_copy(nuc,1,nwn)),y12-string_height("0")/2-2,x1+string_width(string_copy(nuc,1,nwn)),y12+string_height("0")/2+2);
     if uce    
          {
          draw_rectangle(x1+string_width(string_copy(nuc,1,nwn)),y12-string_height("0")/2-1,x1+string_width(string_copy(nuc,1,l4u)),y12+string_height("0")/2+2,0);
          if nwn!=l4u
              {
              var mn,mx;mn=min(nwn,l4u);mx=max(nwn,l4u);cai();
              draw_text(x1+string_width(string_copy(nuc,1,mn)),y12,string_copy(nuc,mn+1,mx-mn));
              c(0);
              }
          }
     if keyboard_check_pressed(ord("A"))&&keyboard_check(vk_control) {uce=1;l4u=0;nwn=string_length(nuc);}
     if keyboard_check_pressed(vk_home) {if keyboard_check(vk_shift)&&!uce {uce=1;l4u=nwn;}if !keyboard_check(vk_shift)&&uce {uce=0;} nwn=0;}
     if keyboard_check_pressed(vk_end) {if keyboard_check(vk_shift)&&!uce {uce=1;l4u=nwn;}if !keyboard_check(vk_shift)&&uce {uce=0;}nwn=string_length(nuc);}
     if !uce
        {
        if !keyboard_check_pressed(vk_control)
        if keyboard_check_pressed(vk_anykey) if (keyboard_lastkey>=65&&keyboard_lastkey<=90)||(keyboard_lastkey>=97&&keyboard_lastkey<=122)||(keyboard_lastkey>=192&&keyboard_lastkey<=255)||
        (keyboard_lastkey>=40&&keyboard_lastkey<=41)||(keyboard_lastkey>=91&&keyboard_lastkey<=93)||(keyboard_lastkey>=48&&keyboard_lastkey<=57)||keyboard_lastkey==32
              {if (zuc&&keyboard_lastkey>=48&&keyboard_lastkey<=57)||!zuc {nuc=string_insert(keyboard_lastchar,nuc,nwn+1);nwn+=1;} }
        if !keyboard_check(vk_shift)  {if keyboard_check_pressed(vk_left) nwn=max(0,nwn-1);if keyboard_check_pressed(vk_right) nwn=min(string_length(nuc),nwn+1);}
        else {if keyboard_check_pressed(vk_left) {uce=1;l4u=nwn;nwn=max(0,nwn-1);}if keyboard_check_pressed(vk_right) {uce=1;l4u=nwn;nwn=min(string_length(nuc),nwn+1);}}
        if keyboard_check_pressed(vk_backspace)&&nwn>0 {nuc=string_delete(nuc,nwn,1);nwn-=1;}
        if keyboard_check_pressed(vk_delete)&&nwn<string_length(nuc) {nuc=string_delete(nuc,nwn+1,1);}
        if keyboard_check_pressed(ord("V"))&&keyboard_check(vk_control) if clipboard_has_text()
            {
            var niz,fl,usl;niz=clipboard_get_text();fl=1;
            if zuc {for(b=0;b<=string_length(niz);b+=1){usl=1;for(q=48;q<=57;q+=1)if string_char_at(niz,b)==chr(q) usl=0;}if usl fl=0;}
            if fl {nuc=string_insert(niz,nuc,nwn+1);nwn+=string_length(niz);}
            }
        }
     else
        {
        if !keyboard_check_pressed(vk_control)
        if keyboard_check_pressed(vk_anykey) if (keyboard_lastkey>=65&&keyboard_lastkey<=90)||(keyboard_lastkey>=97&&keyboard_lastkey<=122)||(keyboard_lastkey>=192&&keyboard_lastkey<=255)||
        (keyboard_lastkey>=40&&keyboard_lastkey<=41)||(keyboard_lastkey>=91&&keyboard_lastkey<=93)||(keyboard_lastkey>=48&&keyboard_lastkey<=57)||keyboard_lastkey==32
              {if (zuc&&keyboard_lastkey>=48&&keyboard_lastkey<=57)||!zuc
                   {
                   uce=0;var mn,mx;mn=min(nwn,l4u);mx=max(nwn,l4u);nuc=string_delete(nuc,mn+1,mx-mn);nwn=mn;nuc=string_insert(keyboard_lastchar,nuc,nwn+1);nwn+=1;
                   }
              }
        if !keyboard_check(vk_shift)  {if keyboard_check_pressed(vk_left) {uce=0;nwn=max(0,nwn-1);}if keyboard_check_pressed(vk_right) {uce=0;nwn=min(string_length(nuc),nwn+1);}}
        else {if keyboard_check_pressed(vk_left) {nwn=max(0,nwn-1);}if keyboard_check_pressed(vk_right) {nwn=min(string_length(nuc),nwn+1);}}
        if keyboard_check_pressed(vk_backspace)||keyboard_check_pressed(vk_delete)
                   {
                   var mn,mx;mn=min(nwn,l4u);mx=max(nwn,l4u);nuc=string_delete(nuc,mn+1,mx-mn);nwn=mn;l4u=mn;
                   }
        if keyboard_check_pressed(ord("C"))&&keyboard_check(vk_control)
                   {
                   var mn,mx;mn=min(nwn,l4u);mx=max(nwn,l4u);clipboard_set_text(string_copy(nuc,mn+1,mx-mn));
                   }
        if keyboard_check_pressed(ord("X"))&&keyboard_check(vk_control)
                   {
                   var mn,mx;mn=min(nwn,l4u);mx=max(nwn,l4u);clipboard_set_text(string_copy(nuc,mn+1,mx-mn));nuc=string_delete(nuc,mn+1,mx-mn);nwn=mn;l4u=mn;
                   }
        if keyboard_check_pressed(ord("V"))&&keyboard_check(vk_control) if clipboard_has_text()
            {
            var niz,fl,usl;niz=clipboard_get_text();fl=1;
            if zuc {for(b=0;b<=string_length(niz);b+=1){usl=1;for(q=48;q<=57;q+=1)if string_char_at(niz,b)==chr(q) usl=0;}if usl fl=0;}
            if fl {var mn,mx;mn=min(nwn,l4u);mx=max(nwn,l4u);nuc=string_delete(nuc,mn+1,mx-mn);nwn=mn;l4u=mn;nuc=string_insert(niz,nuc,nwn+1);nwn+=string_length(niz);}
            }
        }
     }
draw_set_valign(0);draw_set_halign(0);cai();
}

скрипт sazdaitextbox
Код
var ind;ind=instance_create(0,0,textbox);
ind.x1=argument0;//координати
ind.y1=argument1;
ind.x2=argument2;
ind.y2=argument3;
ind.noc=argument4;//оставете го 0
ind.zuc=argument5;//дали да приема само цифри
ind.uup=argument6;//шрифтът, с който да се рисува
ind.nuc="";
ind.nwn=0;
ind.l4u=0;
ind.uce=0;
ind.u3=0;
ind.y12=(ind.y1+ind.y2)/2;
return ind;

скрипт cai
Код
draw_set_color(c_white);draw_set_alpha(1);

скрипт c
Код
draw_set_color(argument0);

скрипт kwetwores
Код
return (mouse_x>argument0&&mouse_y>argument1&&mouse_x<argument2&&mouse_y<argument3);

Създавате полетата за писане само със скрипта, който връща индексът на обекта. После може да вземете написаното от променливата nuc
пример за употреба:
Код
//create event
tb=sazdaitextbox(5,5,100,25,0,0,font1);
text="";
//step event
text=tb.nuc;
if keyboard_check_pressed(vk_enter) show_message("Написал си "+text);


Почти завършен е, поддържа ctrl+a ctrl+c ctrl+v, home, end.


--------------------
Цитат
Пешо:
4:53:46
Я недейти са карайти тука че да ни ва зашливйъ
Go to the top of the page
 
+Quote Post
Пешо
коментар 10:51:24, 13-July-2011, Wednesday
Коментар #2


Редовен бъбривко
Икона на група

Група: Администратор
Коментари: 661
Регистриран: 08.07.05
Град: Бургас
Потребител № 44



И какво не хареса толкова на CC_TEXTBOX [GM ComCtl]?

Моята версия е като цяло по-добра от твоята и е част от Ръководства и Примери - забодените теми:

http://gmc.pi-dev.com/index.php?act=atta...=post&id=22


--------------------
Go to the top of the page
 
+Quote Post
яверт
коментар 19:16:55, 13-July-2011, Wednesday
Коментар #3


Засмян тъпоъгълник :D
Икона на група

Група: Администратор
Коментари: 1790
Регистриран: 21.07.08
Град: Това е място, населено с много хора. FPS: 60
Потребител № 1116



Цитат(Пешо @ 11:51:24, 13-July-2011, Wednesday) *
И какво не хареса толкова на CC_TEXTBOX [GM ComCtl]?
Бях забравил за това нещо и затова направих каквото ми трябваше.


--------------------
Цитат
Пешо:
4:53:46
Я недейти са карайти тука че да ни ва зашливйъ
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 потребител(и) четат тази тема (1 гости и 0 скрити)
0 Потребител(и):

 



Олекотена версия Час: 00:08:22, 19.05.24