|
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 - TRod
76
« en: Miércoles 13 de Junio de 2007, 03:59 »
Creo que tienes que hechar mano de los Benditos Apuntadores. y la clasica funcion de intercambio: void swap_stock(struct sstock *A, struct sstock *B ){ struct sstock aux; aux = *A; //Te ahorraste algunos 'strcpy' *A = *B; *B = aux; }
Y la metes en tu funcion de ordenamiento: ... if (strcmp(astock.codigo_producto,astock[j].codigo_producto)>0) swap_stock(&astock,&astock[j]);
Te confieso que no comprendo a primer vista porque no funciona tu metodo, pero lo anterior es lo que haria casi cualquier programador que esta aprendiendo metodos de ordenamiento... Espero haberte ayudado. Suerte.
77
« en: Martes 12 de Junio de 2007, 22:38 »
Tengo una duda: ¿La funcion imp_stock(struct sstock astock[4]) la usas para sólo listar productos? ¿entonces para que pones de nuevo scanf()? Me parece que es un copy-paste de la funcion entrar_stock...
78
« en: Domingo 10 de Junio de 2007, 01:28 »
proceso(): Las variables 'i' y 'c' son locales para la funcion. No especificas valor inicial para 'c', por eso no avanza el 'for'. Recomiendo uses parametros. Ejemplo: proceso(int filas, int columnas){ ...
1) getche() Espera que oprimas una tecla, provoca eco en la pantalla. 2) textbackground(<num. de color>); Debes usar 'cprintf' para que tengan efecto de color tus mensajes. 3) gotoxy(int columna, int fila); (Borland) Coloca el cursor en una coordenada en pantalla. Haz una prueba: textbackground(3); textcolor(14); clrscr(); gotoxy(5,18); cprintf("Hola, perro mundo!"); getche();
Espero esto te ayude.
... y, por fin... ¿Resolviste tu problema anterior?
79
« en: Domingo 27 de Mayo de 2007, 18:35 »
Puedes usarlos para darle al usuario la oportunidad de editar un campo que contiene llaves foraneas. En ellos se enlistan todas las claves foraneas que estan registradas y disponibles en la BD. El usuario simplemente elige una de ellas. Las propiedades que debes manejar son: DataSource = TDataSource q' apunta a la tabla a editar. DataField = nombre del campo foraneo a editar.Después estableces la relacion con la tabla que tiene la referencia de esas claves: ListSource = TDataSource de la "Tabla de Referencia" KeyField = campo llaveAhora bien, si quieres que no se vean numeritos (por lo general las claves son digitos) y que mejor se vean nombres como Juan, Pedro, producto X, etc. entonces cambia el valor de la propiedad ListField por el campo que te interesa mostrar. Automaticamente la tabla sigue obteniendo el valor del campo llave, pero el usuario puede comprender mejor qué es lo que esta capturando. Espero haberme explicado bien. Saludos.
80
« en: Martes 22 de Mayo de 2007, 21:55 »
Bueno, nunca lo he hecho yo, pero me imagino que te debe servir el método: 'Add' del propio objeto 'TImageList'. Consulta la ayuda; yo mas o menos lo intente con un bmp de 16*16 y si funciono, pero por falta de tiempo ya no probe si funciona aplicandolo sobre un menu o boton. Lo intentare mas tarde. Suerte.
81
« en: Domingo 20 de Mayo de 2007, 16:38 »
Lo intentaste con valores constantes? Asi: Fun(arr[4][3]){ ... } ... int a[4][3]; //(Estáticamente, sin punteros **) Fun(a); ... PD: ¿No te conviene mejor adaptar el arreglo y la funcion dentro de un Objeto...?
82
« en: Lunes 14 de Mayo de 2007, 04:11 »
Investiga la funcion FindComponent(), parece que es lo que estas buscando.
O bien, usa la propiedad Components del TForm -ignoro si funciona con un TPageControl-, (ComponentsCount y ComponentIndex debes usarlos tambien)
83
« en: Domingo 29 de Abril de 2007, 23:40 »
Creo q' debes de exponernos tu codigo porque no nos queda claro cual es tu problema, y algunos pensarian que quieres que te hagan la tarea... ¿Los resultados no son los esperados? ¿Tu pseudocodigo funciona? //el procedimiento que propones es correcto?
¿Ya revizaste las funciones de MATH.H? //sin(), cos(), etc. etc. Al menos yo entendi que no sabes cuales son la funciones trigonometricas de C...
Suerte...
84
« en: Lunes 19 de Marzo de 2007, 23:08 »
Si tienes compilador Microsoft: Eternal Idol Si tienes compilador Borland: AnioN
¿Que compilador estas usando?
85
« en: Martes 27 de Febrero de 2007, 05:27 »
Vuelvo a recomendar por segunda vez usar el componente TBitBtn. Me imagino que el TButton esta directamente relacionado a la configuracion de la apariencia de Windows, por eso no es tan fácil alterar visualmente este componente. bye.
86
« en: Sábado 24 de Febrero de 2007, 04:08 »
Con Builder no puedes trabajar con GIFs directamente. Debes abrirlo a bajo nivel... -es broma- Yo lo que hago es abrir el Archivo GIF en cuestion con Corel Photo Paint 11, y en "guardar como..." lo guardo como AVI-Video para Windows. Posteriormente utilizo el componente TAnimate (pestaña win32) para poder visualizar ese mismo archivo AVI. Espero que esto te sirva de ayuda. Suerte. PD: Ignoro si con otro editor de imagenes se puede hacer lo mismo.
87
« en: Sábado 17 de Febrero de 2007, 23:43 »
Por lo que recuerdo antes de ejecutar las funciones sin, cos, etc. debes de hacer la conversion de grados a radianes antes de pasar el parametro a estas funciones, ya que las mismas estan esperando un valor especificado en radianes. Googlea un poco y rapidamente daras con alguna solucion.
¿ grados*(PI/180) = radianes ?
88
« en: Miércoles 29 de Noviembre de 2006, 05:28 »
¿¿¿Que indica la excepción??? Puede ser una restricción de integridad impuesto en el diseño de tu BD y que la estas violando al momento del INSERT ... [valores] Debes cerciorarte de valores NULL, check, etc....
PD: No uses ADO, para interbase lo más lógico es usar componentes "IB".
89
« en: Domingo 29 de Octubre de 2006, 19:19 »
GRACIAS! Mi problema fue que al iniciar el proyecto, por acto reflejo, pulse el boton Aceptar y ya no verifique la casilla VCL... Muchísimas gracias...
90
« en: Domingo 29 de Octubre de 2006, 18:45 »
Hola a todos. Apenas son mis primeros pasos en la creación de DLL's. Me estoy dando cuenta que en mis dll's la sentencia catch no se ejecuta y windows me lanza la excepción automáticante ignorando mi código en ella. por ejemplo un error sencillo como: try{ x = StrToInt("Esto no es entero"); } catch(...){ x = 0; } El programa ignora que después hay una reparación de error con 'x=0' y pasa directamente a lanzarme la Excepción y aborta el proceso ( a diferencia de un EXE, que lo hace sin problemas) Mi pregunta es: ¿ Esto es natural o hay un problema de más fondo con mi DLL ? Agradezco cualquier explicación
91
« en: Miércoles 25 de Octubre de 2006, 21:55 »
Investiga como funciona el evento 'onkeypress'. Igualas a 0 'Key' segun sea el caso.
92
« en: Domingo 15 de Octubre de 2006, 21:50 »
Disculpen mi metida de pata. Es mi flojera de no desenpolvar mis viejos y demacrados apuntes de programacion de vez en cuando... Cierto, también te puede servir sprintf() // #include <stdio.h>
93
« en: Domingo 15 de Octubre de 2006, 19:55 »
Lo siento, me olvide que en C aveces tienes que ser muy conciso al manejar tipos de datos. No entiendo a que te refieres a que no puedes introducir NULL. Quiza apenas te estas acoplando al lenguaje después de trabajar con VB. Yo te sugiero que trabajes con arrays. AnsiString Funcion(char x){ //funcion falla si x>255 char S[2]; S[0] = x; S[1] = '\0'; return AnsiString(S); } Listo. Ahi esta la función. Podría haber otra forma más fácil pero, te soy sincero, por el momento la ignoro. ¿Alguien sabe?
94
« en: Domingo 15 de Octubre de 2006, 01:32 »
Te sirve un poco de "sobrecarga"? (creo que así le llaman ) "XYZ" + (char)65 + (char)66 ...
95
« en: Viernes 22 de Septiembre de 2006, 21:55 »
Mejor utiliza TBitBtn... y más rápido sales del problema. Saludos
96
« en: Jueves 17 de Agosto de 2006, 22:56 »
La palabra reservada "this" la entiendo como un parametro oculto que el compilador usa para que tu puedas llamar a propiedades y metodos de un objeto sin necesidad de hacer referencia -escrita o sintactica- del mismo. Es decir, si tu escribes [color=clBlack;] dentro del cuerpo de una función miembro del objeto [Form1], se interpreta que [Color] es propiedad de [Form1] y te evitas escribir]... Lo que hago con el parametro [this] es "anclar" el componente al Objeto Form1; sustituye this con Form1 y dara el mismo resultado; escribe [this->] y se enlistan todos los miembros del objeto en cuestion... Quiza no sea así en verdad, ya que no soy programador experto. Espero haber sido claro, y si no, como dijo cierto Maestro cuando ya no podia explicarnos el resultado de un planteamiento matemático: "... es palabra del Señor... amen..." SALUDOS
97
« en: Miércoles 16 de Agosto de 2006, 04:27 »
Ya probaste lectura/escritura con "rb+" o "r+" ? podría funcionar...
98
« en: Martes 15 de Agosto de 2006, 22:32 »
Brevemente, es algo asi: TLabel * L; L = new TLabel(this); L->Name = "MiEtiqueta"; L->Caption = "Hola, como estas?"; L->Parent = Label1->Parent; //Label1 ya existe.
Para su posterior manipulación: TLabel *Control; Control = (TLabel*) FindComponent("MiEtiqueta"); Control->Caption = "cambio"; saludos.
99
« en: Sábado 1 de Julio de 2006, 04:46 »
Hola. Al parecer te has topado con el mismo problema que tuve hace tiempo con Turbo C. Nunca supe el porqué de los errores en los archivos binarios después de usar un scanf(...%s). La forma en que lo resolví fue deshaciendome completamente de scanf() e inventarme una función para leer cadenas de caracteres desde el teclado utilizando la función getch() (o sea, sin eco), y se acabaron mis problemas... de hecho jamas volvi a usar scanf() despues de eso. Obviamente me hice lios con coordenas de pantalla, borrado de caracteres, limites del char[?], el caracter '\0', etc. etc. etc... Pero creeme, valio la pena para todos los programas que hice bajo Turbo C que manejaban archivos binarios y aquella "vieja amiga BGI" . Podría existir una mejor solución, pero la mia fue esa. Espero que la tomes en cuenta y te ayude. Saludos.
100
« en: Miércoles 17 de Mayo de 2006, 04:45 »
Hola. Yo lo haria con: Image->Picture = NULL; No se si sea de utilidad para lo que quieres, pero es lo primero que se me viene a la cabeza. El método Free() no sirve porque es para liberar de la memoria el Objeto -tengo entendido-. [OFFTOPIC]--- Linspire, quieres aprender a crear DLL's... yo también... ya que no he encontrado información concisa para Builder. Pagaría 100 euros a quien me enseñara... ... es broma... Aliviate y pasala bien. Tratare de seguir buscando sobre DLL.
|
|
|