|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - Laforge
1
« en: Miércoles 26 de Enero de 2005, 17:35 »
Hola de nuevo compañeros, Me estoy volviendo loco buscando la forma de superponer una imagen o un texto transparente en un grid! Quiero poner la palabra "FACTURADO" encima de un datagrid donde muestro una serie de datos. Lo he probado con un label de fondo transparente, con imágenes transparentes (GIF) en picturebox de fondo transparente, colocados como imagen y como fondo,...pero no hay manera!! El transparente SIEMPRE llega hasta el fondo de formulario!!! Alguien tienen una idea de cómo puedo solucionarlo?? Quizá Soultaker que está siempre trabajando con imágenes ..... Saludos!
2
« en: Miércoles 26 de Enero de 2005, 17:28 »
Hola Soultaker.
Pruébalo con MouseEnter en vez de MouseHover. No estoy muy seguro pero creo que MouseHover, antes de ejecutar los eventos examina el objeto...por eso esa demora.
Saludos!
3
« en: Viernes 7 de Enero de 2005, 16:28 »
Hola de nuevo!! Alguien sabría enumerar-me la sucesión de eventos que tienen lugar en un TabControl al activarlo?? Mi problema es que tengo toda una serie de rutinas a ejecutar cuando entro en las diferents TabPages de un TabControl, las cuales ejecuto en el evento ENTER. Éste se me ejecuta sin ningún problema cuando cambio de TabPage a través de instrucciónes de código (TabControl.SelectedIndex=TabPageIndex), pero cuando entro en la TabPage haciendo click con el mouse en la pestaña, se me vuelve "loco" (aún y controlando los eventos click, mousedown,...del TabControl). Alguien tiene una idea de cómo podría controlarlo? Saludos,
4
« en: Viernes 7 de Enero de 2005, 16:18 »
Bueno, ya lo tengo... TabControl.SelectedPage=TabPage o TabControl.SelectedIndex=TabPageIndex Saludos
5
« en: Martes 4 de Enero de 2005, 10:16 »
Una forma sencilla sería con una subrutina con un pequeño bucle a la que le pasamos el valor capturado en el combobox (supongo que será el cliente): p.e. Private Sub Buscar_Posición_Cliente(byVal CliCapturado as String) Dim Posición as Short =0 Dim cDataRow as TuDataRow.TuDataTableRows For Each cDatarow in TuDataSet.TuDataTable if TuDataSet.TuTabla.Rows(i).Item("Cliente") <> CliCapturado Then Posición +=1 Else Exit For Next ...creo que te puede funcionar. Saludos,
6
« en: Viernes 31 de Diciembre de 2004, 18:07 »
Hola de nuevo Antes que se acabe el año tengo una pequeña duda. Es la primera vez que utilizo TabControls y no sé cómo demonios cambiar de pestaña por código!! Anda que alguien me heche una manita en esa tarea tan sencilla... Buenos pues, FELIZ AÑO A TODOS. Nos volvemos a "postear" en el 2005!! ...y no bebáis demasiado, que luego pasa lo que pasa (ja,ja,ja...) Saludos
7
« en: Jueves 30 de Diciembre de 2004, 12:03 »
Senzao...ahí t'as pasao! Anakin, si hay múltiples imágenes en el mismo formulario...lo tienes crudo, ya que, como bién dices, el color "transparent" lo que hace es un "agujero" hasta el formulario. Una de dos, o te limitas a poner las etiquetas fuera de las imágenes o te haces una composición de las imágenes tal y como las quieres con el Photoshop o el Corel o hasta, incluso, con el PowerPoint (haces la composición en una página y después le dices Guardar como... JPG), y lo metes como BackgroundImage del Formulario. Si no,....crudo, crudo,... Saludos y Felices Fiestas
8
« en: Jueves 30 de Diciembre de 2004, 11:55 »
...hey!! esa me la sé!!! Te pongo un código de ejemplo que yo utilizo para un título y marcar los puntos de un menú de un formulario Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint Dim DibF As Graphics = e.Graphics Dim myPen As New Pen(Color.White) Dim MyBrush as Brushes myPen.Width = 1 DibF.DrawLine(myPen, 415, 97, 750, 97) 'esto dibuja una lïneaFor i = 120 To 440 Step 32 ' y esto de aquí dibuja líneas y redondeles rellenos de color naranja DibF.FillEllipse(MyBrush.Orange, New Rectangle(475, i + 3, 15, 15)) DibF.DrawLine(New Pen(Color.Orange), 478, i + 10, 510, i + 10) DibF.DrawLine(New Pen(Color.Orange), 340, 300, 420, i + 10) DibF.DrawLine(New Pen(Color.Orange), 420, i + 10, 475, i + 10) Next i Exit SubEspero que te sirva. Saludos y Felices Fiestas.
9
« en: Jueves 30 de Diciembre de 2004, 11:45 »
je,je...a veces cuesta... Bueno, por lo que parece...creo tienes que ir a Agregar Referencias y en la pestañita COM buscar las herramientas de Corel Draw. Agregarlas y, luego, con el Examinador de Objetos, ver qué es lo que te permiten hacer esas herramientas y ...hasta ahí llego...... .... ya que supongo que por la parte de capturar la imagen y abrir la aplicación lo debes tener 100% controlado. Saludos y Felices Fiestas
10
« en: Martes 28 de Diciembre de 2004, 11:11 »
...por lo que parece, lo que quieres hacer es insertar una imagen dentro de otra ya creada en Corel? (lo digo por eso de las coordenadas X,Y) y, al final hacer una composición de imágenes?
11
« en: Viernes 24 de Diciembre de 2004, 16:26 »
Hey, por si te sirve, encontré el código que te dije en VB 4.0 (tamaño previsto del form 800x600). Es más sencillo de lo que pensava.... Public Sub Degrada(vForm As Form) vForm.ScaleMode = 3 vForm.ScaleHeight = 256 For i = 0 To 255 vForm.Line (0, i)-(Screen.Width, i - 1), RGB(0, 0, 255 - i), B Next i End Sub Fácil no?? Saludos,
12
« en: Jueves 23 de Diciembre de 2004, 16:41 »
Hola y gracias! Lo estuve probando instanciando la variable "respuesta" i funcionó! ...pero el "problema" es que depués volví a probar sin instanciar i .....funcionó! Estuve revisando el código y ví que había algun cambio que hice de última hora, pero lo puse igualito, igualito (copy-paste) al que os envié y el único error que me da es de índice fuera de los límites de la matriz, el cual es fácilmente solucionable. Bueno, lo dicho, gracias de todas formas JuanK! Saludos y a seguir luchando Saludos
13
« en: Jueves 23 de Diciembre de 2004, 10:09 »
Hola otra vez. Solucioné el segundo caso! Lo hice quitando la instrucción marcada en rojo y modificando la posición de la instrucción marcada en amarillo hacia donde está la misma en azul (básicamente, situe el foco en la celda anterior antes de proceder a realizar las instrucciones INSERT/UPDATE) Private Sub Grid1_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Grid1.CurrentCellChanged Select Case Grid1.CurrentCell.ColumnNumber Case 0 If Repite = 1 Then Exit Sub ArticAct = Grid1.Item(FilAct, 0) Repite = 1 If Grid1.VisibleRowCount > 2 Then For i = 0 To Grid1.VisibleRowCount - 2 If ArticAct = Grid1.Item(i, 0) And i <> FilAct Then PonFoco(FilAct, 0) 'evita que el foco se desplace hacia abajoCdadAct = Grid1.Item(i, 2) + 1 PvpAct = Grid1.Item(i, 3) DtoAct = Grid1.Item(i, 4) Suma() 'función que obtiene el precio parcial: cantidadxprecio Actualiza() 'update o insert, segun el caso, de datos en BBDD Data1.Trabajo1.Rows(FilAct).Delete()PonFoco(FilAct, 0) 'evita que el foco se desplace hacia abajoExit Sub End If Next i End If Grid1.Item(FilAct, 0) = Nothing BuscaArticulo() Repite = 0 ...pero todavía me falta solucionar el primer caso....venga anímense, alguna idea??? Saludos
14
« en: Miércoles 22 de Diciembre de 2004, 16:37 »
Hola de nuevo! Bueno mi nuevo caso es el siguiente: Tengo una aplicación con un único formulario (Form1), dónde hay un DataGrid vinculado a un DataSet. Inicializo el DataGrid con el DataSet vacío y voy entrando contenidos. Cada vez que salto de registro actualizo la BBDD con el nuevo registro. El mismo problema me aparece en dos casos distintos: 1ro: Tengo una parte de código que controla cuando se pulsa la tecla ESC y pregunta a través de un msgbox tipo "yes/no" si se desean eliminar los datos entrados hasta el momento en la BBDD. Pues bién, si lo digo que SÍ, los borra, pero al volver a dar el control al formulario salta la excepción: "Referencia a objeto no establecida como instancia de objeto" y me señala el "Public Class Form1". Esta es la parte de código: Case keyData.Escape Dim respuesta As DialogResult respuesta = MsgBox("Está seguro que desea descartar los datos?",MsgBoxStyle.YesNo) If respuesta = DialogResult.Yes TrabajoAdapter.DeleteCommand.CommandText = "DELETE * FROM Trabajo1" Data1.Trabajo1.Clear() Try ConectaBD() TrabajoAdapter.DeleteCommand.ExecuteNonQuery() DesconectaBD() Catch ex As Exception MessageBox.Show(ex.Message) DesconectaBD() End Try Else Repite=1 Grid1.CurrentCell= New DataGridCell(FilAct,0) End If 2o: Una parte del código que controla si el registro introducido ya existe. Si es así, lo que hace es aumentar una unidad la referencia especificada y borra la línea nueva introducida. Al introducir una referencia repetida la primera vez, lo hace sin problemas, pero al repetir la operación tres veces en la misma casilla me salta, otra vez el error de "Referencia a objeto no establecida como instancia de objeto", señalándome, otra vez "Public Class Form1". Este es el código: Private Sub Grid1_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Grid1.CurrentCellChanged Select Case Grid1.CurrentCell.ColumnNumber Case 0 If Repite = 1 Then Exit Sub ArticAct = Grid1.Item(FilAct, 0) Repite = 1 If Grid1.VisibleRowCount > 2 Then For i = 0 To Grid1.VisibleRowCount - 2 If ArticAct = Grid1.Item(i, 0) And i <> FilAct Then CdadAct = Grid1.Item(i, 2) + 1 PvpAct = Grid1.Item(i, 3) DtoAct = Grid1.Item(i, 4) Suma() 'función que obtiene el precio parcial: cantidadxprecio Actualiza() 'update o insert, segun el caso, de datos en BBDD Data1.Trabajo1.Rows(FilAct).Delete() PonFoco(FilAct, 0) 'evita que el foco se desplace hacia abajo Exit Sub End If Next i End If Grid1.Item(FilAct, 0) = Nothing BuscaArticulo() Repite = 0 Alguna idea de lo que puede ocurrir? Por lo que parece debe venir del mismo sitio... Saludos y...siento el palizón...
15
« en: Lunes 20 de Diciembre de 2004, 11:26 »
Hola de nuevo. Tengo un poco de lío mental con el tema de programación en dispositivos PPC. Alguien puede dar un poco de luz a mi enturbiada mente? Cuál es el idioma homólogo del VB.NET para PPC? Es el Embbeded Visual Basic 3.1? Según tengo entendido este no trabaja sobre la plataforma .NET Framework. Así pues se debe trabajar en el Visual C++ que Ms ha englobado en la plataforma .NET????? Pero claro, C++ ya no es lo mismo que VB......buffff Alguien puede ayudarme un poquitín? Gracias
16
« en: Viernes 17 de Diciembre de 2004, 09:51 »
Ya veo, ya veo,.... Pues te propongo hacer lo que te comenté en el post anterior: dibujar líneas horizontales des de coordenada 0 hasta donde quieras, modificando la tonalidad de uno de los colores en cada línea que dibujes (o en grupos de 10, o 20,...un poco en función del ancho de la línea y del diseño deseado).´ Cómo hacerlo? La verdad, en eso no te puedo ayudar. Las referencias que tengo se remontan a un compañero que lo hizo en VB 4.0 y....si en 4.0 se puede hacer, en .NET no tengo ninguna duda. Saludos
17
« en: Jueves 16 de Diciembre de 2004, 18:30 »
Obtuve la solución por otro lado, pero gracias de todas formas ...la anexo aquí para información: Dim Tecla as DataGridTextBoxColumn = CType(TuTablaEstilo.GridColumnStyles(numcolumna), DataGridTextBoxColumn) AddHandler Tecla.TextBox.KeyDown, AddressOf ProcedimientoX Saludos
18
« en: Jueves 16 de Diciembre de 2004, 15:45 »
He oído que puedes dibujar a base de líneas, un fondo degradado alterando una de las tonalidades de la línea (p.e. la cantidad de azul de esta), pero claro,....en horizontal, y así, si cada línea que dibujas tiene un poco menos de azul que la anterior, se te irá dibujando ese fondo degradado. Lo que dudo mucho que puedas hacer, es dibujar una sola línea con dos colores diferentes (en el fondo són muchos más, ya que el degradado lo implica). No es mejor "pegar" una imagen??? y ya está??...bueno en el fondo, tu sabrás que es lo que necesitas Saludos,
19
« en: Jueves 16 de Diciembre de 2004, 15:38 »
OK, de acuerdo, pero cómo ejecutas el INSERT INTO??? Cuál es el error que te da?? Bueno, es igual, empiezo por donde siempre....por el principio Por lo que me cuentas, entiendo que esos dos formularios que has hecho debe estar repleto de TextBox que corresponden a cada uno de los campos de la BBDD.... bueno, antes de nada, si eso es así, decirte que puedes utilizar el mismo formulario para consultar y para entrar datos, pero...queda a tu elección. Puede ser un poco largo, por lo que lo iremos haciendo por "fascículos" OK? Formulario para entrada de datos: En diseño del formulario 1. Crear conexión con BBDD y el DataAdapter 2. Crear el DataSet 3. Vincular cada uno de los TextBox con su propiedad DataBinding.Text a cada uno de los campos de la tabla del DataSet en cuestión. Si hasta ahí sigues, avanzamos si no...pregunta la parte que corresponda. Hasta el siguiente "fascículo".....
20
« en: Miércoles 15 de Diciembre de 2004, 17:42 »
...alguién sabe cómo hacer eso? El evento KeyDown de DataGrid solamente controla ese evento cuando el foco no está en ninguna de las celdas de la misma... Saludos
21
« en: Martes 14 de Diciembre de 2004, 18:49 »
La verdad es que es un poco complicado......pero una opción podría ser esta... (El ejemplo utiliza los controles PrintDocument, PrintPreviewDialog, PageSetupDialog y PrintDialog) Private Sub btnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrint.Click Try 'especifica els paràmetres de la pàgina actual PrintDocument1.DefaultPageSettings = OpcionesImprPagina 'especifica documento para cuadro de diálogo de impresión a mostrar CadenaImpr = RichTextBox1.Text PrintDialog1.Document = PrintDocument1 Dim result As DialogResult = PrintDialog1.ShowDialog() If result = DialogResult.OK Then PrintDocument1.Print() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage Dim numCaract As Integer Dim numLineas As Integer Dim strParaPagina As String Dim strFormato As New StringFormat() 'define un rectángulo basándose en la configuración de página Dim rectDibujar As New RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height) 'define un area para calcular el texto que cabe en una página 'diminuye en un alínea la altura para asegurar que el texto no se sale Dim MedidaTamaño As New SizeF(e.MarginBounds.Width, e.MarginBounds.Height - FuenteImpr.GetHeight(e.Graphics)) 'cuando escribe cadenas largas, las separa entre palabras strFormato.Trimming = StringTrimming.Word 'calcula cuántos caracteres y líneas pueden caber basándose en medidatamaño e.Graphics.MeasureString(CadenaImpr, FuenteImpr, MedidaTamaño, strFormato, numCaract, numLineas) 'calcula las cadenas que caben en una página strParaPagina = CadenaImpr.Substring(0, numCaract) 'imprime la cadena contenida en la página actual e.Graphics.DrawString(strParaPagina, FuenteImpr, Brushes.Black, rectDibujar, strFormato) 'si hay más texto, indica que hay más páginas If numCaract < CadenaImpr.Length Then 'resta el texto que ya se ha impreso de la cadena CadenaImpr = CadenaImpr.Substring(numCaract) e.HasMorePages = True Else e.HasMorePages = False 'se ha impreso todo el texto, restaura la cadena CadenaImpr = RichTextBox1.Text End If End Sub Private Sub btnSetup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetup.Click Try PageSetupDialog1.PageSettings = OpcionesImprPagina PageSetupDialog1.ShowDialog() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Private Sub btnPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPreview.Click Try 'especificar las opciones de la página actual PrintDocument1.DefaultPageSettings = OpcionesImprPagina 'especifica documento para cuadro de diálogo de impresión y mostrar CadenaImpr = RichTextBox1.Text PrintPreviewDialog1.Document = PrintDocument1 PrintPreviewDialog1.ShowDialog() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub -ejemplo extraído del manual de VB.NET de Michael Halvorson, editorial McGrawhill- Espero que te sirva. Yo es el que utilizo cuando tengo que imprimir largos textos des de un textbox (richtextbox),...aunque trato de evitarlo. Saludos,
22
« en: Martes 14 de Diciembre de 2004, 18:38 »
Hola Glauca, Así, de repente y sin nada más es un poco difícil orientarte de cómo lo tienes que hacer para volcar tus datos a la BBDD desde textbox, combobox,.... se un poco más explícita y podremos decirte algo más que no sea lo que tu ya has dicho .... "hacer un INSERT INTO"....es que...yo que sé.... por ejemplo, si quieres utilizar textbox solamente como entrada de datos, es tan facil como ejecutar un simple instrucción INSERT INTO cuando, por ejemplo, pulses un botón de ACEPTAR (btnAceptar_Click)...pero es que hay mucho que decir en ese campo y si no acotas por alguna parte, será difícil, ya que uno se puede extender mucho, mucho, mucho (como este post ) Saludos
23
« en: Jueves 2 de Diciembre de 2004, 12:17 »
Una parte del código que me da diferencias es esta: DataAdapter1.SelectCommand.CommandText = "SELECT Partidos.* FROM Partidos" DataAdapter1.Fill(Escritura1) PosFil() 'situa el cursor en el último registro MaxPartido = Escritura1.Partidos.Item(PosFil).NumPartido Escritura1.Clear() 'lo que viene lo hago para tener conexión con la BBDD pero que no me enseñe ningún registro, ya que lo que quiero es añadir nuevos DataAdapter1.SelectCommand.CommandText = "SELECT Partidos.* FROM Partidos WHERE NumPartido = " & MaxPartido + 1 Grid1.DataSource = Escritura1 Grid1.DataMember = "Partidos" AdaptaEscrit.Fill(Escritura1) Grid1.Refresh() Esta parte si la ejecuto en modo normal no me enseña ningún registro (que es lo que quiero), sin embargo, si la ejecuto 'paso a paso' me enseña el primer registro de la tabla.... Después envío la parte más conflictiva....
24
« en: Miércoles 1 de Diciembre de 2004, 20:01 »
...algo pasó con el Iexplorer y repitió el post...lo siento. Serghio, puedes borrarlo?
Gracias.
25
« en: Miércoles 1 de Diciembre de 2004, 18:11 »
Hola de nuevo, Tengo un problemilla (por eso escribo no??? ) Estoy realizando un aplicación, en la cual, debo trabajar con BBDD MsAccess. A la hora de ejecutarla, si lo hago en modo Debug normal, tengo un resultado (en el fondo, no satisfactorio, pero bueno....), pero cuando procedo a ejecutarlo paso a paso para ver de donde falla, el resultado es completamente diferente!!! Alguien sabe a qué puede ser debido????
|
|
|