PREGUNTAS CONTESTADAS - Delphi≤nguaje=

 Hay un total de 680 Preguntas.<<  >> 

    Pregunta:  5987 - PROBLEMAS CON INDICES DE TIPO AUTOINCREMENT
Autor:  Carlos Manuel De Portugal Rosales
Hola Amigos,

Tengo un problema y espero que me ayuden a resolverlos...

Tengo un Boton "Aceptar" y adentro de este, tengo dos proceso:

Imprimir un ticket
Guardar datos...

Lo que sucede es que cuando el usuario hace click en el boton, se muestra el ticket en pantalla que fue elaborado con el Quckreport de Delphi 4.0, imprimo, cierro y posteriormente sigue el proceso de guardado, pero en algunas ocaciones se presenta el siguiente error "Key Violation" y de ahi ya no pasa el programa, es decir, ya no guarda ningun dato...

Me puse a investigar y llegue a la conclusión que la yave principal es la que se daña, la yave es Id_Ticket y es de tipo Autoincrement...

Mi pregunta es ¿por qué es que se daña solo en algunas ocaciones?

¿Será que los procesos deben ir por separado y no en un solo boton?...

¿Necesito alguna yave compuesta?

Ayudenme por favor...
  Respuesta:  Angel Tejeda
Que tal?

Bueno. Te tengo una pregunta antes de darte la solución. Cuando hablas de guardar a que te refieres? Pues si solo estas imprimiendo no entiendo a que te refieres con guardar. Si en caso de que necesites guardar algo y lo estas trabajando sobre tabla (utilizando un ttable y no un tquery) posicionate sobre el registro :

table1.setkey;
table1.fieldbyname('id_tickect').asstring:=tickect_no; //tickect_no es la variable donde le dices que numero es el que vas a editar.
table1.gotonearest;
table1.edit;
//Haces los cambios sin tocar el id_tickect
table1.post;

Si es por un query me avisas y te explico.

Bye

    Pregunta:  6047 - COMO ADICIONAR IMAGENES A UN COMBO
Autor:  Hector Collado Fenandez
Estoy tratando de adicionarle un BMP o un ICO a un Combo pero no encuentro la forma, es decir he logrado incorporarle las imagenes, pero al adicionarle la imagen me borra el texto y no me muestra la barra de selección. Si tienes la solución te lo agradeceré infinitamente.
Gracias
  Respuesta:  Hugo Ortega Hernández
hola....

puedes usar el evento OnDrawItem...

lo primero que tienes que hacer es asignarle los bitmaps al combo.... lo puedes hacer desde un TImageList, desde archivos o como quieras.... el codigo basico es el siguiente:

ComboBox1.Items.AddObject(Elemento, Bmp);

donde Bmp es un objeto TBitMap valido obtenido de la fuente que quieras, y Elemento es la cadena que identifica al elemento del combo.... checate la ayuda del metodo addobject para mayor referencia... la idea es que a cada item se le asigna un TBitMap...

una vez asignados, en el evento OnDrawItem haces algo parecido a:

var
c : TComboBox;
ih : integer;
begin
c := Control as TComboBox;
ih = c.ItemHeight;
c.Canvas.FillRect(Rect);
c.Canvas.StretchDraw( Bounds(Rect.Left + 2, Rect.Top,
ih, ih),
c.Items->Objects[Index]);
TextOut(Rect.Left + ih + 6, Rect.Top, c.Items.Strings[Index]);

end;

bueno esa es la idea.... probablemente haya errores de sintaxis porque lo escibi directamente aqui....

ojala y te sirva...

saludos....

    Pregunta:  6141 - ANSI Y UNICODE
Autor:  Fabian Durizotto
Necesito convertir un archivo de texto creado con el Edit de DOS en una tabla de tipo Paradox. El problema es que las letras ñ, Ñ, ü, Ü, ª, etc. me las cambia por otros simbolos. Desearia si alguien me puede dar una solucion urgente.
  Respuesta:  JOSE APARICIO
Efectivamente prueba a restructurar la tabla Paradox y cambiarle el idioma a
"Pdox Ansi Spanish". Si tienes ya datos metidos de carácteres de "ª,º,Ñ,.." se los carga y te pone un símbolo raro pero con ese lenguaje las nuevas inserciones o modificaciones de datos con esos caracteres ya te lo sacará perfecto. Tuve el mismo problema a la hora de imprimir con Rave Reports y se me solucionó.

Suerte.
  Respuesta:  Ulises Ruiz Huerta
Creo que tu probleme tiene que ver con las fuentes que estas utilizando, por un lado con la aplicación con la que estas creando en archivo de texto y, por otra parte con la fuente del componente con que estas desplegando en contenido de la base de datos. Te sugiero, por tanto, que reises esto y hagas que coincidan.

:) ¡Suerte!

    Pregunta:  6325 - APPEND VS INSERT
Autor:  Carlos Manuel De Portugal Rosales
Hola Amigos.

Me gustaria saber cual es la forma correcta de anexar un nuevo registro a una tabla:

A)Append
B)AppendRecord
C)Insert
D)Insert Into de SQL

¿Díganme Cual?
Saludos y Gracias por su ayuda...
  Respuesta:  Gustavo Enríquez
Si la tabla no está indexada, lo más fácil es hacer un append, siempre lo insertará al final de la misma. a menos que quieras insertarlo en una posición en particular, para lo cual deberás ubicarte en el registro deseado y hacer un insert, para que te quede en el lugar que escogiste.

Si la tabla está indexada, da igual, al fin y al cabo siempre lo organizará por el indice, la decisión dependerá de la base de datos que utilices y el tiempo que le tome haciendo un insert o un append. (si utilizas pocos registros no tiene mucha importancia).

El insert into de Sql es aconsejable utilizarlo cuando estás trabajando cliente servidor, y no tienes abierta una tabla (ttable). (El abrir una tabla sólo para hacer un insert consume mucho tiempo y recursos) mientras que con el insert into simplemente se agrega (esto es válido para las actualizaciones también).

No sé a que te refieres con appendrecord?

    Pregunta:  6359 - FECHA Y HORA
Autor:  Hector Luis Collado Fernandez
Quisiera que alguien me dijera si existe alguna funcion o un API para coger la fecha y la hora de la PC. Muchas gracias.
  Respuesta:  abel reynoso
bueno si estas creando una aplicaticion donde deseas que te presente la fecha y hora te dire lo que yo utilizo.

coloca un componente Statusbar y dale doble click en la siguiente pantalla agraga 3 paneles en la propiedades el tamaño pon le 140, coloca un componente Timer del VCL System.

del evento del componente timer.

Statusbar1.Panels[0].Text:= DateToStr(Date);
Statusbar1.Panels[1].Text:= TimeToStr(Time);

y si tu programa tiene un login de seguridad para entrar puedes agragar el usuario al statusbar y asi saber que usuario esta trabajando en ese momento.

Statusbar1.Panels[2].Text:= FrmLogin.Edit1.Text;
  Respuesta:  tony ribera
bueno, en dephi hay una funcion muy sencilla para obtener la hora y fecha del sistema que es:
fecha:
DateToStr(Date)
y la podes usar , por ejemplo, si queres ponerla en un edit
edit1text := DateToStr(Date);
y la hora es
edit1text := TimeToStr(Time);
te aconsejo que te pongas a "urgar" la ayuda del delphi
ahi vas a encontrar cosas que pueden ser muy utiles

TonyR
  Respuesta:  Hugo Ortega H.
Hola...

desde delphi puedes utilizar la funcion Now...

var
FechaHora : TDateTime;
begin
...
FechaHora := Now;
...
end;

saludos....

    Pregunta:  6384 - CAMBIAR NOMBRE DE LA PC Y COMPARTIR DISCO
Autor:  Gabriel Brinkster
Saludos

Como puedo cambiar el nombre del una PC y como compartir un disco duro desde delphi.

GRacias de antemano.
  Respuesta:  Alex Abreu
Amigo para Cambiar el Nombre de la pc por Delphi solo tienes que Utilizar el Regedit y la Instruccion llamada Tregistry que viene como un Uses de Delphi, es sumamente facil.

Y sobre como compartir disco no entiendo en que sentido, pero si te podria decir que con el Powersock puedes enviar o Recibir archivos.

    Pregunta:  6422 - BLOQUEAR DBF
Autor:  Michelle Medina
Tengo una aplicacion en Delphi 1.0 la cual en forma periodica realiza un emptytable y luego escribe nuevamente la base de datos. El problema es que mientras se realiza este proceso, desde la red cualquier usuario puede abrir la base y aparece el error en el programa. Mi consulta es la siguiente: ¿Como puedo bloquear la .dbf para que los usuarios no puedan consultarla mientras yo la estoy sobreescribiendo o puedo hacer que los usuarios no ingresen a esta?.
  Respuesta:  Gerardo Vaca
Puedes utilizar la propiedad de la Tabla EXclusive que te lo restringe para que otros lo puedan utilizar

    Pregunta:  6424 - AñADIR CAMPOS NUEVOS A TABLA ACCESS YA EXISTENTE
Autor:  Paco Garcia Perez
Necesito añadir varios campos nuevos en una tabla access ya existente, utilizo los fielddefs y despues el método para crearla nueva es createtable, pero yo no quiero crearla nueva sino añadirlo campos nuevos, como lo puedo hacer?
  Respuesta:  Ragnarok
lo que tu quieres hacer lanzando una sentecia sql mediante el componente tquery.

la sentencia sql seguiria el siguiente patron:

ALTER TABLE nombre_tabla {ADD{COLUMN tipo de campo[(tamaño)][CONSTRAINT inidice] CONSTRAINT indice multicampo} | DROP {COLUMN nombre_campo CONSTRAINT nombre del indice}}

como es de suponer si quieres añdir un campo utilizas la clausula ADD y la clausula DROP te sirve en el caso de que quieras elimar alguna columna. de todas formas la sintaxis arriba expuesta es para sql standard por tanto comprueba en la ayuda de access cual es la sintaxis apropiada porque puede que difiera un poco.

si necesitas algo mas me mandas un mail

    Pregunta:  6494 - COMO SUMAR COLUMAS EN UN QUICK_REPORT
Autor:  consuelo mañon
Estoy trabajando con delphi 5.0 interprise, tengo un problema con n reporte ya que no se como sumar los resultados arrojados en una columna del mismo,no se si tenga que configurarlo desde las bandas.
Gracias de antemano.
  Respuesta:  Gustavo Enríquez
Si el campo a sumar existe en la base de datos bastará con adicionar una banda de totales en el reporte y agregar un campo calculado con la función de suma en la banda. Ojo la banda debe tener una función de quiebre, es decir que debe agrupar por algún campo en particular. de lo contrario te dará la suma total de la tabla.

También podrás decirle que despues de imprimir el campo lo ponga en ceros para dar el total siguiente.

Si el campo no pertenece a la tabla, o sea que es calculado, te tocará hacer manualmente la suma y mostrarlo al final. esto lo haces utilizando los métodos de after print del campo calculado y el onprint de la banda de sumarización.

    Pregunta:  6511 - CóMO BORRAR REGISTROS DE LA TABLA MAESTRA-DETALLE(PARADOX 7)
Autor:  Carlos Biaggini
Amigos de la web:
no sé mucho de delphi, pero concretamente tengo problemas para eliminar registros de una tabla Maestra que están relacionados con una tabla detalle (uso delphi 3.0 y delphi 4.0 y paradox 7.0)desde ya un abrazo a todos y gracias.
  Respuesta:  Gustavo Enríquez
No sé si sea muy obvio, pero para poder eliminar un registro maestro, primero tendrás que eliminar todos los registros del detalle, si estás utilizando integridad referencial.

En paradox como en cualquier base de datos es necesario hacer esto, a menos que el manejador de bases de datos tenga la opcion de eliminación en cascada.

|<  <<  13 14 15 16 17 18 19 20 21 22 23  >>  >|