F sharp - Eventos de un button

 
Vista:
sin imagen de perfil
Val: 23
Ha mantenido su posición en F sharp (en relación al último mes)
Gráfica de F sharp

Eventos de un button

Publicado por Meta (12 intervenciones) el 04/05/2018 12:16:26
Hola:

Quiero saber como se controla los eventos de un botón. Quiero hacer mostrar mensajes y no puedo. Pero puedo abrir y cerrar la bandeja del lector.

Crea Windwos Form con F#.
captura-1870225

Lo que debe hacer el programa es esto. Crea un Windows form como muestra en la imagen. Su código es este.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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
// 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()
//----------------------------------------------------------------------------------
 
 
[<STAThread>]
Application.Run(form)

Quiero la parte de los eventos de cada botón, tanto el abrir y cerrar. Lo que tiene que hacer es lo siguiente.

Si pulso el botón Arbir, muestra en el label_Mensaje, el mensaje "Abriendo..." mientras se está abriendo el lector o bandeja del disco.
Cuando se abra del todo la bandeja del disco, muestra el mensaje "Abierto".
Para el botón Cerrar lo mismo.

El comando que funciona bien abrir el lector o bandeja es este:
1
2
let button_Abrir_Click _bandeja = mciSendString("set CDAudio door open", rt, 127, IntPtr.Zero) |> ignore
button_Abrir.Click.Add(button_Abrir_Click) |> ignore

Para cerrar:
1
2
let button_Cerrar_Click _cerrar = mciSendString("set CDAudio door closed", rt, 127, IntPtr.Zero) |> ignore
let _cerrar = button_Cerrar.Click.Add(button_Cerrar_Click)

¿Alguna idea?

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 23
Ha mantenido su posición en F sharp (en relación al último mes)
Gráfica de F sharp

Eventos de un button

Publicado por Meta (12 intervenciones) el 06/05/2018 17:16:57
Me respondo a mi mismo.

Lo dejo aquí por si alguien lo necesita.

Los eventos son estos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 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."
)

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar