Keresés

Új hozzászólás Aktív témák

  • lao ce

    aktív tag

    válasz faster #312 üzenetére

    faster, lenne egy kerdesem, szuksegem van a segitsegedre. kerulo megoldas is erdekel.

    feladat:
    csinalok egy formkitolto pilotot, hatter egy adott bitmap, foreground objektumok absolute pozicioban csucsulnek a megfelelo xy koordinatan, inaktiv grafikaval, mikor fokuszt kapnak akkor a keret atvaltozik 'rendes' editalhato kinezette, be lehet irni amit kell aztan lehet tovabbnavigalni (tab/enter/eger). adatbazisbol jon minden objektum neve, pozicioja, stb, szoval altalanos rutinok vannak/lesznek.

    mivel a comboboxnak nem lehet atrajzolni a keretet, azt talaltam ki hogy 'rateszek' ugyanarra a poziciora egy editet a megfelelo kerettel es a combot letakarom vele mikor nincs epp rajta a fokusz. ha rakerul a focus az editre, akkor edit=hidden, combo=visible (es rafokuszalok). aztan a combo onchange-re atadom az erteket az editboxnak, majd mikor a focus elment a visibility-t visszacserelem (edit=visible, combo=hidden).

    problema:
    mikor a comborol elmegy a focus az uj objektumra, lefut a rutin ami a combot hidden-re allitja es az editboxot visible-ra, de ettol az uj editboxban a kurzor eltunik (a highlight is).
    ez teljesen megakasztja a keyboardos bevitelt, mivel extrat kell kattintani az egerrel hogy visszakeruljon a kurzor a fokuszalt objektumra.
    a tovabbi tabokra megy tovabb a fokusz a kovetkezo editre mintha 'mise tortent volna es minden rendben.

    a kiserleteim eredmenye: ha hidden-re allitok egy objektumot ahol a fokusz VOLT az elozoekben (akar combo akar editbox), akkor az aktualisan fokuszalt objektum valahogy inaktivva valik. probaltam cselesen tovabbugralni a fokusszal par objektumon keresztul, de nem jott be.

    van valami otleted?

    itt a funkcio:
    megjegyzes: a comboboxok nevei cmb-vel, a takaro editek cam (a kamuflazsbol) betukkel kezdodnek.

    function aActivate (aObj) {
    // deactivate
    if (LastActiveObj != ''nothing'') {
    if (LastActiveObj.name.substring(0,3)==''cmb'') {
    // combobox: hide real combo and show editbox as a camouflage
    LastActiveObj.style.visibility=''hidden'';
    LastActiveObj = eval(''frmA.cam'' + LastActiveObj.name.substring(3,50));
    LastActiveObj.style.visibility=''visible'';
    } else {
    // editbox
    LastActiveObj.className = ''ina_'' + LastActiveObj.className.substring(4,20);
    }
    }

    // activate
    if (aObj.name.substring(0,3)==''cam'') {
    // combobox: hide camouflage editbox and show combobox
    aObj.style.visibility=''hidden'';
    aObj = eval(''frmA.cmb'' + aObj.name.substring(3,50));
    aObj.style.visibility=''visible'';
    aObj.focus();
    } else {
    // editbox
    aObj.className= ''act_'' + aObj.className.substring(4,50);
    LastActiveObj=aObj;
    }
    }



    [Szerkesztve]

    nicht kompot

Új hozzászólás Aktív témák