|
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 - UserCode
Páginas: 1 ... 6 7 [8] 9 10 ... 15
176
« en: Martes 21 de Noviembre de 2006, 22:10 »
Si, ya me decidí, la 2da tablita la voy a dividir en 2 tablas la primera con 30 campos (cotenido de la primera pestaña de la ventana) la segunda con 19 campos (contenido de la segunda pestaña de la ventana) Igual siempre, habrá que escribir muuuuucho código para validar todos esos TextBox y los CheckBox. Al parecer no hay otra mejor forma, que se le va a hacer
177
« en: Martes 21 de Noviembre de 2006, 20:55 »
hola, (esta vez si que no es algo tonto eso es seguro) es como el tratar de darle la vuelva (mejor solucion) a algo que tiene muchos campos. Yo tengo esta ventana: Lo que está en azul lo meto en una tabla, y lo que está en rojo va en otra tabla: Lo que está en azul lo meto en esta tablita: Y lo que está en rojo lo meto en esta otra: (o al menos esa es la idea) Yo pensaba (o aun pienso) el que tal vez podría poner en el campo Motivo el string del checkbox pulsado. Pero para eso el ID debe repetirse Es decir, si yo en la primera tabla (el recuadro azul) meto un registro, supongamos ID=1 entonces en la segunda tablita (recuadro rojo) meteria ID=1 lo cual sería la relacion entre ambas tablas. Pero si yo selecciono 5, 20 o los 30 checkbox, entonces en la 2da tabla habrían 30 registros todos con ID=1 Asi, si yo quiero ver los registros relacionados, pues creo y supongo que podría en una SQL filtrar los datos, indicando que me busque (para una consulta) todos los registros de la 2da Tabla que tengan el ID de la 1era Tabla. ¿Que me recomiendan? que haga esto asi o que la 2da Tabla sea diferente, es decir, hacer una tabla con 30 campos y validaria asi: If Check1.Value = 1 And TxtCampo1.Text<>"" Then RsServicio("Campo1")=TxtCampo1.Text Else RsServicio("Campo2")="" End If If Check2.Value = 1 And TxtCampo2.Text<>"" Then RsServicio("Campo2")=TxtCampo2.Text Else RsServicio("Campo2")="" End If . . . . If Check30.Value = 1 And TxtCampo30.Text<>"" Then RsServicio("Campo30")=TxtCampo30.Text Else RsServicio("Campo30")="" End If
En una consulta, yo activaria el CheckBox dependiendo si el campo de la Tabla tiene o no valor (el dato es numerico), si el campo está vacio checkbox.Value=0, si está lleno, checkbox.value=1 y pongo en el Textbox el dato. Pero hacer esto ultimo, una tabla con 30 campos, y la otra pestaña tiene como 20, pues serían muchos campos, y luego escribir el codigo validando cada uno Por eso habia pensado si podría tal vez dejar la 2da Tabla como está y no meterle tantos campos. ¿cómo podría hacer para un caso como este? EDITANDO:Me he dado cuenta mientras empiezo todo esto, que va a ser más dificil de lo que pensé, algo me dice que no habra mucha opinión sobre este post, al menos yo me enrrede todo comenzando con esta loca idea de ver si debo o no hacer una tabla de muchos campos vamos a ver.
178
« en: Lunes 20 de Noviembre de 2006, 23:39 »
que verguenza claro ' ' justo ahora necesito un borrador de memoria como los que usan los hombres de negro gracias compadre
179
« en: Lunes 20 de Noviembre de 2006, 23:29 »
Si, voy... TR_SINIESTROS_ENVASES Deteriorado (Numerico) Extraviado (Numerico) Sustraido (Numerico) Violado (Numerico) ID (Numerico) Fecha (Fecha/Hora) IDSucursal (Texto) CodRegion (Numerico) Y en una ventania aparte con un MSFlexGrid la idea es mostrar dos columnas, una el ID y otra la Fecha, que al selccionar la celda del ID la ventanita se cierra y carga los demas datos de ese registro en la ventana de ingreso y manipulacion de datos. Yo probe cambiando el campo ID de Autonumerico a Numerico, y el de Fecha de tipo fecha/hora a Texto pero todo siempre da el mismo problema en VB y todo muy bien en Access es lo que me tienen sorprendido. PD: la variable SUCURSAL es de tipo String
180
« en: Lunes 20 de Noviembre de 2006, 23:23 »
AllowCustomize Eso me pasa por tener un VB en ingles Gracias F_Tanori como siempre al rescate como el chapulin
181
« en: Lunes 20 de Noviembre de 2006, 22:57 »
¿A alguien le ha pasado algo como esto con este control? Tengo un MDIForm con un Toolbar con varios botones, y me he llevado la sorpresa de que (lo vi por accidente) cuando ejecuto el programa, al darle doble click al control Toolbar, aparece una ventana para Personalizarlo, es decir, para agregarle y quitarle botones, o moverlos de posicion. ¿Cómo se podría el ver la manera de evitar que esta ventana no salga? Miré en sus propiedades, y en verdad que no encontré lograr que dejara de salir en ejecución esta personalizacion de la barra
182
« en: Lunes 20 de Noviembre de 2006, 22:47 »
Hola mis amigos sabios y más experimentados laboralmente que yo. Me ha sucedido algo muy raro con una corta sentencia SQL que en VB da error pero al ponerla en una Consulta Access se genera perfectamente. Esta es la SQL: Dim SQL1 As String SQL1 = "SELECT ID, Fecha " SQL1 = SQL1 & "FROM TR_SINIESTROS_ENVASES " SQL1 = SQL1 & "WHERE IDSucursal=" & SUCURSAL & " ORDER BY Fecha"
En VB saca el error de Pocos parámetros. Se esperaba 1Pero la pongo en una consulta en Access y la genera perfectamente sin problemas ¿hay alguna explicación para esto? porque es claro que está fuera de cualquier cosa que yo conozca PD: Si pongo un Alias a la tabla todo sigue igual.
183
« en: Domingo 12 de Noviembre de 2006, 18:40 »
uhm que bien lo del Enter, no sé si esta lo haga, si no lo hace pues entonces le pongo en el Change del Text que busque lo que contenga sin aviso de No encontrado, sino que si lo consigue muestre los demas datos, sino, pues no paso nada. gracias
184
« en: Domingo 12 de Noviembre de 2006, 17:42 »
ha bueno voy a revisar, si yo busque los temas de lector del foro pero con lo que he preguntado aquí no se me contestaba mucho en esos post, entonces por lo que dices es que a lo que la pistola lea el código de barras, pondra donde esté el cursor o prompt del sistema el valor numerico o alfanumerico entonces si el cursor está en el TextBoxID de la ventana, pondrá ahí lo que lea. bueno voy a ver, ahora esta pistola no quiere andar ni hacer nada pero si es como dices, entonces no tengo de que preocuparse sobre algun control ocx o alguna dll o código en particular para eso. muchas gracias por la asesoria
185
« en: Domingo 12 de Noviembre de 2006, 15:33 »
hola Me han facilitado una pistola lectora, sé que se pone junto con el teclado pero no sé cómo sería el código para la interaccción entre ella y el programa. Porque yo escribo el Campo ID en un TextBox, no sé como la pistola al leer el código de barra ponga el String del campo en el TextBox. Porque es decir, uno interactua con otros perifericos, como por ejemplo la impresora y uno sabe que con el .Print o controles con esas funciones lo escribe uno y eso llama al dispositivo, pero con un lector laser pues ni idea de qué código o qué control de VB hace la interacción con el aparatico Alguna sobre esto para comentar?
186
« en: Domingo 12 de Noviembre de 2006, 15:26 »
uhmmm... como que nadie a trabajado con VB.NET y Access ya tengo el SQL Server pero en mi compu tengo es XP y no Windows Server :-\ me tomara tiempo pasar al .Net mientras, a seguir con el 6
187
« en: Martes 7 de Noviembre de 2006, 21:37 »
hola, estoy con lo de probar el .Net muy iniciado novaton en ello y me encuentro en la fase de tratar de formular el código de "pan de cada día" con lo que uno puede defenderse en comienzo el cual es las 4 operaciones básicas de una Bd, ya saben, el insertar, consultar, editar y eliminar ya con eso uno se defiende y el resto pues se va viendo en el camino. Bueno, yo entre tanto leer y probar he llegado a lograr meter datos en une BD Access de la siguiente forma por parametros con el command asi: 'Conectando con BD Access: Dim RutaBD As String RutaBD = My.Application.Info.DirectoryPath & "\BDAccess.mdb" ConexionBD = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RutaBD) Dim ordenSQL As OleDb.OleDbCommand Dim strSQL As String strSQL = "INSERT INTO " strSQL = strSQL & "TB_AGENDA(TxtNombre,TxtApellido,AutoCedula,TxtTelefCel,TxtTelefTrab,TxtTelefHab,TxtEmail,TxtCumpleaños,TxtDireccion,TxtComentarios) " strSQL = strSQL & "VALUES(@Nombre,@Apellido,@Cedula,@TelefCel,@TelefTrab,@TelefHab,@Email,@Cumpleaños,@Direccion,@Comentarios)" ordenSQL = New OleDbCommand(strSQL, ConexionBD) 'Nombre: ordenSQL.Parameters.Add(New OleDbParameter("@Nombre", OleDbType.VarWChar, 20)) ordenSQL.Parameters("@Nombre").Value = TxtNombre.Text 'Apellido: ordenSQL.Parameters.Add(New OleDbParameter("@Apellido", OleDbType.VarWChar, 20)) ordenSQL.Parameters("@Apellido").Value = TxtApellido.Text 'Cedula: ordenSQL.Parameters.Add(New OleDbParameter("@Cedula", OleDbType.VarWChar, 20)) ordenSQL.Parameters("@Cedula").Value = TxtCedula.Text 'TelefCel: ordenSQL.Parameters.Add(New OleDbParameter("@TelefCel", OleDbType.VarWChar, 20)) ordenSQL.Parameters("@TelefCel").Value = TxtTelefCel.Text 'TelefTrab: ordenSQL.Parameters.Add(New OleDbParameter("@TelefTrab", OleDbType.VarWChar, 20)) ordenSQL.Parameters("@TelefTrab").Value = TxtTelefTrab.Text 'TelefHab: ordenSQL.Parameters.Add(New OleDbParameter("@TelefHab", OleDbType.VarWChar, 20)) ordenSQL.Parameters("@TelefHab").Value = TxtTelefHab.Text 'Email: ordenSQL.Parameters.Add(New OleDbParameter("@Email", OleDbType.VarWChar, 20)) ordenSQL.Parameters("@Email").Value = TxtEmail.Text 'Cumpleaños: ordenSQL.Parameters.Add(New OleDbParameter("@Cumpleaños", OleDbType.VarWChar, 20)) ordenSQL.Parameters("@Cumpleaños").Value = DateTimePicker1.Text 'Direccion: ordenSQL.Parameters.Add(New OleDbParameter("@Direccion", OleDbType.VarWChar, 20)) ordenSQL.Parameters("@Direccion").Value = TxtDireccion.Text 'Comentarios: ordenSQL.Parameters.Add(New OleDbParameter("@Comentarios", OleDbType.VarWChar, 20)) ordenSQL.Parameters("@Comentarios").Value = TxtComentarios.Text 'Abrimos la conexión, lo mandamos a ejecutar y cerramos la conexión: ordenSQL.Connection.Open() ordenSQL.ExecuteNonQuery() ordenSQL.Connection.Close() MessageBox.Show("REGISTRO GUARDADO", "REG GUARDADO", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
El Editar es igualito a diferencia del Query que cambia a esto, todo lo demás igual: 'Cedula no pq es el ID: strSQL = "UPDATE TB_AGENDA SET TxtNombre=@Nombre,TxtApellido=@Apellido,TxtTelefCel=@TelefCel,TxtTelefTrab=@TelefTrab,TxtTelefHab=@TelefHab,TxtEmail=@Email,TxtCumpleaños=@Cumpleaños,TxtDireccion=@Direccion,TxtComentarios=@Comentarios " strSQL = strSQL & "WHERE AutoCedula=" & Me.TxtCedula.Text
Y borrar pues esto: 'Conectando con BD Access: Dim RutaBD As String RutaBD = My.Application.Info.DirectoryPath & "\BDAccess.mdb" ConexionBD = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RutaBD) Dim ordenSQL As OleDb.OleDbCommand Dim strSQL As String strSQL = "DELETE * FROM TB_AGENDA WHERE AutoCedula=" & Me.TxtCedula.Text ordenSQL = New OleDbCommand(strSQL, ConexionBD) 'Abrimos la conexión, lo mandamos a ejecutar y cerramos la conexión: ordenSQL.Connection.Open() ordenSQL.ExecuteNonQuery() ordenSQL.Connection.Close() MessageBox.Show("REGISTRO ELIMINADO", "REG BORRADO", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
Pero me interesa hacer estas operaciones por el DataAdapter y DataSet y debo decir que en verdad me ha costado mucho lograr que me funcionen, entonces yo pregunto, que falta en este código para que funcione: 'Conectando con BD Access: Dim RutaBD As String RutaBD = My.Application.Info.DirectoryPath & "\BDAccess.mdb" ConexionBD = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RutaBD) Dim strSQL As String strSQL = "SELECT * FROM TB_AGENDA ORDER BY TxtApellido" Dim dtp As New OleDbDataAdapter(strSQL, ConexionBD) Dim ds As DataSet = New DataSet dtp.Fill(ds, "TB_AGENDA") Dim Fila As DataRow = ds.Tables(0).NewRow Fila("TxtNombre") = TxtNombre.Text Fila("TxtApellido") = TxtApellido.Text Fila("AutoCedula") = TxtCedula.Text Fila("TxtTelefCel") = TxtTelefCel.Text Fila("TxtTelefTrab") = TxtTelefTrab.Text Fila("TxtTelefHab") = TxtTelefHab.Text Fila("TxtEmail") = TxtEmail.Text Fila("TxtCumpleaños") = DateTimePicker1.Value Fila("TxtDireccion") = TxtDireccion.Text Fila("TxtComentarios") = TxtComentarios.Text ds.Tables(0).Rows.Add(Fila) Dim cb As New OleDbCommandBuilder(dtp) ds.Tables(0).AcceptChanges() dtp.Update(ds, "TB_AGENDA") MessageBox.Show("Registro Guardado", "Guardado", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) Catch ex As Exception MessageBox.Show("Error al Intentar Guardar los datos: " & vbCrLf & Err.Description) End Try
No da error, hasta saca el aviso de Messegabox de Registro guardado pero al ir a ver en la tabla, no hay nada PD: perdon que no sea algo para SQL Server porque ahorita Access es lo que tengo más a la mano.
188
« en: Martes 7 de Noviembre de 2006, 19:17 »
Hola, bueno yo estoy migrando de poco a poco al .Net y tengo en un modulo que alguien me paso que trae algo de eso de encriptar aunque yo todavia no lo he usado, es este: Bueno esto está en VB6 pero creo que no deberia dar problemas en .Net Function Codificar(sContrasena As String) 'Encrypta Dim code Dim i As Integer code = Chr$(248) + "!#$%&/()=?¡¿*+[]{}:;:,._" For i = 1 To Len(sContrasena) Codificar = Codificar + Chr$(Asc(Mid$(code, i, 1)) Xor Asc(Mid$(sContrasena, i, 1))) Next i End Function
No es la perla del mundo pero es algo, o sirve de idea Y se usaria asi: Codificar(txtContrasenaAnterior), Codificar(txtNuevaContrasena), sValidacion Eso ultimo de sValidacion no sé bien tengo que ver, tal vez con solo poner: Codificar(Text1.Text) sirva. Yo creo que eso de desencriptar es un error, porque si se fijan por ejemplo como los sistemas Unix y variantes, (Unix excelencia en seguridad) el perfil correcto al parecer es que la clave se encripta, y no debe desencriptarse nunca. Lo que se hace es que el dato que el usuario mete, el programa lo encripta al mismo nivel y lo compara, si el encriptado de la tabla es igual al encriptado que el usuario metio, pues se accede. En caso de haber olvidado la clave, pues habría que ver si se hace algo asi como cuando a uno se le olvida la clave en alguna web y lo que se hace es que a uno le mandan un correo con una nueva clave para acceder, ya al acceder el usuario cambia la clave dada por la web por una propia, y así nuevamente esa clave la conoce solamente el suario de la cuenta, eso sucede porque el sistema no puede tampoco recuperar la clave, es decir, mostrartela, pq al encriptarse no la desencripta. No es que no se pueda desencriptar pero es más seguro así. Tal vez en donde se guarda la clave, se hace otro campo, es decir, ClavePrincipal y ClaveAuxiliar, si se olvida la principal, con la auxiliar tal vez se pueda recuperar la otra, si se olvidaron las dos huyyy!!! hehehe Pero yo creo que lo mejor es algun código que genere una secuencia, algun string o numerico que no esté guardado en ninguna tabla, sino que el programa lo genere al momento, y para usar solo al momento, para acceder y poder cambiar la clave olvidada por una nueva. Bueno ese código yo todavía no lo he implementado, pero voy a ver en lo que termine con unas cosillas que estoy haciendo.
189
« en: Lunes 6 de Noviembre de 2006, 20:25 »
Todo listo! Volví a hacerlo todo de nuevo y ya funciona, claro antes ya había pensado en eso pero no rulaba, en esta ocasión hice el reporte parte por parte e iba llamandolo con forme lo iba haciendo en espera de ver la falla, pero pude terminarlo de hacer y ahora esté ultimo no presenta problemas al llamarlo. menos mal
190
« en: Sábado 4 de Noviembre de 2006, 18:38 »
Son las consultas, (es un reporte con 2 consultas access) pero cada consulta está en su propio reporte, es decir, es un reporte con 2 subreportes. Bueno, quite una de las consultas y llame al reporte, nada todo igual, se abria y se cerraba nuevamente, entonces el que quite lo volvi a colocar y quite el otro, igual nada, después quite los dos subreportes, quedando el reporte padre en blanco, ahí si que se cargaba sin problemas. Bueno en Access las consultas se generan bien, sin problemas, en Crystal el reporte se carga bien sin problemas, había que ver porque con VB sucede esto. ah! si estas son las SQL de consulta, ambas: Cada 20.000 Kms o 6 Meses: SELECT A.TxtUnidad, A.TxtFecha, A.TxtTotal, A.TxtKmFin, A.TxtNumFactura FROM TR_SERV_BIMENSUAL_MANT_PREVENTIVO AS A, TR_REPORTE AS B WHERE A.MantPreventivo=1 AND A.Cada20Km_6Meses=1 AND A.Cada40Km_1Año=0 AND A.TxtSucursal=B.TxtSucursal AND A.TxtMes=B.TxtMes ORDER BY A.TxtUnidad;
Cada 40.000 Kms o 1 Año: SELECT C.TxtUnidad, C.TxtFecha, C.TxtTotal, C.TxtKmFin, C.TxtNumFactura FROM TR_SERV_BIMENSUAL_MANT_PREVENTIVO AS C, TR_REPORTE AS D WHERE C.MantPreventivo=1 And C.Cada20Km_6Meses=0 And C.Cada40Km_1Año=1 And C.TxtSucursal=D.TxtSucursal And C.TxtMes=D.TxtMes ORDER BY C.TxtUnidad;
Me fije de otro reporte que tiene tambien subreportes (consultas access) y la única diferencia es que uno tiene dos secciones de Detalle, y el otro los subreportes están en dos secciones de pie de reporte, no en detalles, pero cambie para que fuese igual y nada, sigue abriendose y cerrandose inmediatamente. Como el problema es desde VB por eso puse esto aqui en el foto de vb, perdon si tal vez sea más para el foro de crystal por ser tanto problema de él tambien, aunque como habia comentado antes, tanto en access como en crystal todo bien, es el vb el que presenta la cuestion, pero la respuesta debe estar en la forma como está puesta la data en el reporte, seguire viendo, sino, entonces termino de hacer el instalador y le dejo el muerto del reporte al informatico de la emrpesa, en caso que yo no pueda hehehe.
191
« en: Viernes 3 de Noviembre de 2006, 17:56 »
hola a alguien le ha llegado a pasar algo como esto... Tengo 5 reportes que hice en Crystal Report 8.5 y en VB una ventana que llama a cada uno, con un sólo control Crystal incrustado en la ventana, lo raro de todo esto, es que todos los reportes que llamo desde el programa se muestran sin problemas a exceptión de uno, el cual al llamarlo se muestra e inmediatamente se cierra. Al refrescar los datos de ese reporte en el propio Crystal, se muestra sin problemas, ese reporte es un Reporte con 2 suobreportes, y los 2 subreportes son consultas SQL hechas en Access, en vez de ser un reporte con tablas Access, es con consultas Access, el reporte problematico es 1 tabla con 2 consultas SQL de access. El codigo que uso para llamar al reporte desde vb es este: CrystalReport1.DataFiles(0) = App.Path + "\BDVehiculos.mdb" CrystalReport1.ReportFileName = App.Path + "\reportes\ReporteMantPreventivo.rpt" CrystalReport1.RetrieveDataFiles CrystalReport1.WindowState = crptMaximized CrystalReport1.PrintReport
El control de crystal que uso en la ventana de reportes es: Crystal Report Control -> del menu componentes de vb. Ese reporte con o sin formulas, igual carga y se descarga al llamarlo, además por ser un Reporte con Sobreportes (que son consultas SQL de access) no es el problema porque de los 5 reportes otros 2 tambien son asi, y si salen bien. Alguien ha tenido problemas parecidos? un reporte que al intentar llamarlo se abre y se cierra inmediatamente? es el único inconveniente que tengo, no sé si hacer el instalador (pq el programita ya esta listo) pero esta esto problema de ese reporte con esos sintomas tan extraños
192
« en: Viernes 3 de Noviembre de 2006, 15:52 »
hola, no te preocupes, es en plataforma xp en donde estara el programita, gracias
193
« en: Jueves 2 de Noviembre de 2006, 21:07 »
que maravilloso seria ver esos fuentes pero el argentino Javier Blakendes (creo que asi es el apellido no sé) lo liberó???
194
« en: Jueves 2 de Noviembre de 2006, 21:00 »
hola, he probado ambas formas y la aparicion, quieto por 3 segundos y vuelto a desvanecer poco a poco es todo un exito Mil gracias a ambos, gracias muchachos espero no haber sido muy excentrico con esta idea de la ventanita de presentacion Tremenda presentacion que tendra el programita, claro que ya le pondre otra imagen hehe
195
« en: Jueves 2 de Noviembre de 2006, 16:25 »
epale!! compadre todo bien bien gracias Gracias F_Tanori si sirve bien, pero como hago para que al llegar a 250 se quede en ese valor unos 2 o 3 segundos y luego vuelva a 0 ???
196
« en: Jueves 2 de Noviembre de 2006, 02:28 »
lo vi con el amigo de todos, el amigo Google, lo anclaron en otro foro de los miles que hay en internet, asi como este, y si se ve completo, y tambien avise a LWP (la web del programador) para que lo pusiesen pq solo tenian uno en su sección de manuales, claro indique que era importante respetar los derechos de autor, en la primeras pag sale quien o qué organización lo hizo, siempre y cuando se respete eso, todo bien Sólo hago Eco del manualsito ya que al estar en más de un lugar en internet más posibilidades de encontrarlo mejor para algunos y otros. Sea con este post o uno nuevo (hecho por el moderador) como sea, tal vez el moderador podría anclarlo arriba para que con nuevos temas no se pierda entre las paginas con la entrada de cada post nuevo en el foto de crystal.
197
« en: Jueves 2 de Noviembre de 2006, 02:12 »
hola buenas a todos!! Esto no es algo de tema impotanton o serio, es algo de "ver si se puede o no" lo cual es referente a esa ventanita de presentacion que sale cuando se ejecuta un programa. Pero en mi caso tengo una idea algo loca sobre como mostrar esa ventanita de presentacion, veran... Yo he puesto en esa ventanita este código, el cual fuerza al Form a ser transparente, con un Alpha bajo, algo asi como papel cebolla: 'Codigo Interezante para forzar transparencia en un form de manera muy sencilla y con transparencia graduable Private Declare Function GetWindowLong Lib "USER32" Alias "GetWindowLongA" _ (ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "USER32" Alias "SetWindowLongA" _ (ByVal hWnd As Long, ByVal nIndex As Long, _ ByVal dwNewLong As Long) As Long Private Const GWL_STYLE = (-16) Private Const GWL_EXSTYLE = (-20) 'Requires Windows 2000 or later: Private Const WS_EX_LAYERED = &H80000 Private Declare Function SetLayeredWindowAttributes Lib "USER32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long Private Const LWA_COLORKEY = &H1 Private Const LWA_ALPHA = &H2 Public Sub MakeWindowTransparent(ByVal hWnd As Long, ByVal alphaAmount As Byte) Dim lStyle As Long lStyle = GetWindowLong(hWnd, GWL_EXSTYLE) lStyle = lStyle Or WS_EX_LAYERED SetWindowLong hWnd, GWL_EXSTYLE, lStyle SetLayeredWindowAttributes hWnd, 0, alphaAmount, LWA_ALPHA End Sub 'La transparencia es graduable modificando el alphaamount en este caso esta en 150 mientras menor es este valor mas transparente se torna Private Sub Form_Load() Call MakeWindowTransparent(Form1.hWnd, 150) End Sub
Ese código, sin modulo ni archivo externo, solo eso en un Form1 y sale el efecto, bueno mi idea es usar eso para la ventanita de presentacion pero con una variación la cual es la siguiente idea.. Que la ventana comienze con eso del alpha=0 y que con un bucle For o controles Timer suba poco a poco gradualmente hasta 250 que es ya el valor de visualización normal de la ventana. Y que al alcanzar el 250, vuelva poco a poco a bajar a 0. Es decir, que la ventana aparezca gradualmente y se vaya desvaneciendose, ese es el efecto, sé que en Call MakeWindowTransparent(Form1.hWnd, 150) en el 150 podría poner una variable Intener "i" pero me he enrredado un poco tratando de ver como hacer esto, y he terminado con bucles infinitos y colgadas del vb. bueno esto es para un programita y la presentacion pienso hacerles una bromita con esta imagen que muestro abajo como presentación, eso por lo del halloween, ya saben de donde saca McDonnald sus carnes para hamburquesa, por eso el dicho de "somos lo que comemos" o algo asi la gente a quienes les estoy haciendo algo a veces se juegan con uno y bueno, les voy a poner eso de presentacion para ver que caras ponen, quien quita que hasta digan algo como: oye no esta mal, nos gusta dejale eso asi. claro le falta ponerle el nombre del programa, version, etc... Creen que si se pueda sin problemas verdad! pregunto no sé
198
« en: Domingo 29 de Octubre de 2006, 21:29 »
A excepción de los primeros capitulos que son teoricos sobre el Crystal, yo diria que desde las paginas 400 en adelante es cuando la cosa se pone buena ejemplos de formulas y demás código. No sabía que Crystal aceptaba código Basic tal vez por eso este subforo está dentro del de VB Bueno yo tengo el Crystal Report 8.5 y en inglés pero igual sirve bastante el tuto
199
« en: Domingo 29 de Octubre de 2006, 16:51 »
Hola, escribo esto pq conseguir un Manual o Tutorial de Crystal Report no es fácil y creo que aqui no he visto alguno, entonces pongo el link de uno. Manual de 720 páginas en documento PDF de Crystal Report 8 (archivo .zip) y se ve muy completo, desde el novaton hasta el que ya le mete al Crystal, no es facil conseguir buen material de tutoriales de Crystal, asi que hago Eco de éste tutorial aqui porque lo bueno, debe repetirse siempre
200
« en: Domingo 29 de Octubre de 2006, 01:47 »
ahh!! ya la consegui, es que yo ponia My. y el resto el cual tambien tiene un .Application pero ese no tiene el StartupPath... ya vi que es solo Application este si tiene el StartupPath pero me sigue dirigiendo a las mismas subcarpetas que el que yo ya comento Bueno yo creo que voy a tirar todo a esa carpeta y ya mucha lala con esto verdad! gracias muchachos
Páginas: 1 ... 6 7 [8] 9 10 ... 15
|
|
|