|
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
1
« en: Viernes 20 de Junio de 2008, 15:03 »
segun tengo entendido cuando haces 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
« en: Jueves 12 de Junio de 2008, 14:13 »
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
« 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
« 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
« 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
« en: Jueves 26 de Abril de 2007, 19:51 »
claro que se puede prueba con esto var im:TImage; i:integer; begin for i:=1 to 16 do begin im:= (self.FindComponent('image'+intToStr(i))) as TImage; ImageList1.GetBitmap(0,Im.Picture.Bitmap); end;
Espero te sirva. Suerte.
7
« 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 if not (Tabla.Locate('Campo1',Edit1.text,[loPartialKey,loCaseInsensitive])) then begin //Aqui una de las dos Append o Edit //Tabla.Edit; // Edita el registro Actual Tabla.append; //Agrega nuevo Registro TablaCampo1.asString:= Edit1.Text; Tabla.post; end;
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
« en: Miércoles 14 de Marzo de 2007, 15:24 »
Bueno, solo estoy tratando de hacer eso, Visualizar CheckBox en ShellListView, con ShellListView1.Checkboxes:=True;
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
« en: Miércoles 28 de Febrero de 2007, 17:54 »
19679
10
« en: Jueves 22 de Febrero de 2007, 14:21 »
Bueno varias cosas para observar: procedure TForm2.RadioGroup1Click(Sender: TObject); begin Case RadioGroup1.ItemIndex of 0 : RadioGroup1.Color := clorange; 1 : RadioGroup1.Color := clYellow; 2 : RadioGroup1.Color := clblue; 3 : RadioGroup1.Color := cl green; end; end;
Podrias guardarlo en una variable TColor. Para despues en el momento indicado hacer: Panel x .color := VarColor; public VarColor : TColor; procedure TForm2.RadioGroup1Click(Sender: TObject); begin Case RadioGroup1.ItemIndex of 0 : VarColor := clorange; 1 : VarColor := clYellow; 2 : VarColor := clblue; 3 : VarColor := cl green; end; end;
En esta parte del codigo le cambias el color al radioGroup y segun tu enunciado no debe hacer eso. procedure TForm2.Button2Click(Sender: TObject); begin Case RadioGroup1.ItemIndex of 0 : RadioGroup1.Color := clorange; 1 : RadioGroup1.Color := clYellow; 2 : RadioGroup1.Color := clblue; 3 : RadioGroup1.Color := cl green; end; if checkbox1.Checked then panel1.color := RadioGroup1.ItemIndex; if checkbox2.Checked then panel2.color := RadioGroup1.ItemIndex; end;
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: procedure TForm2.Button2Click(Sender: TObject); begin if checkbox1.Checked then panel1.color := VarColor; if checkbox2.Checked then panel2.color := VarColor; end;
VarColor sera asignada en en RadioGruopClick. Espero haber entendido lo que dudabas, y si te sirve. si no lo volvemos a ver. Suerte.
11
« en: Miércoles 14 de Febrero de 2007, 14:01 »
Creo que lo que buscas esta AquiSuerte amigo.
12
« 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
« 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
« 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
« 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
« en: Jueves 11 de Enero de 2007, 14:12 »
Hola. Prueba de esta manera.
ADOConnection1.Connected:= False; ADOConnection1.Close;
Suerte.
17
« 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
« 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
20
« 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
« 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
« 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
« 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
24
« 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
« 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.
|
|
|