PDA

Ver la Versión Completa : Programa (Mini Tutorial) novatos


Caral
13-06-2007, 23:42:13
Primero que nada agradecer al club delphi por permitirme este espacio.
Este mini tutorial solo pretende explicar los conceptos básicos para empezar a trabajar con Delphi, para este se tendrán que tener algunos conocimientos mínimos, muy mínimos, como los míos, así que animo.
He de mencionar que en este ejemplo uso Access como base de datos, no solo por que es el que mas conozco sino por ser de mas fácil acceso al principio, en tal caso se podrá utilizar cualquier base de datos con este ejemplo.
Debo decir que soy como muchos de los que empiezan un novato (aunque digan lo contrario y de lo cual esto agradecido) y que hay muchas maneras de hacer lo mismo, esta es solo una de ellas y no necesariamente la mejor, os aconsejo que este lo toméis como un ejemplo mas (mini tutorial).
Recordad que se me puede pasar algo, así que preguntad sin problemas.
Insto a los maestros de este club, así como a todos los foristas a ayudar en este mini tutorial.
Este programa va a ser para el manejo de una cuenta bancaria:
Depósitos, cheques, transacciones, reportes (QReport).

Iniciemos por la base de datos, Access:
Creemos una nueva base de datos y creemos nuestra primera tabla, Usuarios:
http://img512.imageshack.us/img512/5305/tablaususariosyb6.png


Como veis la clave principal esta en CodUsuario.
Este nos va a servir para entrar en nuestro programa en Delphi.

Ahora creemos nuestra segunda tabla, Banco:
http://img522.imageshack.us/img522/2094/tablabancovp4.png


CodTransac = numérico, automático
Retiros, Depósitos, SaldoAnt, SaldoTotal = Numérico, Doble, automático.



Bueno ahora seguimos con Delphi:
Empecemos un nuevo proyecto:
Al primer Form lo vamos a llamar, Banco y lo vamos a guardar, en la carpeta que nos interese, puede ser en proyects, al unit lo vamos a llamar UBanco.
NOTA: Es muy importante ponerle nombres alusivos a los forms, units y demás componentes ya que se nos hará más fácil entender los programas (esto lo aprendí por supuesto en el club Delphi, donde mas).
Vamos a File, new, Datamodule, esto nos creara un datamodule1, lo guardamos en la misma carpeta del proyecto al unit lo vamos a llamar UDM.
Vamos a View Units, y veremos los dos units Ubanco y UDM creados, además de uno que se llama Proyect1, que es el unit por decirlo así principal.
Abrid el proyect1 y cambiad el orden de esta línea así:

Begin
Application.Initialize;
Application.CreateForm(TDataModule1, DataModule1); Application.CreateForm(TBanco, Banco);
Application.Run;
End.

Como veis esto hace que el datamodule se inicialice primero.

Bueno seguimos con el datamodule:
Vamos a utilizar los componentes ADO, están en la paleta ado.
Por que estos componentes, porque así no tendremos problemas con alias, instalaciones y demás cosas que nos afecten a los novatos.
Bien colocamos en el datamodule un ADOConnection y le cambiamos el nombre a AC1. (Ado Connection 1), fácil de recordar.
Quedaría así:

http://img249.imageshack.us/img249/2204/datamoduleqq0.png


Ahora vamos a tratar de conectarnos a la base de datos:
Le damos doble clic al AC1, y nos aparecerá esta pantalla:
http://img518.imageshack.us/img518/8288/dataconnectionlf7.png

Le damos clic a Build y aparecerá esta otra pantalla:
http://img514.imageshack.us/img514/8888/datapropiedadesoi5.png (http://img514.imageshack.us/img514/8888/datapropiedadesoi5.png)

Como veis usaremos el Provider: Microsoft Jet 4.0 OLE Provider, le damos clic a Siguiente, esto nos pasara a la siguiente pestaña, Conexión:
http://img525.imageshack.us/img525/8618/dataconexion1ze8.png (http://img525.imageshack.us/img525/8618/dataconexion1ze8.png)

Aquí le daremos clic al botón con tres puntos y buscaremos la base de datos en la carpeta donde la hallamos guardado, (recordad donde fue).
Ahora le daremos clic al botón Probar Conexión, si la conexión fue correcta, nos aparecerá una indicación diciendo que la prueba de conexión fue satisfactoria, dadle aceptar a todo para salir de estas pantallas, ya tenéis conexión Delphi, Access, que bien.
Bueno en el siguiente post Tratare de empezar con el programa.
Aqui esta la base de datos:
Edito: Aqui: http://www.terawiki.clubdelphi.com/D...32/Tutoriales/ (http://www.terawiki.clubdelphi.com/archivos/Delphi/Ejemplos/Caral-MiniTutorial.zip)
Esta el codigo completo del tutorial, se llama (Mini Tutorial, novatos.zip)

Saludos

Caral
14-06-2007, 00:51:45
Aquí volvemos:
Bueno empecemos con lo interesante, Delphi:
Ya tenemos el primer form creado Banco, a este le vamos a añadir varios componentes:
NOTA: Hay que tener en cuenta que los componentes conectores de las tablas, AdoTable, AdoQuery, datasource, pueden ir en el datamodule que creamos, simplemente dandole la direccion a estos desde el form, lo digo como comentario, en este caso los colocare directo en el form para facilitar el tutorial.
Aquí veréis más o menos los que van:
http://img509.imageshack.us/img509/2714/fromprincya6.png (http://img509.imageshack.us/img509/2714/fromprincya6.png)

Detalle:
2- Panel, en uno, al caption le ponemos (Nuestro Banco), el otro vació.
1- ADOTable
Cambiar nombre por Banco
2- ADOQuery
a- Cambiar nombre por SumRet
b- Cambiar nombre por SumDep
Ya veremos la sentencia sql de estos
1- PopupMenu
Este nos servirá para los reportes, ya llegaremos.
3- Datasource
Conectar
1- Banco
2- SumRet
3- SumDep
5- Botones, los que prefiráis
Cambiarles el nombre por:
1- Nueva transacción
2- Aceptar Depósito
3- Aceptar Cheque, (Quedara escondido debajo de aceptar depósito.)
4- Reportes
5- Cancelar
1- DBNavegator. ( + )
1- DateTimePicker
Cambiar nombre por DTP1
1- ComBobox
Cambiar nombre por CBTipo
5- DBEdit
1- DBNTransac
2- DBDescrip
3- DBDeposit
4- DBRetiros, (Quedara escondido debajo de dbdeposit.)
5- DBSalAnt
1 Edit
Cambiar nombre por ESaltot
No os olvideis de colocar los labels necesarios, para identificar cada parte, seguid la foto como referencia.

Bueno ya tenemos esto ahora hay que ponerlo en marcha, en mi siguiente post lo haremos, además de hacer el login, el archivo ini, los reportes, huiii, si que falta, bueno un poco de paciencia.
Saludos

Caral
14-06-2007, 04:49:28
Bueno, aquí sigo:
Antes de conectar los componentes abrimos un momento al datamodule y nos posesionamos en el AC1, aquí colocaremos en su opción loginPrompt en False, con esto no nos pedira contraseña la base de datos.
Ahora abramos el form Banco y conectemos los componentes a las tablas.

Empecemos con el AdoTable (Banco):
Coloquémonos en este, en el inspector de objetos buscaremos y pondremos lo siguiente:
1- Connection: DataModule1.AC1
Con esto lo que estamos haciendo es conectarnos al datamodule y al AdoConnection (AC1), al hacer esto se activara el componente y pasaremos al segundo paso.
2- TableName: Buscaremos con la flecha la tabla Banco.
3- Dale doble clic al AdoTable (Banco), te saldrá una pantallita pequeña, dale clic derecho y addFields, te saldrá otra pantallita, en esta veras todos los campos de la tabla, seleccionados, presiona OK, cierra la pantallita pequeña, ya tenemos conectado y listo el primer componente.

Conectemos el ADOQuery1 (SumRet):
1- Hagamos lo mismo que el paso 1 del componente anterior (conectarnos).
2- Estos componentes hacen la conexión a la tabla por medio de sentencia sql, por esta razón no tienen la propiedad tablename, pero tienen la propiedad SQL (TStrings) en donde trabajaremos.
Bien coloquémonos en esta, veremos un botón con tres puntos, al presionarlo nos saldrá una nueva pantalla (String List Editor) en esta escribiremos la siguiente sentencia:

SELECT DISTINCTROW Sum([Banco].[Retiros]) AS [Suma De Retiros]
FROM Banco;

Con esta sentencia hacemos una distinción entre los campos, a la vez sumamos el campo Retiros y lo renombramos, presiona OK y listo.
3-Haremos lo mismo que el paso 3 del componente anterior, por supuesto con este ADOQuery1 (SumRet).

Conectemos el ADOQuery2 (SumDep):
1- Lo mismo que ADOQuery1 (SumRet):
2- Siguiendo los mismos pasos del componente ADOQuery1 (SumRet), pero pondremos esta sentencia sql:

SELECT DISTINCTROW Sum([Banco].[Depósitos]) AS [Suma De Depósitos]
FROM Banco;

3- Haremos lo mismo que el paso 3 del componente anterior, por supuesto con este ADOQuery2 (SumDep).

Bueno ya tenemos la base de datos conectada y a su vez las tablas con todos sus campos en el lugar adecuado.
NOTA: Me han hecho el comentario al respecto de colocar el código y la base de datos de este mini tutorial, si obtengo el permiso del club, lo colocare al final del mismo.
En el siguiente post veremos más.
Espero todavía sigáis este y os sirva.

Saludos

Neftali [Germán.Estévez]
14-06-2007, 09:53:53
Pues muchas gracias Caral.
Estaría bien (si no te importa), subir el código de ejempo al FTP y añadir el link.
¿Qué te parece?

Caral
14-06-2007, 19:46:33
Aquí seguimos.
Primero darle las gracias a Neftali por su comentario y apoyo, con vuestro permiso subiere el código al momento de terminar este, la base de datos creo que es pequeña y se puede poner aquí mismo.
He modificado en primer post, para subir la base de datos, así podrán seguir esto desde el principio.
Saludos

Caral
14-06-2007, 20:52:29
Bueno aquí estoy de nuevo.
Ya nos conectamos a la base de datos ahora conectaremos los DBEdit a sus respectivos componentes.
Ya teníamos conectados los datasource con su respectivo componente ADO, esto lo vimos en el segundo post (revisadlo), de todos modos recordad que se conectan en su propiedad DataSet, con la flechita.
Ahora conectaremos los DBEdit a los DataSource.
NOTA: Quiero hacer notar que también se pueden obtener los dbedit directamente de los componentes Ado, recordáis la pantallita pequeña en donde están los campos, pues con solo seleccionarlos y paradlos al form quedaran listos y activados, este procedimiento es efectivo pero en mi caso prefiero hacer una colocación de los componentes primero y luego la activación de los mismos, es un asunto de gustos, pero de todos modos quise daros la explicación del caso.
Sigamos:
Primero recordad que a los DBEdit se les cambio el nombre así que usare estos (post 2).
1- DBNtransac:
Datasource = Datasource1
DataField = CodTransac
2- DBDescrip:
Datasource = Datasource1
DataField = Descripción
3- DBDeposit:
Datasource = Datasource1
DataField = Depósitos
4- DBRetiros:
Datasource = Datasource1
DataField = Retiros
5- DBSalAnt
Datasource = Datasource1
DataField = SaldoAnt
Listos y conectados, podéis cambiarles el tipo de letra y tamaño en su propiedad Font, bueno hay muchas cosas mas que se pueden hacer, seguro ya experimentareis.

El componente ComBobox (CBTipo):
Nos posesionamos en este y en su propiedad Items (TString) presionaremos el botón, con esto nos saldrá otra pantalla, en esta escribiremos lo siguiente:
Uno debajo del otro:
Retiros
Depósitos
Y presionamos OK en esta pantalla
Su propiedad ItemIndex tiene que estar en -1, con esto aparecerá en blanco obligando a escoger una de las dos opciones (podéis experimentar con esta veréis los resultados).

El componente DBNavigator :
Posesiónense en el y en su propiedad VisibleButtons presione el signo +, cambie a False todos los tipos con la flecha excepto el que dice NBInsert, este quedara True.
En su propiedad DataSource pondremos con la flecha DataSource1.

Bueno por ahora no hemos escrito nada de código (Delphi lo hace todo) pero ya estamos a punto de poner esto en marcha.
Espero sigáis este y no os aburráis con mis explicaciones, trato de ser lo mas explicito posible.
Saludos

Caral
14-06-2007, 21:50:21
Bueno un poquito de código, aquí es donde me corrigen los maestros del Club, con mucho gusto acepto sus criticas.
Empecemos:
Nos posicionamos en el form Banco y le damos doble clic, con esto no llevara a su evento OnFormCreate, en donde ponemos esto:
NOTA: El código esta explicado:

procedure TBanco.FormCreate(Sender: TObject);
begin
DTP1.DateTime:= now; // inicio la fecha al dia de hoy
Banco.Active := True; // activo la tabla
Banco.Last; // le indico que lea el ultimo registro
SumRet.Active := True; // activo el query
SumDep.Active := True; // activo el query
// coloco el resultado de (SumDep - SumRet) en el edit
ESalTot.Text := FloatToStr((SumDep.Fields[0].AsFloat) - SumRet.Fields[0].AsFloat);
// establecemos los dbedits como desactivados
DBNTransac.Enabled := False;
DBDescrip.Enabled := False;
DBRetiros.Enabled := False;
DBDeposit.Enabled := False;
DBSalAnt.Enabled := False;
// Deshabilitamos el combobox
CBTipo.Enabled:= False;
// Deshabilitamos el navegador
DBNavigator1.Enabled := False;
// escondemos los botones, con esto evitamos cometer errores
BRetiros.Visible := False;
BDeposito.Visible := False;
end;

Ahora le damos doble clic al boton Cancelar, este es el evento OnClick, ponemos esto:

procedure TBanco.BcancelaClick(Sender: TObject);
begin
Close; // cerramos el programa
end;
NOTA: Este código lo voy probando, osea que se puede cortar y pegar, sugiero escribirlo, se aprende mejor.
Seguimos con lo demás en el siguiente post.
Saludos

Caral
14-06-2007, 22:42:03
Vamos con dos partes mas:
Recordad que se cambio el caption a los botones asea el titulo, no me explique bien en el segundo post en ese punto, espero me lo disculpéis un dedazo. :D
El nombre (Name) de cada botón lo iré poniendo según se requiera entre paréntesis.
El botón Nueva Transacción (BNTrans):
En el evento OnClick:

procedure TBanco.BNTransClick(Sender: TObject);
begin
// desactivo las tablas, esto es por si hemos hecho
// alguna transaccion anterior
Banco.Active := False;
SumRet.Active := False;
SumDep.Active := False;
// confirmo que los botones estan escondidos
BRetiros.Visible := False;
BDeposito.Visible := False;
// activo la tabla y querys
Banco.Active := True;
SumRet.Active := True;
SumDep.Active := True;
Banco.Last;
// activo el combobox
CBTipo.Enabled:= True;
// activo el dbnavegator, con este ya se puede insertar un nuevo registro
DBNavigator1.Enabled := True;
end;

Ahora el DBNavigator (DBNavigator1):
En el evento OnClick:

procedure TBanco.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
begin
// aqui vamos a definir el tipo de dato que se ingresa
// para esto usaremos el combobox.
case CBTipo.ItemIndex of
0 : begin
// activamos los dbedit
DBNTransac.Enabled := True;
DBDescrip.Enabled := True;
DBRetiros.Enabled := True;
DBDeposit.Enabled := False;
// escondemos y presentamos
DBRetiros.Visible:= true;
DBDeposit.Visible:= False;
end;
1 : begin
// activamos los dbedit
DBNTransac.Enabled := True;
DBDescrip.Enabled := True;
DBDeposit.Enabled:= True;
DBRetiros.Enabled := False;
// escondemos y presentamos
DBDeposit.Visible:= True;
DBRetiros.Visible:= False;
end;

end;

Bueno, ya se pueden hacer varias cosas con el programita pero todavía falta algo de camino, por ejemplo el calculo de ingresos (Depósitos) menos egresos (Retiros), ya casi vamos, ademas de los reportes.
Saludos

Caral
14-06-2007, 23:10:59
Vamos con otro componente:
El Combobox (CBTipo):
En el evento ONChange:

procedure TBanco.CBTipoChange(Sender: TObject);
begin
// Aqui activamos y desactivamos opciones
case CBTipo.ItemIndex of
0 : begin
BDeposito.Visible:= False; // escondemos el boton deposito (BDeposito)
BRetiros.Visible:= True; // hacemos visible el boton retiros (BRetiros)
CBTipo.Enabled:= False; // Deshabilitamos el combobox, evitamos errores
DBNavigator1.Enabled:= True; // avilitamos el navegador
end;
1 : begin
BRetiros.Visible:= False; // Escondemos el boton retiros (BRetiros)
BDeposito.Visible:= True; // Hacemos visible el boton deposito (BDeposito)
CBTipo.Enabled:= False; // Deshabilitamos el combobox, evitamos errores
DBNavigator1.Enabled:= True; // avilitamos el navegador
end;
end;
end;
Este lo puse solito por que vienen los grandes, depósitos y retiros.:D
Saludos

Caral
15-06-2007, 01:04:00
Aquí vamos con el primero, es realmente facil.
NOTA: Tanto para depositos como para los retiros en este estamos usando dos botones, escondiéndolos de vez en cuando, esto se puede hacer con un solo boton o de muchas maneras mas, en este caso lo hago así en recordatorio de como aprendí, bueno sigo aprendiendo, pero tómenlo en cuenta.
Boton Depositos, (BDeposito):

procedure TBanco.BDepositoClick(Sender: TObject);
// hay otras maneras de hacer esto, por ejemplo con campos calculados
// en este minitutorial lo hare con variables, son faciles de entender
var
n1,n2,sal,t1,salt: real; // estas las usaremos para hacer los calculos
begin
If DBNTransac.Text = '' then // aqui envio un mensaje si esta vacio el dbdeit
begin
MessageBox(Handle,
PChar('Tiene que Indicar el numero de Deposito'),
PChar(''),
MB_OK + MB_ICONSTOP + MB_DEFBUTTON1 + MB_APPLMODAL);
end
else // de lo contrario hago lo que sigue
begin
Banco.Fields[2].AsString:= 'Dep'; //Con esto le coloco la palabra Dep.
n1:= SumRet.Fields[0].AsFloat; // aqui se le asigna el valor a n1 Retiros
n2:= SumDep.Fields[0].AsFloat; // aqui se le asigna el valor a n2 depositos
t1:= StrTofloat(DBDeposit.Text); // aqui se le asigna el valor a t1 DBDeposito
sal:= n2 - n1; // aqui se hace la primera operacion y se asigna a sal
DBSalAnt.Text:= floatToStr(sal); // aqui se indica que sal = a DBSalAnt
salt:= (t1 + sal); // aqui se hace la segunda operacion y se asigna a salt
Banco.Fields[8].AsFloat:= salt; // aqui le doy el valor de salt
Begin
Banco.Fields[3].AsDateTime:= DTP1.Date; // establezco la fecha
Banco.Edit; // edito la tabla
Banco.Post; // guardo los resultados
// Deshabilitamos los dbdeit
DBNTransac.Enabled := False;
DBDescrip.Enabled := False;
DBDeposit.Enabled:= False;
DBRetiros.Enabled := False;
DBSalAnt.Enabled:= False;
// escondemos los botones
BDeposito.Visible:= False;
BRetiros.Visible:= False;
// colocamos el combobox vacio y lo deshabilitamos
CBTipo.Text := ' ';
CBTipo.Enabled := False;
// deshabilitamos el navegador
DBNavigator1.Enabled := False;
// cerramos las tablas, o las desactivamos
Banco.Active := False;
SumRet.Active := False;
SumDep.Active := False;
// abrimos de nuevo las tablas, con esto se actualizan
Banco.Active := True;
SumRet.Active := True;
SumDep.Active := True;
Banco.Last; // vemos el ultimo registro
// colocamos el nuevo resultado en el edit
ESalTot.Text := FloatToStr((SumDep.Fields[0].AsFloat) - SumRet.Fields[0].AsFloat);
end;
end;
end;

Ya podeis entrar cifras y probar, el boton de retiros es practicamente el mismo codigo, aun asi lo colocare.
Saludos

Caral
15-06-2007, 18:13:31
Aqui sigo, no se si alguien estará siguiendo este minitutorial, pero la intención es lo que cuenta.
Ya se hizo el código del botón depósitos, ahora necesitamos el botón retiros o Cheques.
Como dije en el post anterior, estos códigos son casi idénticos, casi, vamos a poner el código de este botón y fijaros en las sutiles diferencias, de echo copie y pegue el código del botón depósitos y solo le cambie estas diferencias, revisad lo y las encontrareis.
Botón Cheques (BRetiros):

procedure TBanco.BRetirosClick(Sender: TObject);
// hay otras maneras de hacer esto, por ejemplo con campos calculados
// en este minitutorial lo hare con variables, son faciles de entender
var
n1,n2,sal,t1,salt: real; // estas las usaremos para hacer los calculos
begin
If DBNTransac.Text = '' then // aqui envio un mensaje si esta vacio el dbdeit
begin
MessageBox(Handle,
PChar('Tiene que Indicar el numero de Cheque'),
PChar(''),
MB_OK + MB_ICONSTOP + MB_DEFBUTTON1 + MB_APPLMODAL);
end
else // de lo contrario hago lo que sigue
begin
Banco.Fields[2].AsString:= 'Che'; //Con esto le coloco la palabra Che.
n1:= SumRet.Fields[0].AsFloat; // aqui se le asigna el valor a n1 Retiros
n2:= SumDep.Fields[0].AsFloat; // aqui se le asigna el valor a n2 depositos
t1:= StrTofloat(DBRetiros.Text); // aqui se le asigna el valor a t1 DBRetiros
sal:= n2 - n1; // aqui se hace la primera operacion y se asigna a sal
DBSalAnt.Text:= floatToStr(sal); // aqui se indica que sal = a DBSalAnt
salt:= (sal - t1); // aqui se hace la segunda operacion y se asigna a salt
Banco.Fields[8].AsFloat:= salt; // aqui le doy el valor de salt
Begin
Banco.Fields[3].AsDateTime:= DTP1.Date; // establezco la fecha
Banco.Edit; // edito la tabla
Banco.Post; // guardo los resultados
// Deshabilitamos los dbdeit
DBNTransac.Enabled := False;
DBDescrip.Enabled := False;
DBDeposit.Enabled:= False;
DBRetiros.Enabled := False;
DBSalAnt.Enabled:= False;
// escondemos los botones
BDeposito.Visible:= False;
BRetiros.Visible:= False;
// colocamos el combobox vacio y lo deshabilitamos
CBTipo.Text := ' ';
CBTipo.Enabled := False;
// deshabilitamos el navegador
DBNavigator1.Enabled := False;
// cerramos las tablas, o las desactivamos
Banco.Active := False;
SumRet.Active := False;
SumDep.Active := False;
// abrimos de nuevo las tablas, con esto se actualizan
Banco.Active := True;
SumRet.Active := True;
SumDep.Active := True;
Banco.Last; // vemos el ultimo registro
// colocamos el nuevo resultado en el edit
ESalTot.Text := FloatToStr((SumDep.Fields[0].AsFloat) - SumRet.Fields[0].AsFloat);
end;
end;

end;
Como veis son casi exactos.
Ya podéis ingresar depósitos y hacer retiros (cheques), hasta aquí va funcionando bien, espero os sirva de algo.
Saludos

Caral
15-06-2007, 19:34:59
Ya que tenemos el programa funcionando seguro no queremos que ingrese alguien sin autorización, pues vamos a hacer el login.
Primero vamos a File, New, Form.
Colocamos en el:
1- AdoQuery (ADLogin).
2- Edit
EUsuario
EClave
2- botones
BtnOk
BtnCancel
Y sus respectivos label indicativos.
Quedaria algo asi:
http://img413.imageshack.us/img413/7979/logincp4.png

Lo guardamos con el nombre Flogin y el unit UFlogin.
Ahora para llamar a esta pantalla, le hacemos unos ligeros cambios al form Banco.
En el evento Onformcreate de este añadimos en la primera linea el siguiente codigo, quedaria asi:

procedure TBanco.FormCreate(Sender: TObject);
begin
// Muestra la pantalla de Login
FLogin:=TFLogin.Create(self);
try
FLogin.ShowModal;
finally
FLogin.Free;
end;

DTP1.DateTime:= now; // inicio la fecha al dia de hoy
Banco.Active := True; // activo la tabla
Banco.Last; // le indico que lea el ultimo registro
SumRet.Active := True; // activo el query
SumDep.Active := True; // activo el query
// coloco el resultado de (SumDep - SumRet) en el edit
ESalTot.Text := FloatToStr((SumDep.Fields[0].AsFloat) - SumRet.Fields[0].AsFloat);
// establecemos los dbedits como desactivados
DBNTransac.Enabled := False;
DBDescrip.Enabled := False;
DBRetiros.Enabled := False;
DBDeposit.Enabled := False;
DBSalAnt.Enabled := False;
// Deshabilitamos el combobox
CBTipo.Enabled:= False;
// Deshabilitamos el navegador
DBNavigator1.Enabled := False;
// escondemos los botones, con esto evitamos cometer errores
BRetiros.Visible := False;
BDeposito.Visible := False;
end;

Esto le indica al programa que busque el loguin.
Ahora en el evento OnformShow de este mismo (Banco):

procedure TBanco.FormShow(Sender: TObject);
begin
If not LoginOK then Close;
end;
Esta indicacion es para que si no esta autorizado no se conecte.

Vamos al form (FLogin):
Siguiendo los mismos pasos que en los ADoquery que tenemos en el form Banco, vamos a clocar esta sentencia sql en el string de ADLogin:

SELECT CodUsuario, Nombre, Clave FROM Usuarios WHERE
Nombre = nom


Demosle doble clic a FLogin, en el evento OnCreate:

procedure TFLogin.FormCreate(Sender: TObject);
begin
Cuenta := 0;
Usuario := '';
Nombre := '';
end;

Lo que sigue sera en los eventos OnClick. de los botones.
Demosle doble clic al boton Cancelar:

procedure TFLogin.BtnCancelClick(Sender: TObject);
begin
LoginOK := False;
Close;
end;

Demosle doble clic al boton OK:

procedure TFLogin.BtnOkClick(Sender: TObject);
begin
LoginOK := False;
ADLogin.Parameters.ParamByName('nom').Value:= EUsuario.Text;
ADLogin.Active:= True;
EUsuario.Text:= ADLogin.Fields[1].AsString;
If ADLogin.RecordCount < 1 then
Begin
Cuenta := Cuenta + 1;
MessageDlg('Usuario no encontrado',mtError, [mbOK], 0);
EUsuario.Text := '';
EClave.Text := '';
ADLogin.Active := False;
If Cuenta = 3 then Close;
end
else
If ADLoginClave.AsString = EClave.Text then
Begin
// Usuario := AdoQuery1CodUsuario.AsString;
LoginOk := True;
Nombre := ADLoginNombre.AsString;
ADLogin.Active := False;
Close;
end
else
Begin
Cuenta := Cuenta + 1;
MessageDlg('Clave Inválida',mtError, [mbOK], 0);
EClave.Text := '';
ADLogin.Active := False;
If Cuenta = 3 then Close;
end;

end;

Vamos a colocar unas variables, aqui:


var
FLogin: TFLogin;
Cuenta : integer;
Usuario, Nombre : String;
LoginOK : boolean;

implementation

Este no le he querido comentar mucho para que os familiaricéis con el código, asi aprendemos mejor.
Ahora abrid la tabla, colocar un usuario y clave y probad el programa.
Saludos

Caral
16-06-2007, 00:08:59
Bueno ahora lo que queda es hacer un par de reportes y listo, para eso haré alguno que otro cambio.
Para que esto no se haga mas grande he decidido hacer los ligeros cambios y colocarlo, en esta dirección: http://terawiki.clubdelphi.com/Delphi/Ejemplos/Tutoriales_Demos/?download=Caral-MiniTutorial.zip
El programa se llama (Caral-MiniTutorial. zip)
Este contiene todo el código ademas de la base de datos.
Espero os sirva y le saquéis provecho.
Saludos y suerte

tenporal
17-07-2007, 06:51:50
Saludos Caral, de verdad se agradecen tus ganas de compartir a la comunidad consejos muy utiles para los que se inician en Delphi.

Mi peticion a ti y a los programadores avanzados seria la siguiente:

Realizar una aplicacion paso a paso con las opciones siguientes: materias, profesores, grupos, alumnos. Que la base de datos estuviese en access con el nombre BD, con las siguientes tablas:

TABLA MATERIAS
Campo Tipo Longitud
cvemateria Alfanumerico 5 *campo llave
semestre Alfanumerico 1
materia Alfanumerico 50
*** un ejemplo podria ser 1101, 1, MATEMATICAS

TABLA PROFESOR
campo tipo Longitud
cveprofesor Alfanumerico 3 * campo llave (iniciales)
apellidop Alfanumerico 25
apellidom Alfanumerico 25
nombre Alfanumerico 25
*** un ejemplo podria ser JPL, PEREZ, LOPEZ, JUAN

TABLA GRUPOS
campo tipo longitud
ciclogrupomatprof Alfanumerico 17 *llave compuesta
observaciones Alfanumerico 50
*** un ejemplo podria ser 2007A1020 1101JPL, grupo especial
*** la llave compuesta seria (ciclo-escolar de 5 alfanumericos, grupo de 4 alfanumericos, materia de 5 alfanumericos, profesor de 3 alfanumericos)

TABLA ALUMNOS
campo tipo longitud
cvealumno A 10 *campo llave
ciclo A 5
grupo A 4
cvemateria A 5
cveprofesor A 3
calificacion A 2
observacion A 50

Esas serian las tablas de la base de datos.

Para las opcion de MATERIAS, pudiesemos tener los botones:
Nuevo (agregar una nueva materia, no puede haber 2 repetidas)
Modificar (cambiar los datos de una materia sin cambiar su clave)
Buscar (mostrar los datos de una materia especifica)
Eliminar (Solo se pueden eliminar las materias que no tengan grupos asignados, vease tabla grupos)
Salir (salir de la pantalla de Materias)

Los campos de esta pantalla deben manejarse con los componentes DBEDIT, accesandolos a traves de ADO

Hago esta peticion, por que trate de seguir la aplicacion de Bancos, pero llego el punto en que me perdi y creo que la aplicacion que propongo esta mas facil, espero su respuesta a mi peticion, Gracias por su apoyo.

Atte. Tenporal

Caral
17-07-2007, 21:42:47
Hola tenporal
Te aconsejo que empieces la aplicacion que necesitas en un nuevo hilo, no importa si esta bien o mal, lo importante es que la comiences, con tus dudas incluidas.
Puede ser algo como:
Mi Aplicacion para el colegio, o algo asi.
Cuando empieces, ya le trataremos de meter mano, es mucho mejor, asi aprenderas, siguiendo lo que empieces.
Si hago todo yo o alguien mas es como hacer la tarea, no se trata de eso.:)
Saludos

nachopro
12-08-2007, 08:50:36
Caral, Excelente... logré conectar con ADO mi ejemplo a MySQL vía OBDC

Me gustaría tener el código fuente de esta aplicación porque hay cosas que se me pierden.... (soy nuevo, 2 días en Delphi) y quiero tenerlas bien claras, y dado que el link no funciona aquí estoy

espero que sigas teniendo la fuente, muchas gracias

Caral
12-08-2007, 15:30:40
Hola
El ftp del club a tenido ciertos problemas, no te preocupes ya se van a solucionar.
Saludos

nachopro
13-08-2007, 05:11:07
Caral, se complica mucho si te pido que lo subas a rapidshare o me lo envíes por mail?

izar
31-12-2007, 01:58:37
Buen tutorial. Gracias.

ctrl_attack
17-01-2008, 08:33:08
excelente tutorial, me ha servido de mucho, muchas gracias, por cierto, me encontre con un error, en el query adlogin, me decia que el parametro nom no tenia valor, asi que le puse null y se arreglo, pero como no sabia en un principio, me daba de topes, :pjejeje, por cierto, una pregunta a lo mejor torpe jeje:D, me podrias decir como hacerle en el form de login que al dar enter, verifique la clave, ya para no tener que andarle pulsando con el mause a el boton ok, de antemano muchas gracias por tu ayuda

Caral
17-01-2008, 16:46:32
Hola
No se a que te refieres exactamente, si se coloca el usuario y la clave con solo dar ENTER funciona no hay que presionar el botón OK para nada, prueba lo.
No se si eso es lo que preguntas, si es algo mas, no entiendo.
Saludos

ctrl_attack
17-01-2008, 19:35:24
pues la verdad si, jeje es lo que preguntaba, pero es que a mi no me funciona yo tengo que dar clic a fuerza en el boton, por que al dar enter no hace nada, de todos modos gracias por tu respuesta, tambien doy gracias al club que mas que ser un super club, para mi es una escuela, pues aunque no eh posteado mucho, la verdad por falta de conosimiento, siempre leo sus ejemplos que me han servido de mucho, gracias....

n3m3515n3t
25-01-2008, 06:32:01
primero q nada les mando a todos un gran saludo incluyendo miembros y visitantes, en dias pasados he tomado la desicion de inciar con delphi de manera autodidacta, he hecho algunas micro aplicaciones , pero tengo una duda muy grande,

ejemplo:

suponiendo inserto un boton en mi form copio el codigo que se encuentra en la unit, cierro todo , despues inicio de vuelta delphi y pego el codigo copiado en la nueva unit, trato de iniciarlo y me dice que hay un error por el componente que no se encuentra.

entonces mi duda es :
cual es el metodo a seguir cuando uno quiere cargar codigo fuente directamente en la unit.

agradeceria la atencion prestada a este post, y por cierto muy bueno el articulo que se encuentra aqui . saludos, y pido disculpas si aqui no va el post .

Delphius
25-01-2008, 06:48:31
primero q nada les mando a todos un gran saludo incluyendo miembros y visitantes, en dias pasados he tomado la desicion de inciar con delphi de mare autodidacta, he hehco algunas micro aplicaciones , pero tengo una duda muy grande,

ejemplo:

suponiendo inserto un boton en mi form copio el codio que se encuentra en la unit, cierro todo , despues inicio de vuelta delphi y pego el codigo copiado en la nueva unit, trato de iniciarlo y me dice que hay un error por el componente que no se encuentra.

entonces mi duda es :
cual es el metodo a seguir cuando uno quiere cargar codigo fuente directamente en la unit.

agradeceria la atencion prestada a este post, y por cierto muy bueno el articulo que se encuentra aqui . saludos, y pido disculpas si aqui no va el post .

Hola n3m3515n3t,
Bienvenido a clubdelphi!
Aprovecho la ocasión para informarte de la guia de estilo (http://www.clubdelphi.com/foros/guiaestilo.php). Sea oportuno que te tomes unos minutos para leerla.

Con respecto a tu problema... creo entender tu situación... Inicialmente creas un proyecto, copias todo el código... lo cierras al proyecto... inicias un nuevo proyecto en blanco y creas una unit donde pegas el código.

Si haces esto el código que obtienes es simplemente a que no encuentra la referencia a los objetos al que hace alusión.

Verás, la unit puede o no tener una referencia a un objeto.

Si diseñas un formulario notarás que hay una unit que lo define... y al igual que el formulario necesita una unit donde estar declarado, así lo necesitan los controles que este formulario posea.

Tu error se debe a que copias únicamente el código. La solución crea un form y los objetos neceserios asegurandote de nombrarlos como tienes en el código.

Si recién te inicias, te aconsejo la lectura de los libros que puedes encontrar en el FTP (http://www.terawiki.clubdelphi.com/). Sobre todo el libro Cara Oculta de Delphi 4.
Y en la sección wiki (http://wiki.clubdelphi.com/) encontrarás ejemplos que otros miembros han aportado.

En lo posible evita seguir el tema aquí, pues tu pregunta no va con la temática del tema. Esto está aclarado en la guia.

Saludos,

sevilla19742
05-03-2008, 18:21:53
Me gustaría tener el código fuente de esta aplicación porque hay cosas que se me pierden.... (soy nuevo, 2 días en Delphi) y quiero tenerlas bien claras, y dado que el link no funciona aquí estoy
sevilla19742

Delphius
05-03-2008, 18:37:38
Me gustaría tener el código fuente de esta aplicación porque hay cosas que se me pierden.... (soy nuevo, 2 días en Delphi) y quiero tenerlas bien claras, y dado que el link no funciona aquí estoy
sevilla19742

Hola sevilla19742,
Puede ser útil lo que he dicho justo un mensaje antes:

Hola n3m3515n3t,
Bienvenido a clubdelphi!
Aprovecho la ocasión para informarte de la guia de estilo (http://www.clubdelphi.com/foros/guiaestilo.php). Sea oportuno que te tomes unos minutos para leerla.

Si recién te inicias, te aconsejo la lectura de los libros que puedes encontrar en el FTP (http://www.terawiki.clubdelphi.com/). Sobre todo el libro Cara Oculta de Delphi 4.
Y en la sección wiki (http://wiki.clubdelphi.com/) encontrarás ejemplos que otros miembros han aportado.

En lo posible evita seguir el tema aquí, pues tu pregunta no va con la temática del tema. Esto está aclarado en la guia.

Saludos,

Saludos,

clauzula
17-06-2008, 18:29:28
hola q tal ps no se mucho de delphi y me dejaron un proyecto en dicho lenguaje pero no se ni como empezar me encantaria q pudieras asesorarme mi sistema sera referente a una libreria

gracias de antemano:)

Caral
17-06-2008, 19:49:33
Hola
Bienvenido al club.
Revisa la guia de estilo.
En el wiki del club hay ejemplos sencillos para empezar, presiona aqui. (http://wiki.clubdelphi.com/wiki/index.php/Especial:Popularpages)
Saludos

ELENA3488
18-07-2008, 00:28:54
hola
como siempre dando consejos practicos; gracias como gente como tu por compartir este tipo de info, pude relizar mi proyecto de titulacion; ya que no tenia ningun conocimiento en delphi; reconosco k aun m falta mucho por aprender.

Aprovechando este medio si tienes algun conocimiento o manual de como se usa el InstallShiel (Express). Para realizar el ejecutable de mi aplicacion y poder instalarlo en otra pc.
saludos

ctrl_attack
18-07-2008, 00:33:45
yo te recomendaria mas que nada que te descargues e instales el innosetup para crearte el ejecutable de tu aplicacion, es incluso mas facil de utilizar, y te puedes copiar de los ejemplos que trae, incluso tambien te puedes bajar un asistente del inno setup ke en este momento no recuerdo como se llama, pero es bastante bueno por ke ese es una extencion del programa ke hace todo mas visual, sin escribir tanto codigo, bueno bye:D

ELENA3488
18-07-2008, 01:32:58
ok gracias por la ayuda; la vdd aun desconosco muchas cosas de esto jejeje
lo descargo y lo pruebo

rgstuamigo
12-08-2008, 15:45:23
Hola ctrl_attack para poder hacer que cuando le des enter y se ejecute la validacion del formulario de FLogin, sin utilizar el Raton, has lo siguiente:
*Selecciona el el boton OK y en su propiedad (que esta en el object inspector) ,hay una que dice Defaul, esta lo pone en true y listo.
Espero que te sirva.
"Un consejo de un conejo"

ctrl_attack
12-08-2008, 21:30:11
Te agradesco mucho eso era lo que estaba buscando hace tiempo, de echo me di cuenta de lo que dices, viendo un ejemplo donde asi funcionaba y viendo otro que yo habia echo, medi las diferencias que habia entre los dos y precisamente me di cuenta que era el default lo que me faltaba, aunque gracias de todos modos, rectificas mi experimento, jeje gracias.:D

Patricio
20-11-2008, 14:23:54
hola caral gracias por tu aporte, te hago una consulta, si la base de datos fuera firebird q se tendria q modificar? los componenetes ado andarian o habria que usar otros?

Caral
20-11-2008, 17:31:08
Hola
Para Firebird se usan los componentes IB de la paleta InterBase.
Otra cosa, las sentencias sql no pueden tener distinctrow ni tampoco los corchetes, eso no lo interpreta firebird, por lo demas serviara perfecto.
Saludos

Patricio
20-11-2008, 18:28:21
ok caral gracias, te hago una consulta que version de delphi estas usando, yo voy a cambiar por delphi7, aunque tengo alguna version mas moderna me voy a decidir por esa

Caral
20-11-2008, 18:49:55
Hola
Uso delphi 6.
Saludos

Patricio
22-11-2008, 15:27:29
caral....viendo algunos de tus post y tu codigo veo que entiendes de esto, es por eso que quiero consultarte el porque de tu eleccion a los componentes ado vs interbase, y porque usar access (u otra) vs firebird, te hago esta consulta porque estoy por arrancar un pequeño sistema y tengo definido el lenguaje (delphi 7) pero estoy pensando en la base de datos y en los componentes mas convenientes a usar que vengan con el lenguaje.
Espero q se entienda lo q te quiero consultar. Gracias

w_mathesius
23-12-2008, 16:52:04
Hola,

acabo de registrarme en el foro. Quiero empezar a programar en Delphi y no tengo ni idea de cómo hacerlo. He instalado Borland Developer Studio 2006 y me gustaría comprar algún libro para empezar. Tengo algunos tutoriales pero no sé si quedan anticuados. Quizás pudieras recomendarme algo o algún libro interesante que conozcas. Podría empezar con tu pequeño tutorial, o es demasiado?


Gracias :)

Neftali [Germán.Estévez]
23-12-2008, 17:36:22
Hola,

acabo de registrarme en el foro. Quiero empezar a programar en Delphi y no tengo ni idea de cómo hacerlo. He instalado Borland Developer Studio 2006 y me gustaría comprar algún libro para empezar. Tengo algunos tutoriales pero no sé si quedan anticuados. Quizás pudieras recomendarme algo o algún libro interesante que conozcas. Podría empezar con tu pequeño tutorial, o es demasiado?


Gracias :)

Hola w_mathesius, bienvenido a los foros.
Ya que eres nuevo te recomendo que leas la Guía de estilo de los foros (http://www.clubdelphi.com/foros/guiaestilo.php).

En cuanto a manuales, en el FTP del Club (http://www.terawiki.clubdelphi.com/) tienes mucha información, incluídos manuales, ejemplos,... Personalmente para comenzar te recomiendo "La cara oculta de Delphi 4"; No se asustes, aunque sea para la versión 4, para empezar sirve como cualquier otro.

Un saludo.

Caral
23-12-2008, 18:25:30
Hola
Aparte de lo dicho por el Maestro Neftali
Te sugiero que te des una vuelta por el wiki del club en especial aquí (http://wiki.clubdelphi.com/wiki/index.php/Especial:Popularpages), hay mucha información para poder empezar, ademas cualquier duda que tengas solo abres un hilo y con gusto te ayudaremos en lo que necesites.
Para eso estamos, para ayudarnos mutuamente.
Saludos

w_mathesius
23-12-2008, 20:51:02
Gracias por tu respuesta y amabilidad Caral!
Miraré donde me dices.
Espero poder ayudar yo a alguien algun dia! :)
Saludos

w_mathesius
24-12-2008, 18:48:01
Hola Caral,

perdona que me dirija a tí, pero como me respondiste ayer...:o
Resulta que me he bajado el libro "La cara oculta de Delphi". Lo he impreso y todo, con la ilusión de poder empezar a hacer cositas... pero es mucho más complejo de lo que pensaba.
Verás, me he instalado Borland Developer Studio 2006. Ni siquiera se qué versión de Delphi usa. Pensé que en el libro "La cara oculta de Delphi" empezaríamos haciendo algún ejemplo, a conocer la interfaz gráfica...
Pero se habla y habla de conceptos y no sé cómo meterle mano a esto.
He mirado el código de algunos de los ejemplos que hay en la ftp del foro, pero sigue siendo muy complicado para mí... Verás no tengo ni idea de qué va esto de programación orientada a objetos.

No conoces un manual o algún libro (puedo comprarlo en alguna librería si fuera necesario) donde me enseñen a programar en Delphi desde el principio, con ejemplitos tontos, y a ser posible usando Borland Developer Studio 2006?

Quizás diga muchas tonterías, pero como te digo no tengo ni idea... Tus consejos o la de cualquier otro compañero me serán de mucha ayuda para empezar con éxito. Tengo miedo de desilusionarme y quedarme en el intento...

Muchas gracias y feliz Navidad!

Delphius
26-12-2008, 23:11:42
Hola Caral,

perdona que me dirija a tí, pero como me respondiste ayer...:o
Resulta que me he bajado el libro "La cara oculta de Delphi". Lo he impreso y todo, con la ilusión de poder empezar a hacer cositas... pero es mucho más complejo de lo que pensaba.
Verás, me he instalado Borland Developer Studio 2006. Ni siquiera se qué versión de Delphi usa. Pensé que en el libro "La cara oculta de Delphi" empezaríamos haciendo algún ejemplo, a conocer la interfaz gráfica...
Pero se habla y habla de conceptos y no sé cómo meterle mano a esto.
He mirado el código de algunos de los ejemplos que hay en la ftp del foro, pero sigue siendo muy complicado para mí... Verás no tengo ni idea de qué va esto de programación orientada a objetos.

No conoces un manual o algún libro (puedo comprarlo en alguna librería si fuera necesario) donde me enseñen a programar en Delphi desde el principio, con ejemplitos tontos, y a ser posible usando Borland Developer Studio 2006?

Quizás diga muchas tonterías, pero como te digo no tengo ni idea... Tus consejos o la de cualquier otro compañero me serán de mucha ayuda para empezar con éxito. Tengo miedo de desilusionarme y quedarme en el intento...

Muchas gracias y feliz Navidad!
Hola w_mathesius,
¿Es Delphi tu primer lenguaje? ¿Estudiaste otros lenguajes? ¿Cuáles?
Si es Delphi tu primer lenguaje, y sobre todo si quieres irte directo a conceptos OO sin haber comprendido los conceptos anteriores te vas a dar un pequeño (bueno, lo pequeño es subjetivo) golpe.
Si estás iniciandote en esto de programación, considero oportuno ir aprendiendo los conceptos desde lo más bajo. Delphi es la evolución de Pascal, sigue su sintaxis. Y en este punto inicial, considero que leer el libro de Pascal de Luis Joyanes Aguilar es fundamental para abordar lo básico de lo básico.
Después, para comprender OO si es oportuno tener una visión más conceptual y teórica para abordar el libro "La Cara Oculta de Delphi 4" en dichos aspectos. El libro que trata OO de forma más conceptual, independiente del lenguaje (ques en definitiva lo que vale) es Introducción a la Programación Orientada a Objetos de Timothy Budd.
El pequeño problema de "La Cara Oculta" es que se necesita ya de un poco de formación para comprender apropiadamente los temas.

Igualmente es un excelente libro puesto que va de menor a mayor sobre lo fundamental en Delphi.
No interesa que uses 2006, 2009 o 4. Lo conceptual no ha cambiado, ni tampoco muy mucho la sintaxis que digamos. Se le han llevado algunas mejoras al IDE más que nada, pero en lo que es el lenguaje en si, sigue siendo el mismo.

Para sacar mejor provecho a los conceptos OO, una vez que se los tiene comprendidos y puesto en práctica entre la unión de los libros anteriormente citados recomiendo "UML y Patrones, Una Introduccción al Análisis y Diseño Orientado a Objetos y al Proceso Unificado" de Craig Larmman, y también "UML, gota a gota", de Martin Fowler y Kendall Scott.
Estos dos libros te darán una nueva perspectiva de OO. Pero ojo, no son básicos.

¿Ejemplos? ¿2006? No conozco libros. Te podríamos mencionar a los libros de Marcos Cantú, pero son en inglés y para nada básicos.

La cuestión es que lo más básico y fundamental para comprender Delphi en si, es "Cara Oculta".

En clubdelphi si te tomas el tiempo para buscar, puedes encontrar muchos hilos, ejemplos, código y explicaciones tanto en lo "teórico" como en lo "práctico" de lo que se puede aprender y hacer con Delphi.

Por ello es que te pregunto ¿Qué conceptos previos tienes? Si nos das una perspectiva de tu situación te podríamos guiar.

Saludos,

w_mathesius
28-12-2008, 12:19:07
Hola Delphius,

gracias por tu extensa respuesta.
Sobre programación orientada a objetos no tengo muchos conocimientos. Intenté hace meses empezar con VB pero por falta de tiempo no conseguí avanzar demasiado. Si bien hice algunos ejemplos con Microsoft Visual Studio 2008. Tengo idea sobre conceptos como clases, métodos, propiedades, herencia... pero sólo lo que he leído. Nunca he puesto nada en práctica.

Programo desde hace un par de años en Tcl/Tk, pequeñas aplicaciones que funcionan dentro de una aplicaci¡on de ANSYS llamada Icem CFD. En este sentido, estoy familiarizado con la programación. No obstante, el código que escribo está básicamente destinado a realizar cálculos y operaciones geométricas usando muchas funciones previamente programadas por ANSYS, también en Tcl/Tk.

La idea de empezar con Delphi viene por las ganas de crear mis propias aplicaciones. Cuando empecé con VB encontré algunos libros en los que se empezaba desde cero ya haciendo algunos ejemplos y paralelamente introduciendo conceptos y explicándolos. Creo que es la mejor forma de empezar.
He leído cinco o seis capítulos de "La cara oculta de Delphi". Es cierto que no entiendo todo, pero si la gran parte de las cosas. El hecho de no poder empezar poniendo en práctica lo leído es lo que me angustia, dado que si sigo leyendo sin haber practicado un poco al menos, dentro de algunos capítulos más tendré la cabeza hecha un lío :confused:

Voy a buscar los libros que me comentas y a echarles un vistazo. He intentado (aunque poco) buscar cosas en el foro, pero aún no me manejo bien, tengo que echar más tiempo. Todavía me cuesta hasta encontrar los mensajes que yo he escrito :o.

En cualquier caso agradezco tu tiempo y ayuda, así como la de cualquier compañero que pueda echarme una mano en estos primeros pasos!

Saludos!

Delphius
28-12-2008, 22:27:27
Hola w_mathesius,
Si ya antes probaste VS 2008 no creo que te resulte tan complicado adaptarte a Delphi.
Lo que puede costar un poco más es la sintaxis, la lógica es la misma y lo que en verdad importa.
Un IF es un IF, una clase es una clase. Por el significado conceptual y teórico de la programación no te preocupes.

Tal vez ese es un pequeño problema que tiene la Cara Oculta. No está hecha para introducir ejemplos, como del tipo "calculadoras", "agendas" o cosas por el estilo con los que se suelen aprender.
En este caso sería mejor valerte de lo que se ofrece en los foros. En la sección FTP (http://www.terawiki.clubdelphi.com/) hay muchos ejemplos y también manuales, libros y tutoriales.

Si tienes dudas no dudes en postear. Ya sea tratandolas en un hilo relacionado con el tema, o iniciando un nuevo hilo. Aqui te podremos ser de ayuda.

Más ejemplos y demos, puedes encontrar en la carpeta "demos" que acompaña a la instalación de Delphi.

Saludos,

w_mathesius
30-12-2008, 02:54:01
Hola Delphius,

he encontrado en el foro el código de un programa hecho por "coso" para graficar en 3D. Me ha parecido interesante por su sencillez para aprender algo. Como no dispongo de los archivos he copiado el código en un archivo con extension *.pas (Delphi unit). Lo abro con Borland Developer Studio e intento compilar, pero no me deja.

Si almaceno el código con la extension *.dpr puedo compilar pero me da un error diciendo que no encuentra el archivo *.dfm ...:(


Sabes donde está el problema?
Te adjunto el archivo *.pas.

Muchas gracias de antemano por tu ayuda.

Saludos

Neftali [Germán.Estévez]
30-12-2008, 11:12:44
Bueno, está el PAS que coirresponde a un formulario, pero como se ve ahí es sencillo completar lo que falta pues sólo hay un botón que tiene asignado el procedimiento.

Te subo el ejemplo completo.

w_mathesius
30-12-2008, 12:59:19
Gracias Neftali,

era una cosa sencilla... pero aún tengo que aprender tanto!
Menos mal que estáis vosotros ahí para echar una mano!!:)

Muchas gracias!

Patricio
29-01-2009, 13:30:11
Hola Caral, hace un tiempo te habia hecho una consulta personal, despues de un tiempo volvi, te la repito para que me des tu opinion y me orientes un poco

"caral....viendo algunos de tus post y tu codigo veo que entiendes de esto, es por eso que quiero consultarte el porque de tu eleccion a los componentes ado vs interbase, y porque usar access (u otra) vs firebird, te hago esta consulta porque estoy por arrancar un pequeño sistema y tengo definido el lenguaje (delphi 7) pero estoy pensando en la base de datos y en los componentes mas convenientes a usar que vengan con el lenguaje.
Espero q se entienda lo q te quiero consultar. Gracias"

De nuevo Gracias por todo y todo el foro son de muy buena ayuda

jhonny
29-01-2009, 14:24:42
Hola Caral, hace un tiempo te habia hecho una consulta personal, despues de un tiempo volvi, te la repito para que me des tu opinion y me orientes un poco

"caral....viendo algunos de tus post y tu codigo veo que entiendes de esto, es por eso que quiero consultarte el porque de tu eleccion a los componentes ado vs interbase, y porque usar access (u otra) vs firebird, te hago esta consulta porque estoy por arrancar un pequeño sistema y tengo definido el lenguaje (delphi 7) pero estoy pensando en la base de datos y en los componentes mas convenientes a usar que vengan con el lenguaje.
Espero q se entienda lo q te quiero consultar. Gracias"

De nuevo Gracias por todo y todo el foro son de muy buena ayuda


Me tomare el atrevimiento de contestarte por él. Recuerdo (Lo que no recuerdo es en que hilo) que en alguna ocasión Caral mencionó, que no utilizaba Firebird porque no le habia sido posible migrar facilmente desde Access, incluso comentó que era a raiz de que en su base de datos tenia muchas sentencias IIF y parece que su versión de Firebird en aquel entonces aún no tenia dicha función.

No sabría decirte si hoy por hoy, él ya migró su base de datos (Aunque la función IIF ya fue incorporada a Firebird hace ya bastante tiempo), pero lo cierto es que desde mi punto de vista, entre Access y Firebird, sin duda escogería Firebird.

krlox31416
26-02-2009, 20:16:38
te felicito Caral!!!:)

estas utilizando componentes que yo hasta hoy no sabia
más bien siempre los vi más nunca hice el intento de hechar a andar esto..

siempre usaba mis tablas...:D

bothy
16-03-2010, 09:16:38
hola de nuevo caral
excelente tutorial:)

fsolispa
19-04-2010, 19:17:35
hola, tengo un problema muy similar solo que trabajo con delphi 2010 y mysql, a delphi le instale los componentes de zeoslib, todo trabaja muy bien, solo que quiero utilizar los datos del nombre de usuario y contraseña para que con una tabla pueda activar o desactivar opciones del menu principal, actualmente utilizo el loginprompt en "true".

1.- ¿hay forma de poder rescatar esa información para lo que lo quiero.?
2.- ¿debo hacer un procedimiento similar al tuyo para poder tener esa información?

Espero que la explicación sea entendible, gracias de antemano

Caral
19-04-2010, 19:30:20
Hola
Te aconsejo que hagas un hilo nuevo con tu duda, si esta a mi alcance te ayudo con gusto.
Saludos

fsolispa
19-04-2010, 20:21:35
gracias te agradezco

marioar
05-07-2010, 12:20:24
Una pregunta que debe ser tonta, se puede poner en la direccion de la path del adoconnection la direccion de la aplicacion utilizando por ejemplo ExtractFilePath( Application.ExeName )??
Si se puede, como hago? y si no se puede... que me recomiendan hacer??

Neftali [Germán.Estévez]
05-07-2010, 12:34:57
Si, si lo haces por código.
Prueba a generar una cadena de conexión con el Asistente de ADO. Obtendrás un texto similar a este:


Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Archivos de programa\Archivos comunes\Borland Shared\Data\dbdemos.mdb;Persist Security Info=False


Puedes asignar este texto al ADO Connectionpor código y modificarlo para cambiar lo que necesites:


Conn := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +
'c:\Archivos de programa\Archivos comunes\Borland Shared\Data\dbdemos.mdb;' +
'Persist Security Info=False';
ADoConnection.ConnectionString := conn;


Y también puedes cambiarlo, por ejemplo, con algo así:


FileName := ExtractFilePath(Application.ExeName) + '\Data\MisDatos.mdb';
Conn := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +
FileName + ';' +
'Persist Security Info=False';
ADoConnection.ConnectionString := conn;

marioar
05-07-2010, 12:59:35
Disculpa la ignorancia, pero, donde pongo el codigo delphi para poder extraer la path de la aplicacion como en el ultimo ejemplo que me diste??
gracias!!

Neftali [Germán.Estévez]
05-07-2010, 13:19:40
Pues lo lógico es que ese código (que lo que hace es montar la conexión ADO) vaya en el OnCreate o en el OnShow del formulario principal.

Aunque no es algo "fijo"; Habría que saber exactamente cómo es el programa y la conexión que estás montando.

elsamurai
12-12-2010, 21:36:20
waoo si que fue un gran tutorial,cada ves que hagas algo asi avisame para leerlo y aprender mas,si puedes has uno sobre los uso del quickreport y y del installshield gracias de nuevo

Caral
12-12-2010, 22:30:04
Hola
Gracias.
Si hago algo de QReport con gusto lo pongo y aviso.
Saludos

jandrorm
03-01-2011, 12:04:28
Buenas he estado buscando el codigo completo en el FTP y no lo he encontrado, fue elminiado o esta en algun sitio en concreto? Gracias.

Casimiro Notevi
03-01-2011, 12:21:44
Aquí está (http://www.terawiki.clubdelphi.com/archivos/Delphi/Manuales/Mini_Manual_Delphi.zip), la verdad es que está complicadito de encontrar, hace falta reorganizar esa sección.

jandrorm
04-01-2011, 01:02:39
Una pregunta, ¿es solo un documento de texto de una pag? Gracias de nuevo.

Caral
04-01-2011, 01:50:52
Hola
He vuelto a subir al ftp el archivo, no se por que se perdio.
AQUI ESTA. (http://www.terawiki.clubdelphi.com/archivos/Delphi/Ejemplos/Caral-MiniTutorial.zip)
Me gustaria que se pudiera poner tambien el enlace en el primer post, por favor algun moderador que pueda modificar este se lo agradeceria.
Saludos

Casimiro Notevi
04-01-2011, 02:18:45
No se puede poner el orden, está ordenado automáticamente por orden alfabético, lo que he hecho ha sido ponerle un '_' (guión subrayado) delante, así que el enlace ahora debe ser:
Te he modificado tu enlace, Caral, para que vaya al archivo.
Si prefieres otra solución... lo dices y veremos qué se puede hacer.

Caral
04-01-2011, 02:36:42
Hola
Amigo me referia al primer post de este hilo, en ese no sale el archivo directamente.
Si lo puedes modificar seria estupendo amigo.
Saludos

Casimiro Notevi
04-01-2011, 02:46:15
Oopppsss... es que ya estoy algo dormido :D

Ya está puesto, además he vuelto a dejarlo como estaba al principio, sin el guión subrayado.

Avísame si he vuelto a equivocarme... me voy a la cama ya... buenas noches!!!

jandrorm
04-01-2011, 09:34:15
Hey perfecto, muchas gracias a ambos :D

jose_kira_sk8
09-08-2011, 04:26:19
mmm,bueno el tutorial ,pero no podes hacer una base de datos como la gente en access... Ibexpert rules

Patricio
13-08-2011, 17:14:36
hola caral gracias x tus aportes primero que nada, y ahora viene la consulta, el minitutorial funcionaria tambien con delphi 7? y andaria con varias versiones de access o no, es decir si funciona con el 2003 pero no con el 2007 x ejemplo o no habria ningun drama con eso. Gracias

Caral
13-08-2011, 19:18:46
Hola
Funciona bien en todo lado:D
Delphi 6, 7 etc....
Access 2003, 2007 etc....
Saludos
PD: No hay drama :D;)

pelayo
27-10-2011, 21:24:30
Algo así andaba buscando, deseo iniciarme en Delphy.
Mañana devoro este hilo.
Gracias y felicidades por tu valiosa coperación.

Donde puedo bajar una version Delphy adecuada para aprender?

Gracias

Casimiro Notevi
27-10-2011, 22:33:42
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php)?, gracias por tu colaboración.

Esto no tiene nada que ver contigo, pelayo, son cosas mías:
============================================
EDITO: Es en estos casos cuando yo le pregunto a los señores de Embarcadero:
"¿Qué hacemos con la gente que quiere aprender/iniciarse/conocer, etc.?
Pues se buscan una versión "de esas" o se van M$ :confused::mad::(
============================================

Delphius
29-10-2011, 01:06:21
Me extraña Casimiro... ¡habiendo una solución, elegante, simple y por cierto Open Source: Lázarus/Free-Pascal. ;)

Casimiro Notevi
29-10-2011, 01:14:50
Me extraña Casimiro... ¡habiendo una solución, elegante, simple y por cierto Open Source: Lázarus/Free-Pascal. ;)

Por supuesto, en eso tienes razón :)

maxzama
06-02-2015, 12:50:27
hola.

El problema, es que no veo las imagenes del tutorial. (Tengo que vajar alguna aplicacion, para esto o algun permiso).

disculpen la molestia, y espero sus respuesta por favor y gracias...

Casimiro Notevi
06-02-2015, 12:56:59
Me temo que los de imageshack las han borrado :mad:
A ver si Caral las tiene y vuelve a subirla a otro sitio.

Por cierto, 'vajar' :eek:, hombre, un poquito de cuidado con la ortografía ;):p

maxzama
06-02-2015, 16:31:23
jaja, vale. gracias. (corrección:= 'bajar')...

Ñuño Martínez
09-02-2015, 10:53:48
En realidad Imageshack no ha borrado las imágenes, sino que ahora, si quieres enlazarlas desde fuera, hay que pagar. También hay que pagar para subir nuevas imágenes.

Caral
10-02-2015, 05:09:50
Hola
La verdad no se donde estarán las imágenes, mi ordenador se estropeo y se perdieron muchas cosas:o
La ventaja es que el código y los forms están en el ftp del club y se puede seguir el tutorial bajándolo.
Es cuestión de seguirlo paso a paso y servirá igualmente.^\||/
Saludos

LIA_GUILLERMO
19-10-2016, 19:20:12
Excelente comenzaré a seguir paso a paso, gracias por compartir conocimientos, estoy empezando con Delphi, cualquier comentario te lo hago llegar, gracias y saludos Caral