• Viernes 29 de Marzo de 2024, 13:12

Mostrar Mensajes

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 - juanlaplata

Páginas: [1] 2
1
Delphi / Re: Problema Con Consulta
« en: Viernes 20 de Junio de 2008, 15:03 »
segun tengo entendido cuando haces
Citar
tclient.fieldbyname('nomb').asstring:=edit1.text;
lo que haces es asignar el valor del TEdit al campo 'nomb' del registro actual.
Si lo que deseas es hacer una busqueda usa el find o findNearest.

2
Delphi / Re: Listbox Automatico
« en: Jueves 12 de Junio de 2008, 14:13 »
Citar
Tambien quisiera saber como puedo visualizar secuencialmente imagenes
jpg ( o todo tipo de formatos ) desde un LISTBOX en un TIMAGE. los
archivos de imagenes los cargo desde la pc al lisbox despues que esté
corriendo la aplicacion .

Timage.Picture.LoadFromFile(pchar(directorioDondeEstaLaImagen+'\'+ListBox.Items[ListBox.ItemIndex]));

3
Delphi / Re: Problemas Al Exportar Dbgrid A Excel
« en: Miércoles 11 de Junio de 2008, 17:51 »
Se me hace que es el formato del numero de la celda del Archivo Excel, prueba tal ves mandandolo como texto.

4
Delphi / Re: Funciones Recursivas
« en: Viernes 18 de Mayo de 2007, 19:33 »
des ser asi vamos a ver uno de los ejemplos que te va a dar en la facu.
Calcular el factorial de un numero entero.
1) el factorial un numero es la suma de el y sus predecesores.
Entonces: El factorial de 3 es 3+2+1.
En recursividad seria
Fac (3) = 3+ Fac (2)
Fac (2) = 2+ Fac (1)
Fac (1) = 1+ Fac (0)
Aca es donde se encuentra el caso base o raiz. Para este caso por definicion el fac(0) y fac(1) es 1, entonces

Factorial (n:entero):entero

 si (n=0) o (n=1)
   then resultado:= 1 {finaliza}
   else resultado:= n+Factorial(n-1)   {llamda recursiva}

5
Delphi / Re: Funciones Recursivas
« en: Martes 15 de Mayo de 2007, 17:27 »
Sobre recursividad: debes encontrar los casos claves o raices que dan tope a la recursividad. Una ves encontrados estos casos y la forma de preguntar por ellos no es cosa mas que llevar un contador.
Por empezar a estudiar creo que deberias hacerlo tu, si no sabes como deberas aprender, ademas aqui no se resuelven tareas. Saludos

6
Delphi / Re: Ayuda Con Images
« en: Jueves 26 de Abril de 2007, 19:51 »
claro que se puede prueba con esto
Código: Text
  1. var im:TImage;
  2.     i:integer;
  3. begin
  4. for  i:=1  to 16 do
  5.   begin
  6.      im:= (self.FindComponent('image'+intToStr(i))) as TImage;
  7.      ImageList1.GetBitmap(0,Im.Picture.Bitmap);
  8.   end;
  9.  

Espero te sirva. Suerte.

7
Delphi / Re: Dbedit Y Ado
« en: Martes 20 de Marzo de 2007, 13:45 »
Yo te recomiendo en ese caso que uses un Edit para cada campo.
De esta manera haces vos por voluntad propia el insert, de lo contrario lo hace automatico la coneccion DBEdit.
Entonces q la hora de insertar lo haces previa busqueda
Código: Text
  1.  
  2. if not (Tabla.Locate('Campo1',Edit1.text,[loPartialKey,loCaseInsensitive])) then
  3.    begin
  4. //Aqui una de las dos Append o Edit
  5. //Tabla.Edit; // Edita el registro Actual    
  6.    Tabla.append; //Agrega nuevo Registro
  7.    TablaCampo1.asString:= Edit1.Text;
  8.    Tabla.post;
  9.    end;
  10.  
  11.  

Para que te reconosca "TablaCampo1" todo junto haces doble click sobre la tabla y le das addAll, lo que se hace con esto es dar acceso directo a cada registro de la tabla. Lo que esta a continuacion ".asString" es la manera que lo vas a tratar, puede que el campo sea o no string.

Si no para no tener que modificar tanto tu codigo deberias ir probando con el estado de edicion de la tabla, en el  onchange del DBEdit verificar que no exista el dato que se esta escrib. Si existe que avise.
Bueno espero te sirva, Suerte.

8
Delphi / Visualizar Checkbox En Shelllistview
« en: Miércoles 14 de Marzo de 2007, 15:24 »
Bueno, solo estoy tratando de hacer eso, Visualizar CheckBox en ShellListView,
con
Código: Text
  1. ShellListView1.Checkboxes:=True;
  2.  
ya se ve que hay un espacio destinado para tal fin, pero no me deja checar o deschek en ejecucion, no encuentro forma.
Es para desp. con los elegidos mandarlos a otro dir.
Desde ya gracias a todos.

9
CONCURSO / Re: Miembros - 512 Mb
« en: Miércoles 28 de Febrero de 2007, 17:54 »
19679

10
Delphi / Re: Ayuda Con Formulario
« en: Jueves 22 de Febrero de 2007, 14:21 »
Bueno varias cosas para observar:
Código: Text
  1.  
  2. procedure TForm2.RadioGroup1Click(Sender: TObject);
  3. begin
  4.        Case  RadioGroup1.ItemIndex of
  5.            0 : RadioGroup1.Color := clorange;
  6.            1 : RadioGroup1.Color := clYellow;
  7.            2 : RadioGroup1.Color := clblue;
  8.            3 : RadioGroup1.Color := cl green;
  9.        end;
  10. end;
  11.  
  12.  
Podrias guardarlo en una variable TColor. Para despues en el momento indicado hacer:  Panel x .color := VarColor;
Código: Text
  1.  
  2. public
  3.     VarColor : TColor;
  4.  
  5. procedure TForm2.RadioGroup1Click(Sender: TObject);
  6. begin
  7.        Case  RadioGroup1.ItemIndex of
  8.            0 : VarColor := clorange;
  9.            1 : VarColor  := clYellow;
  10.            2 : VarColor  := clblue;
  11.            3 : VarColor  := cl green;
  12.        end;
  13. end;
  14.  
  15.  
En esta parte del codigo le cambias el color al radioGroup y segun tu enunciado no debe hacer eso.
Código: Text
  1.  
  2. procedure TForm2.Button2Click(Sender: TObject);
  3. begin
  4. Case  RadioGroup1.ItemIndex of
  5.          0 : RadioGroup1.Color := clorange;
  6.          1 : RadioGroup1.Color := clYellow;
  7.          2 : RadioGroup1.Color := clblue;
  8.          3 : RadioGroup1.Color := cl green;
  9. end;
  10.        if checkbox1.Checked then
  11.             panel1.color :=   RadioGroup1.ItemIndex;
  12.  
  13.        if checkbox2.Checked then
  14.             panel2.color :=   RadioGroup1.ItemIndex;
  15. end;
  16.  
  17.  
En este evento solo tendrias que asignar el color, pues el case es el mismo que se hace cuando se clikea la opcion del color.
entonces quedaria:
Código: Text
  1.  
  2. procedure TForm2.Button2Click(Sender: TObject);
  3. begin
  4.        if checkbox1.Checked then
  5.             panel1.color :=   VarColor;
  6.  
  7.        if checkbox2.Checked then
  8.             panel2.color :=   VarColor;
  9. end;
  10.  
  11.  
VarColor sera asignada en en RadioGruopClick.
Espero haber entendido lo que dudabas, y si te sirve. si no lo volvemos a ver. Suerte.

11
Delphi / Re: Validación De Rut O Cédula De Identidad
« en: Miércoles 14 de Febrero de 2007, 14:01 »
Creo que lo que buscas esta Aqui
Suerte amigo.

12
Delphi / Re: Optimizando Código
« en: Martes 16 de Enero de 2007, 18:26 »
Creo que lo que te han dicho es que hagas una unica consulta que te devuelva todas las respuestas con el respectivo Id de la preg.
Ejemplo:
Soluciones = (Select idPregunta, respuesta From Repuestas)
Soluciones va a ser la unica consulta que va a estar en memoria.
El tema del locate seria el siguiente.

if ( Soluciones.Locate('idPregunta',val2,[]) )
   then showmessage( Soluciones.FieldByName('respuesta').asString )
   else showmessage('No se encuentra la Pregunta Cuyo Id es '+IntTOstr(Val2));


Soluciones.FieldByName('respuesta').asString con esto accedes a la respuesta de la pregunta cuyo ID = val2

Espero que lo entiendas y te funcione.Suerte

13
Delphi / Re: Base Txt De Datos
« en: Lunes 15 de Enero de 2007, 17:45 »
La mayoria de tus preguntas se resuelven de manera muy sencilla con SQL.
Para eso tendrias que tener los datos en una tabla( y por consiguiente una base).
Pero si aun deseas seguir con el .txt no hay por que no hacerlo.
El principal inconveniente, desde mi punto de vista es que para cualquier cosa que hagas o quieras hacer dependeras de for i:=1 to 100 do y si hay alternativas mejores las prefiero, pero como dije antes se puede y muy bien.
Otra cosa que hay que tener bien claro son las posiciones dentro del .txt de donde empieze un campo y donde termina, para la lectura del dato no?.
Entonces veamos, con esto leemos el arch. renglon a renglon.

public
archivo : TStringList;

....

FormCreate(...);
begin
archivo:= TStringList.Create;
...

FormDestroy(...);
begin
archivo.Free;
...

Procedure leerArch(...);
begin
for I:= 0 to (archivo.count)-1  do
          begin
          temp:= archivo.Strings;
          DestinoCampo1.text:=  copy(temp,PosIniCampo1,CantLetras);
          DestinoCampo2.text:=  copy(temp,PosIniCampo2,CantLetras);
          DestinoCampo3.text:=  copy(temp,PosIniCampo3,CantLetras);
          DestinoCampo4.text:=  copy(temp,PosIniCampo4,CantLetras);
          // etc
          end;
....

Con este codigo podrias llenar tranquilamente una grilla.
Ahora vamos a las preguntas.

Deberias mandar a llenar un ListBox como tu dices pero solo con el campo Curso,
esto seria

for I:= 0 to (archivo.count)-1  do
          begin
          temp:= archivo.Strings;
          ListBoxCurso.add:=  copy(temp,PosIniCurso,CantLetras);
          end;

y luego en el click del ListBox Guardar en una variable auxiliar (Aux) el contenido de la seleccion para rellenar otro ListBox2 solo que esta ves dentro del Loop (For) ir preguntando si el CampoXX tiene la info de Aux.

Bueno espero haber sido claro. Cualquier Cosa lo seguimos estudiando. Suerte

14
Delphi / Re: Error Bd Ya Abierta En Modo Exclusivo
« en: Viernes 12 de Enero de 2007, 14:33 »
Bueno veamos con esto.
Abrir Access. No la base de Datos.
Luego Archivo Abrir. Explorar hasta llegar a la base.
Ahi vemos que el boton de abrir es desplegable(en access 2000; si no hay opciones en los otros Access) ahi elegir solo abrir (que no diga exclusivo).
Una ves abierta la base.
Vamos a Menu Herramientas/Opciones la pestaña Avanzadas ahi tienes el modo de apertura de la base.
Eliges el que te conviene y Aplicar.
Archivo Guardar.

Suerte.

15
Delphi / Re: Dblookcombobox Anidado
« en: Jueves 11 de Enero de 2007, 14:35 »
Bueno aqui vamos.
en primer lugar creo que al ADOQuery le debes definir un parametro, en esta caso ComboBox.Text , creo que asi nomas no entra el dato.


ADOQuery1.Parameters.ParamByName('aux').asString:= Combox.Text;

combobox2.Items.Add(ModuloEasyExa.ADOQuery1.SQL.Text:='select t1.NombreTema from TemaExp as t1 , experienciae as t2 where NombreExp= :aux and t1.idExperienciaE=t2.idExperienciaE');

Igualmente vemos la otra forma.
supuestamente tienes dos tablas. Ejemplo

T1=(idT1, Nombre1)
T2=(idT2, Nombre2, idT1)

DBLookUpComboBox1 relacionado con T1
DBLookUpComboBox2 relacionado con T2

Cuando tu haces Click en  DBLookUpComboBox1 no hace mas falta que filtrar T2
con KeyValue recuperado en esta click.
Entonces DBLookUpComboBox1.KeyValue va a ser idT1
codigo:
T2.Filtered:=false;
T2.Filter:='idT1 = '+IntToStr(DBLookUpComboBox1.KeyValue);
T2.Filtered:=True;

Y automaticamente tendrias que ver de T2 solo lo relacioando con T1 mediante su id.
Espero te sirva y mucha suerte.

16
Delphi / Re: Error Bd Ya Abierta En Modo Exclusivo
« en: Jueves 11 de Enero de 2007, 14:12 »
Hola. Prueba de esta manera.

ADOConnection1.Connected:= False;
ADOConnection1.Close;

Suerte.

17
Delphi / Re: Trawprinter
« en: Lunes 8 de Enero de 2007, 16:21 »
Bueno hola ante todo. veamos si puedo ayudarte.
Sal de tu proyecto( File -> Close All ).
Y abrimos lo siguiente:
Archivos de Prog\Borland\Delphi6\Lib\dclusr.dpk
Este es un paquete de componentes al que le podemos agregar la que querramos. Eso es lo que vamos a hacer.
Vemos un pequeño Form le damos al boton ADD y en el brouser buscamos la unidad .pas que vamos a  agregar ( para no tener unidades que agreguemos dispersas recomiendo que las copien en esta Ruta. No es ni menos que la libreria de delphi Default . Archivos de Prog\Borland\Delphi6\Lib) . Una ves hecho esto le damos al boton Compile.
Si todo anduvo bien guardar y volver abrir tu proyecto.
Espero que funcione y sea ese tu problema.

18
Delphi / Re: Problemas Con Enlaces
« en: Jueves 21 de Diciembre de 2006, 14:34 »
Yo entiendo que necesitas conectarte  con la Base, en primer lugar y luego con cada tabla.
Para esto debes por ejemplo elegir un ADOConnection a esta componente conectarlo con la base de datos. Y luego con un ADOTable para cada tabla con la que te quieras comunicar. A esta componente una ves conectada solo le indicas en la Propiedad TableName con que tabla te quieres comunicar; o en su defecto con una consulta ADOQuery donde se puede agregar un codigo SQL sin problemas.
A estas dos ultimas componentes en la propiedad Connection le asignamos en tiempo de diseño el valos ADOConnection

19
Delphi / Re: Programa Que Abra Un Internet Explorer
« en: Jueves 7 de Diciembre de 2006, 14:45 »
ShellExecute(self.Handle,'open', pchar('iexplore.exe'), 'http://foros.solocodigo.com', nil, SW_SHOWNORMAL);

No se si es lo que buscabas. Espero te sirva.

Mira tambien aqui

20
Delphi / Re: Llamar Ochanging Del Pagecontrol Por Codigo
« en: Lunes 6 de Noviembre de 2006, 12:33 »
Cada TabSheet tiene un evento OnShow, como el on change es generico para todos, le asignas el onChange a todos los onShow de cada tabsheet. probalo creo que funca.

21
Delphi / Re: Combobox
« en: Jueves 2 de Noviembre de 2006, 14:42 »
Si lo usas con datos de una tabla (por lo que dices que recoge como clave) te conviene usar:
DataSuorce propiedades:
DataSet = la tabla de donde se va  a sacar tanto el dato como lo que sera la clave.

DBLookUpComboBox propiedades:
ListSource: selecc. el dataSource antes mencionado
ListField: el campo de la tabla a visualizar
KeyField: la clave de la tabla, o el valor que quieres retener una ves selecc. un item de la lista.

Luego recoges este valor (una ves elegido) como
DBLookUpComboBox.KeyValue;

22
Delphi / Re: Eliminar Los Hints O Mensajes Emergentes De Ayuda
« en: Martes 31 de Octubre de 2006, 13:07 »
No se bien si es lo que preguntabas, pero la mayoria de los componentes visuales, si no todos tienen la propiedad Hint y ShowHint
hitn tipo string, seria el mensage que se visualiza, y showHint = True se visualiza;
showHint = False No se visualiza. Espero poder ayudar, si n era esto especifica un poco mas y lo vemos.

23
Delphi / Re: Funciones Delphi
« en: Jueves 28 de Septiembre de 2006, 15:17 »
Bueno empecemos:

1ro. Crear un alias en la ODBC de la PC.

Como: Panel de Control -> Herram. Administ.  -> Origen de Datos ODBC  (xp)

                                    -> Fuentes de Datos ODBC  (w98)

Boton Agregar -> Selecc. Driver (Tipo de BD) -> Nombre y Desc. -> Boton Selecc. (Explorar hasta la BD) Aceptar
El nombre que elegimos sera nuestro ALIAS.

2do. Conectar desde Delphi.

Agregar una componente "ADOConnection1" de la paleta ADO y en la prop. ConectionString "Click". -> Boton Build -> Elegir Proveedor ODBC -> Siguiente -> Selecc. "Ussar Nombre de Origen de Datos" ahi selecc. el ALIAS creado anteriormente, podemos ademas agregar NombUs, Contraseña Probar la conecc. etc. Aceptamos y listo.
Por ultimo en la propiedad Conected = True
Luego de la mismo paleta agregamos ADOtable con la Prop. Connection = ADOConnection1

Espero te funcione y sirva. Saludos :hola:

24
Delphi / Re: Mejorarla Interfaz
« en: Miércoles 20 de Septiembre de 2006, 14:30 »
en este sitio hay de todo, lo encontre revolviendo los foros Delphi

post original en  "http://www.clubdelphi.com/foros/archive/index.php/t-2333.html"
por:
"frankmch"
"busca lo que necesitas en esta pagina"
"http://www.tmssoftware.com"

25
Delphi / Re: Inserciones Con Adoquery
« en: Viernes 25 de Agosto de 2006, 15:21 »
Sin duda que el .mdb tiene que ir en el paquete. Por que en la maq. destino puede o no tener access (como para crear una base nueva), pero aun asi no tendra la estructura predefinida por nosotros.
En cuanto a la coneccion, no esta mal lo que haces, ya que es muy amplio en el sentido de que si el usuario cambia de lugar la base se la puede informar al "udl" de este cambio y no deja de func. la  aplicacion, ya que pudiendo hacer la connecion directamente en tiempo de diseño puede traer esa complicacion que describo mas arriba. Pero se le puede buscar la vuelta, de conectar en tiempo de diseño y codificar el cambio de destino de la base, (siempre que puedas editar el "'udl" que es quien sabe donde esta la base).
En cuanto al bloqueo lo que podrias hacer es desde access ponerle al "mdb" contraseña, y se la indicas al momento de "Database.Open" en el comienzo de la Aplicacion. o tal ves menos efectiva le pones como propiedad oculta antes de incluirla en el paquete y que la copie asi en la maq. destino.
No he echo mucho de esto, de impedir el ingreso , asi que si encuentras alguna otra solucion me la cometas Si?
Saludos y suerte.

Páginas: [1] 2