Cambio de posición de las ventanas

Embed Size (px)

DESCRIPTION

Guía para AutoPlay Media Studio

Citation preview

  • TUTORIALATUTOPLAYMEDIASTUDIO7

    TEMA:Cambiodeposicindelasventanas

    Autor:Jdyb

    Enestetutorialvamosaaprenderamoverlaventanadenuestromenalaposicindelapantallaquequeramos.

    Sepuedehacerdedosformasoautomticamenteoconlaintervencindelusuario,osvoyaexplicarlasdosformas.

    Parallevaracaboestatareahemosdetenerencuentalaresolucindepantallaquenovaaserlamismaentodoslosordenadoresyeltamaoquehayamoselegidodeventanaparaelmenqueesoporsupuestoquenovaavariardeunordenadoraotro.

    Unavezcomentadasestasdoscosasnosponemosmanosalaobra,vamosaempezarprimeroconlaformaquenoesautomtica.

    Loquevamosahaceresquelaventanasemuestreenlaposicinquequeramosnadamsiniciarselaaplicacin.

    Paraestaformaquerequierelaintervencindelusuarioloprimeroquedebemoshaceresqueelmenempieceporunaprimerapginaenlaqueselepreguntelaresolucindelordenadoralusuarioyluegoponemosunbotnquepongacontinuaroalgoparecidoparaqueempiecedeverdadelmenyesteyasemostrarenlaposicinelegida.

    Yolosejemploslosvoyahacersloconunparderesoluciones,lamayotraquenosesiserncorrectoslosdatosdeposicinasqueesmejorquelopruebenustedesmismos.Enestecasovamosaponerlaventanaenlaesquinainferiorizquierdadelapantalla.

    ElmtododeseleccindelaresolucinquevamosausarvaaserunComboBox.

  • Nuestraprimeraventanaenesenciatendraalgoparecidoaesto,sloqueseguramentemsbonitoqueelmo.

    Ahora lo que tenemos que hacer es crearnos un par de cosillastemporalesparasacarlosdatos.

    Noscreamos4InputObjetyunbotn

    AlosinputObjectlesdamoslosnombresquevoyaponeracontinuacin.Haciendodobleclicksobrecadaunodeellos.

  • EnesterecuadrodetextohemosdeponerloquevaaaparecerenelInputdeformapredeterminada.

    Tenemosquetener los4Inputyelbotnydebemosdeteneralgoparecidoaesto.

    Input4

    Input3

    Input2

    Input1

    ResolucindepantallaPosicindelaventana

  • HepuestoalladodecadaInputelnombrequedeeseobjetoparaqueluegosepamoshacerbienloquevieneacontinuacin.

    Todoestoestemporalparasacarlosdatos.

    Ahorahacemosdobleclicksobreelbotnquehepuestodesacarlosdatosynosvamosalapartedelosscripts.

    AhoradebemosdehacerclickenAddactionynosvamosa laseccindeWindow,enellaseleccionamoslafuncinWindow.GetPos.

  • Ahora le damos a siguiente y nos saldrn las opciones de estafuncinquedebemosderellenar.

    Enestecasolovamosadejarcomovienepordefecto.Ahoraexplicoporque.

    Pues bien, esta funcin lo que hace es sacar la posicin de unaventanaynosladevuelveenunaestructuraquetieneloscamposdelejeXyelejeY.Peroparapoderhallarlaposicinhemosdeindicarledequeventana se trata, ya que podemos tener varias abiertas en nuestroordenador (no tienen que ser del men, cualquier ventana vale), lasventanas en el ordenador estn numeradas y cmo no sabemos qunmerotendrladenuestromenqueeslaquequeremossaber,puesenvezdeponerelnmeroponemos lafuncinquedevuelvedichonmeroque es Application.GetWndHandle, y en vez de pasarle

  • parmetrosnoselospasamosparaquesesepaqueestamoshablandodelaventanaactual.Meexplico,endefinitivasetratadesaberqunmerodeventanadelordenador llevanuestromenpara saber laposicindeesta.

    Una hecho y comprendido esto hacemos que nos muestre laposicin de la ventana en funcin de las coordenadas y lo mostrarmediantelosInputObjectquepusimosantes.

    HacemosclickotravezsobreaddactionyvamosalacategorainputyseleccionamoslafuncinInput.SetText.

    Ledamosasiguienteparaseleccionarlasopciones.

  • EnobjectNameponemoselnombredelobjetoquedebedeserelprimerodelosquepusimosyentrecomillasporqueesunstring(comosemuestraenlacaptura).

    EnTextponemosresult.Xporquequeremosquenosmuestreelcontenido de la variable que usamos antes para sacar los datos deposicin.Lavariablequeusamossellamabaresult yresult esunaestructura (enC/C++)otablaenActionScript.Paraaccedera loscamposdedichaestructurausamoseloperadordeaccesoqueeselpunto(.).Parasaber los campos de las estructuras debemos demirar en la ayuda, nocreaisqueme lohe inventado.Yponemosresult.X sin las comillasporqueesunavariableynounacadenadecaracteres.

    AhorarepetimoselprocesodelInputparaescribir lacoordenadaYenelInput2.Ospongo lacapturaquedebemosdetenerpara imprimirlacoordenadaYdelaposicin.

  • Ahora hacemos click sobre add action de nuevo y vamos a lacategora de system y seleccionamos la funcinSystem.GetDisplayInfo que nos devuelve una tabla con laspropiedadesdelapantalla(resolucin(altoyancho)ycolor(queparaestecasonointeresa)).

  • Le damos a siguiente para poner las opciones que sonms bienpocas. Slo seleccionar el nombre de la variable del resultado, en estecasovamosausarpantalla

  • Ahorarepetiremoselprocesodelosinputdeantesaccediendoaloscamposdelaestructurapantallaquelosencontraremosenlaayuda.

    Ospongocomodeberaisdeponerlasopcionesdelosdosinput.

  • Ahoramuestro comodeberadequedar finalmente lapantalladelosscript.

  • Pongoelcdigoparaverlomsclaro.

    result = Window.GetPos(Application.GetWndHandle());

    Input.SetText("Input1", result.X);

    Input.SetText("Input2", result.Y);

    pantalla = System.GetDisplayInfo();

    Input.SetText("Input3", pantalla.Width);

    Input.SetText("Input4", pantalla.Height);

    Unavezqueyatenemosestohecholoquehemosdehaceresprevisualizarestaparte temporalque tenemoscon los4 inputyelbotnymover la ventana a laposicinquequeramosque semueva luego y ledamosalbotnsacardatosyapuntamos losdatosde laposicin juntocon la resolucin, la cerramos; hemos de hacer esto con todas lasresoluciones posibles que tengamos (para que funcione en el mayornmero posible de ordenadores) y vamos apuntando todos los datos.Cuandohayamos terminadodeapuntar losdatos con todas lasposiblesresolucionespasamosalsiguientepaso.

    Si ya tenemos todo apuntado podemos eliminar los 4 input y elbotn.

    AhoracontinuaremosconelComboBoxysubotncorrespondientequehicimosalprincipio.

    EnlaspropiedadesdelComboBoxpondremoslosiguiente.Comoyadijeslolovoyahacercondosresoluciones,vosotroshariselrestoperoquesepisquesehaceigual.

  • EnelComboBoxyanotenemosquehacernadamsahorapasamosalbotncontinuar.

    Hacemosdobleclicksobrelynosvamosalaseccindescriptsyledamosaaddaction.Yaadimosdosfuncionesquepongoacontinuacin.

  • Ahora debemos de hacer varios if con las resolucionescorrespondientes.Dentrodelosifaadiremoslafuncinsiguiente(laquehacemoverlaventanaconlosdatosdeposicinquetenamosapuntadosdependiendodelaresolucin).

    En la primera opcin que es el nmero de ventana ponemos lomismo que antes ya que no sabemos qu nmero de ventana que esnuestromenyusamoslafuncinApplication.GetWndHandlequeeslaquenoslodevuelve.

    Una vez que hemos terminado tendramos que tener algo comoestocontodaslasresolucionesyconlosifparacadaresolucin.

  • LaXylaYqueapuntamosantes

    Recordemosque1y2 (sincomillas)es loquepuseenel Itemdata del ComboBox y ahora lo pongo entre comillas simples porqueseleccionadoesunacadenadecaracteresyel ItemData tambinesunacadenadecaracteresyloindicoconlascomillas.

    Pongoelcdigodelbotnparaverloconmsclaridad.

    resol = ComboBox.GetSelected("ComboBox1");

    seleccionado = ComboBox.GetItemData("ComboBox1", resol);

    if seleccionado=='1' then Window.SetPos(Application.GetWndHandle(),479, 421);

    end if seleccionado=='2' then Window.SetPos(Application.GetWndHandle(),665, 323);

    end

  • Deberamosdeponerdespusdeeste cdigouna funcinqueesPage.Jump (Pgina inicial del menu);paraquecuandose ledacontinuarvayaa lapginaprincipaldenuestromenyestayaestesituadaenlaposicinquequeramos.

    Unavezqueyatenemosestoyahemosterminadolaprimeraformadehacerlo (en laque intervieneelusuario conelComboBox).Entoncesdebemos de tener esa pantallita inicial donde el usuario selecciona suresolucinyelbotncontinuar,quecuandoseapresionadodarpiea lapginaprincipaldelmenyestyaestarenlaposicinelegida.

    Pasemos a la forma automtica en la que no hace falta laintervencin del usuario y se inicia directamente la aplicacin en laposicinelegida.

    Para ello primero debemos de hacer la parte que dije que eratemporalde laprimera forma (lode los4 Input yelbotnde sacar losdatos)unavez tengamoshechoesoyapuntado todos losdatospuesyapodemoseliminarlapartetemporal.

    AhorahacemosclickenProjectyluegosobreactionsynossituamosen lapestaaOnStartup.Ledamosaaddactionyvamosa laseccindesystemyaadimoslafuncinquepongoacontinuacincon lasopcionescorrespondientes.

  • Pantalla es la variable en la que se almacena el resultado de lafuncinqueesunatablaoestructura.Lomismoqueantesen laprimeraforma.

    Miramos la ayuda para saber los nombres de los campos de laestructuraparapodertrabajar.

    Una vez tenemos esto aadimos los if parecidos a los de antes(anterior forma) uno para cada resolucin y dentro de ellos la mismafuncindeantes.

  • LaXylaYqueapuntamosantes

    Ahoraveremoscmoquedaranlosifusandoeloperadordeaccesopunto(.)ylosnombresdeloscampossacadosdelaayuda.

    Insistoquehaymsresoluciones,peroteneisqueapuntarlosdatosyhacerlosifcorrespondientesparacadaunadeellas.

  • Ahorapongoelcdigoparaqueosseamssencillodeverqueenlacaptura.

    Elandsignificaquesetienenquecumplirlasdoscondicionesparaqueentredentrodelif.

    pantalla = System.GetDisplayInfo();

    if pantalla.Width==1280 and pantalla.Height==1024 then Window.SetPos(Application.GetWndHandle(),479, 421);

    end

    Buenopuesesto yaest, ya esthechode lasdos formas ybienexplicado, repetirunavezmsquehayqueapuntar losdatoscon todaslas resoluciones para que funcione en todos los ordenadores aunquetengadiferenteresolucin.

  • Esperoqueoshayagustadoestetutorialyquetodoesteentendidobien.

    Sinnadamsquedecirmedespidohastalaprxima.

    TutorialbyJdyb.