Autor
|
Tema: Controlando estados de los mensajes (Leído 3,350 veces)
|
Meta
|
Hola: Por fin a base de código y comiando desde C#, he logrado hacer que muestre en modo visual el F#, normalmente es en consola, pero bueno. Quiero lograr de alguna vez por todas, que al pulsar el botón abrir, en el momento que lo pulses, dice el mensaje "Abriendo...". Cuando la bandeja del lector se abrió del todo, dice, "Abierto.". Logro que abra y cierre la bandeja pero no que muestre los mensajes. ¿Alguna idea? Sigo dándole caña, me cansé. Código Visual F#:// En Opciones de Lector_Form_fs en el Explorador de soluciones. // Con el segundo botón del ratón, en Tipo de salida: Aplicación Windwos.
open System open System.Text open System.Windows.Forms // Añadir refrencias. open System.Drawing // Añadir referencias. open System.Runtime.InteropServices
// Importar librería o dll externo. [<DllImport("winmm.dll")>] extern int mciSendString(string lpstrCommand, StringBuilder lpstrReturnString, int uReturnLength, IntPtr hwndCallback)
let rt = StringBuilder(127)
// Método necesario para admitir el Diseñador. No se puede modificar // el contenido de este método con el editor de código. let form = new Form() let label_Mensaje = new Label() let groupBox_Bandeja = new GroupBox() let button_Abrir = new Button(); let button_Cerrar = new Button(); groupBox_Bandeja.SuspendLayout() form.SuspendLayout()
// groupBox_Bandeja groupBox_Bandeja.Controls.Add(button_Abrir) // Añadir botones en el groupBox_Bandeja.Controls.Add(button_Cerrar) // groupBox_Bandeja. groupBox_Bandeja.Location <- Point(22, 118) groupBox_Bandeja.Name <- "groupBox_Bandeja" groupBox_Bandeja.Size <- Size(227, 90) groupBox_Bandeja.TabIndex <- 0 groupBox_Bandeja.TabStop <- false groupBox_Bandeja.Text <- "Bandeja:"
// button_Abrir button_Abrir.Location <- Point(26, 39) button_Abrir.Name <- "button_Abrir" button_Abrir.Size <- Size(75, 23) button_Abrir.TabIndex <- 0 button_Abrir.Text <- "&Abrir" button_Abrir.UseVisualStyleBackColor <- true
// button_Cerrar button_Cerrar.Location <- Point(129, 39) button_Cerrar.Name <- "button_Cerrar" button_Cerrar.Size <- Size(75, 23) button_Cerrar.TabIndex <- 1 button_Cerrar.Text <- "&Cerrar" button_Cerrar.UseVisualStyleBackColor <- true
// label_Mensaje label_Mensaje.AutoSize <- true //label_Mensaje.Font <- Font("Microsoft Sans Serif", 36, FontStyle.Bold, GraphicsUnit.Point, ((byte)(0))) label_Mensaje.Location <- Point(12, 9) label_Mensaje.Name <- "label_Mensaje" label_Mensaje.Size <- Size(52, 55) label_Mensaje.TabIndex <- 1 label_Mensaje.Text <- "?" form.Controls.Add(label_Mensaje) // Añadir en el formulario.
// Crear formulario. let AutoScaleDimensions = new Size(6, 13) form.AutoScaleMode <- AutoScaleMode.Font form.BackColor <- Color.FromArgb(((int)(((byte)(114)))), ((int)(((byte)(54)))), ((int)(((byte)(161))))) // Color violeta. let ClientSize = new Size(284, 261) form.Controls.Add(groupBox_Bandeja) // Añadir en el formulario. form.Name <- "Form1" form.StartPosition <- FormStartPosition.CenterScreen form.Text <- "Visual F# 2017" groupBox_Bandeja.ResumeLayout(false) form.ResumeLayout(false) form.PerformLayout() //----------------------------------------------------------------------------------
// Abrir la bandeja. let mensajeA abr = label_Mensaje.Text <- "Abriendo..." let abr = label_Mensaje.Click.Add(mensajeA) Application.DoEvents() let button_Abrir_Click abrir = mciSendString("set CDAudio door open", rt, 127, IntPtr.Zero) |> ignore let abrir = button_Abrir.Click.Add(button_Abrir_Click) let mensajeAbierto2 ao = label_Mensaje.Text <- "Abierto." let ao = label_Mensaje.Click.Add(mensajeAbierto2)
// Cerrar la bandeja. let button_Cerrar_Click cerrar = mciSendString("set CDAudio door closed", rt, 127, IntPtr.Zero) |> ignore let cerrar = button_Cerrar.Click.Add(button_Cerrar_Click)
[<STAThread>] Application.Run(form) Saludos. PD: ¿Por qué Microsoft no hizo o hace una buena plantilla para crear formularios Windwos o WPF como se hace con C# y VB .net? Está dedicado a modo consola, pero en Visual, hay que programar todo.
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
PD: ¿Por qué Microsoft no hizo o hace una buena plantilla para crear formularios Windwos o WPF como se hace con C# y VB .net? Está dedicado a modo consola, pero en Visual, hay que programar todo. El hecho de que Visual Studio no provea un diseñador gráfico o visual designer para F# es algo que deja ver entre lineas que dicho lenguaje no ha sido creado con la intención de ser aplicado de esa forma, dicho de otro modo: no le estás dando el uso apropiado que se le debería dar a F#. Por lo general F# se suele utilizar en forma de scripts para la elaboración de algoritmos aritméticos complejos que acabarcan aplicaciones de ámbito científico o financiero, más que otra cosa. Simplemente, te estás complicando la vida de forma totálmente innecesaria escribiendo decenas de lineas de código (que se irán multiplicando por cientos) para construir los elementos de la interfaz de usuario con F#, cuando lo más sensato sería crear la interfaz de usuario con C# bajo tu tecnología favorita ( Windows Forms o WPF) y simplemente añadir una referencia a una librería desarrollada en F#, o añadir un script en F# a tu proyecto de C# para ejecutarlo con F# Interactive (fsi.exe), como prefieras. Quiero lograr de alguna vez por todas, que al pulsar el botón abrir, en el momento que lo pulses, dice el mensaje "Abriendo...".
Cuando la bandeja del lector se abrió del todo, dice, "Abierto.".
Logro que abra y cierre la bandeja pero no que muestre los mensajes.
¿Alguna idea? Volvemos a lo mismo... lee: Saludos.
|
|
« Última modificación: 4 Mayo 2018, 19:15 pm por Eleкtro »
|
En línea
|
|
|
|
Meta
|
Buenos días buen hombre: Lo he logrado. Lo dejo aquí por si alguien le pica la curiosidad algún lector o lectora. open System open System.Text open System.Windows.Forms // Añadir refrencias. open System.Drawing // Añadir referencias. open System.Runtime.InteropServices // Importar librería o dll externo. [<DllImport("winmm.dll")>] extern int mciSendString(string lpstrCommand, StringBuilder lpstrReturnString, int uReturnLength, IntPtr hwndCallback) let rt = StringBuilder(127) // Método necesario para admitir el Diseñador. No se puede modificar // el contenido de este método con el editor de código. let label_Mensaje = new Label ()let groupBox_Bandeja = new GroupBox ()let button_Abrir = new Button ();let button_Cerrar = new Button ();groupBox_Bandeja.SuspendLayout() form.SuspendLayout() // groupBox_Bandeja groupBox_Bandeja.Controls.Add(button_Abrir) // Añadir botones en el groupBox_Bandeja.Controls.Add(button_Cerrar) // groupBox_Bandeja. groupBox_Bandeja.Location <- Point(22, 118) groupBox_Bandeja.Name <- "groupBox_Bandeja" groupBox_Bandeja.Size <- Size(227, 90) groupBox_Bandeja.TabIndex <- 0 groupBox_Bandeja.TabStop <- false groupBox_Bandeja.Text <- "Bandeja:" // button_Abrir button_Abrir.Location <- Point(26, 39) button_Abrir.Name <- "button_Abrir" button_Abrir.Size <- Size(75, 23) button_Abrir.TabIndex <- 0 button_Abrir.Text <- "&Abrir" button_Abrir.UseVisualStyleBackColor <- true // this.button_Abrir.Click += new System.EventHandler(this.button_Abrir_Click); // button_Cerrar button_Cerrar.Location <- Point(129, 39) button_Cerrar.Name <- "button_Cerrar" button_Cerrar.Size <- Size(75, 23) button_Cerrar.TabIndex <- 1 button_Cerrar.Text <- "&Cerrar" button_Cerrar.UseVisualStyleBackColor <- true // label_Mensaje label_Mensaje.AutoSize <- true //label_Mensaje.Font <- Font("Microsoft Sans Serif", 36, FontStyle.Bold, GraphicsUnit.Point, ((byte)(0))) label_Mensaje.Location <- Point(12, 9) label_Mensaje.Name <- "label_Mensaje" label_Mensaje.Size <- Size(52, 55) label_Mensaje.TabIndex <- 1 label_Mensaje.Text <- "?" form.Controls.Add(label_Mensaje) // Añadir en el formulario. // Crear formulario. let AutoScaleDimensions = new Size (6, 13)form.AutoScaleMode <- AutoScaleMode.Font form.BackColor <- Color.FromArgb(((int)(((byte)(114)))), ((int)(((byte)(54)))), ((int)(((byte)(161))))) // Color violeta. let ClientSize = new Size (284, 261)form.Controls.Add(groupBox_Bandeja) // Añadir en el formulario. form.Name <- "Form1" form.StartPosition <- FormStartPosition.CenterScreen form.Text <- "Visual F# 2017" groupBox_Bandeja.ResumeLayout(false) form.ResumeLayout(false) form.PerformLayout() //---------------------------------------------------------------------------------- // Abrir la bandeja. button_Abrir.Click.Add(fun _a -> label_Mensaje.Text <- "Abriendo..." Application.DoEvents() mciSendString("set CDAudio door open", rt, 127, IntPtr.Zero) |> ignore label_Mensaje.Text <- "Abierto." ) // Cerrar la bandeja. button_Cerrar.Click.Add(fun _c -> label_Mensaje.Text <- "Cerrando..." Application.DoEvents() mciSendString("set CDAudio door closed", rt, 127, IntPtr.Zero) |> ignore label_Mensaje.Text <- "Cerrado." ) [<STAThread>] Application.Run(form)
Lo que no logro es la línea que lo dejé en C# no se como adaptarlo en F#, cambiar el tamaño de la fuente de un label. Gracias por las respuestas. PD: Todo lo de F# que has contado lo he leído, a pesar de ello, muchos por Internet hacen tonterías estas y soy de ellos. PD2: Probaré el leguaje R. Haber si logro hacer lo mismo. Son solo tonterías que hago. Pero antes, seguiré con F#, esta vez con WPF para variar.
|
|
« Última modificación: 4 Mayo 2018, 15:01 pm por Meta »
|
En línea
|
|
|
|
Serapis
|
Opino como Elektro.
...pero también opino que cada uno es libre de perder el tiempo como quiera, y si eso es lo que te gusta, allá tú...
Ser capaz de abrir la bandeja de la unidad óptica en 25 lenguajes de programación, es una manera estúpida (pero genuina) de perder el tiempo, porque al final todas ellas, acabarán llamando a la misma función del driver que controla la unidad...
|
|
|
En línea
|
|
|
|
Meta
|
Perder el tiempo, como me dijo una amiga psicoterapeuta, simplemente es experiencia. En mi caso probando de todo un poco.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Controlando Un Ciber
Hacking
|
1nfectØ
|
9
|
6,024
|
9 Agosto 2011, 19:20 pm
por MauroMasciar
|
|
|
Controlando la memoria RAM en Firefox
Software
|
madpitbull_99
|
9
|
5,296
|
21 Septiembre 2011, 20:56 pm
por xm1488
|
|
|
Programa en C controlando bluetooth
Hacking Mobile
|
patosick
|
0
|
3,300
|
12 Enero 2012, 18:18 pm
por patosick
|
|
|
Controlando Pc remotamente ??
Hacking
|
TrashAmbishion
|
6
|
4,881
|
19 Agosto 2015, 15:40 pm
por tonydemora
|
|
|
Cómo ver Estados de WhatsApp o leer mensajes en Facebook Messenger en secreto
Noticias
|
wolfbcn
|
0
|
2,491
|
28 Febrero 2017, 20:55 pm
por wolfbcn
|
|