Sie sind auf Seite 1von 25

Universidad del Caribe

Laboratorio de Delphi
Ambiente de Trabajo Preguntas de Repaso Cuales son las tres versiones de Delphi 5?

Dnde se pueden ver y modificar las listas de propiedades y eventos? Ejercicio Mueva la paleta de componente para hacer espacio para agregar otro botn en cualquiera de las barra de acceso directo (toolbar). Haga clic con el botn de la derecha del Mouse y seleccione Customize. Para agregar un botn seleccione la pestaa Commands de la ventana Customize, seleccione View de la lista Categories; - para agregar un botn a uno de los toolbar simplemente arrstrelo desde la lista Commands y djelo caer en el toolbar deseado - seleccione Project Manager arrstrelo y djelo caer en el toolbar deseado. Proyectos, Unidades y Formularios Preguntas de Repaso Cuales archivos contienen el cdigo del formulario? Dnde son almacenados los proyectos?

Ejercicio 1
2

Cree una carpeta (directorio) para los proyectos del laboratorio Cree un nuevo proyecto en Delphi seleccionando File | New Application del menu principal Coloque un botn en el formulario Grabe el proyecto seleccionando File | Save Project As. Delphi preguntar primero por el nombre de la unidad. Grabe el proyecto en la carpeta que usted cre.

3
4

Pgina: 1

Universidad del Caribe

Grabe la unidad con el nombre PrimeraUnidad, luego, Delphi le preguntara por el nombre del proyecto. Grabe el proyecto con el nombre primero. Ejecute el proyecto haciendo clic en el botn run Utilizando el explorador de windows, mire los archivos que fueron creados en el directorio. Haga doble clic en el archivo ejecutable (EXE) y ejecute el proyecto desde el explorador. Agregue un formulario nuevo al proyecto, para esto utilice la opcion File | New Form del men principal o haga clic sobre el botn
.

6 7

Coloque un componente Button en el formulario nuevo y coloque el siguiente letrero Segundo Formulario en la propiedad Caption

10 Ejecute el proyecto haciendo clic en el botn Run o presione la tecla F9. 11 Aparece el primer formulario en la corrida. Cmo poner a correr el segundo formulario? 12 Vuelva a tiempo de Diseo.
13 14

Seleccione la opcin Project | Options del menu principal. Cambie el formulario principal haciendo clic en la casilla Main Form, seleccione el segundo formulario, presione el botn OK. Ejecute el proyecto y verifique los resultados.

Diseador de Formularios Preguntas de Repaso Porque se debe de utilizar una convencin consistente de nombre para los componentes? Cmo puede usted controlar la configuracin de los grid en el formulario? (para mostrar los grid o alinear a los grid) Cules son los cuatros tipos de propiedades? Qu significa la ellipsis (...) prximo a una propiedad?

Pgina: 2

Universidad del Caribe

Cul tipo de propiedad puede tener mas de un valor? Cmo se le llama al procedimiento que puede ser ejecutado cuando usted hace clic en un botn (o cualquier otra accin)? Ejercicio Usted va a construir un formulario 1. Agregue estos componentes al formulario y cambie sus nombres Un componente Edit (desde la pagina Standard); pngale de nombre edit_TextForLabel Un componente GroupBoxt (desde la pagina Standard); pngale de nombre GroupBox_Time Dos componentes buttons (desde la pagina Standard); pngale de nombre button_ResetGauge, button_Update Dos componentes Label (desde la pagina Standard); pngale de nombre label_Time, label_TextFromEdit Un componente gauge (desde la pagina Samples); pngale de nombre gauge_AmountDone Un componente timer (desde la pagina System); pngale de nombre timer_AdjustGaugeProgress

2. Grabe el proyecto: grabe la unidad del formulario como UnidadDisenadorFormulario y grabe el proyecto como disenadorFormulario.

Pgina: 3

Universidad del Caribe

3. Cree los siguientes eventos: Para programar los eventos siga los siguientes paso:

Seleccione el componente al cual le va a programar el evento (ya sea haciendo clic sobre el componente o buscndolo en el combobox del inspector de objetos) Seleccione la pgina Events en el inspector de objeto Seleccione el evento deseado Haga doble clic en el combobox que se encuentra en la parte derecha del componente(no presione el botn del combobox, haga doble clic sobre la seccin en blanco del combobox)

Para el evento OnClick del button_ResetGauge: Gauge_AmountDone.Progress := 0; Para el evento OnClick del button_Update: Label_TextFromEdit.Caption := edit_TextForLabel.Text; Y para el evento OnTimer del timer_AdjustGaugeProgress: // Pone la hora actual Label_Time.Caption := TimeToStr(Time); // si el gauge no ha alcanzado su valor maximo,le suma uno a la propiedad Progress if Gauge_AmountDone.Progress <= Gauge_AmountDone.MaxValue then Gauge_AmountDone.Progress := Gauge_AmountDone.Progress + 1; 4. Ejecute el proyecto y verifique que funciona Ejemplo de los Componentes Preguntas de Repaso Cmo se ponen a trabajar juntos los componentes de la pagina manejador de archivos? Cmo se relacionan los componentes Page y TabSheets? Qu le ocurre al TabSheet si usted borra el control Page? Ejercicio
1

Cree un nuevo proyecto en Delphi seleccionando File | New Application del menu principal
Pgina: 4

Universidad del Caribe

Grabe el proyecto: el nombre de la unidad UnitFormEjemploComp.pas, y el nombre del proyecto EjemplodeComponente.Dpr

Pgina: 5

Universidad del Caribe

Cree el formulario anterior agregando los siguientes componentes y cambiando los valores de las propiedades: Panel (Pgina Estndar) Name = Panel_Barra Align = alTop Caption = (Borrar el contenido)

Coloque tres SpeedButtons en el panel SpeedButton (pgina Additional) Name = Speedbutton_NoPresionado Glyph = a cualquier figura SpeedButton (pgina Additional) Name = Speedbutton_Izquierda Glyph = Arrow1U.BMP GroupIndex = 1 Down = True SpeedButton (pgina Additional) Name = Speedbutton_Derecha Glyph = Arrow1D.BMP GroupIndex = 1

Pgina: 6

Universidad del Caribe

Coloque un status bar en el formulario: Statusbar (Pgina Win32) Agreguele dos paneles utilizando la propiedad Panels Incremente el ancho del primer panel a 150 Pngale el siguiente texto en el segundo panel Botn Izquierdo Abajo

Cree los siguientes eventos: Para el evento OnMouseDown del Speedbutton_NoPresionado: StatusBar1.Panels.Items[0].Text := Yo no Estoy Presionado; Para el evento OnMouseUp del Speedbutton_ NoPresionado: StatusBar1.Panels.Items[0].Text := ; Para el evento OnClick del Speedbutton_Izquierda: StatusBar1.Panels.Items[1].Text := Botn Izquierdo Abajo; Para el evento OnClick del Speedbutton_Derecha: StatusBar1.Panels.Items[1].Text := Botn Derecho Abajo; 6 Ejecute la aplicacin y verifique que todo lo anterior funcione.

Pgina: 7

Universidad del Caribe

Coloque un componente PageControl en el formulario PageControl (Pgina Win32) Name = PageControl_Pages Align = alClient Haga clic con el botn de la derecha del mouse sobre el componente PageControl que usted coloc en el formulario y seleccione New Page del menu que aparece. Esto crear un nuevo TabSheet contenido en el componente pagecontrol: TabSheet Name = TabSheet _Regiones Captions = Regiones

Coloque un componente radiogroup sobre el TabSheet_Regiones: RadioGroup (Pgina Standard) Name = RadioGroup_ Regiones Captions = Regiones Agregue los siguientes valores va la propiedad del componente RadioGroup Items: AFRICA AUSTRALIA EUROPA MEDIO ORIENTE Columns = 2

Coloque un componente Edit sobre el TabSheet_Regiones: Edit (Pgina Standard) Name = edit_NuevaRegion Text = (Borrar el contenido) Coloque un componente Button sobre el TabSheet_Regiones: Button (Pgina Standard) Name = button_AgregaRegion Caption = &Aadir Regin

10

Para el evento OnClick del Button_AddRegion:

RadioGroup_Regiones.Items.Add(Edit_NuevaRegion.Text); 11 Ejecute la aplicacin y verifique que todo lo anterior funcione.

Pgina: 8

Universidad del Caribe

12 Agregue una nueva pagina en el componente PageControl (haciendo clic con el botn de la derecha del mouse y seleccionando New Page del men) TabSheet Name = TabSheet _Dialogo Captions = Caja de dialogo 13 Coloque los siguientes componentes en la pagina TabSheet_Dialogo: un componente FontDialog y ColorDialog (pgina Dialogs) 14 Coloque dos componentes Button sobre el TabSheet_Dialogo: Button1 Name = button_Fuente Caption = Cambiar Fuente Button2 Name = button_Color Caption = Cambiar Color 15 Coloque un componente Label sobre el TabSheet_Dialogo: Label Name = Label_MeVeo Caption = Cmo me veo?
Pgina: 9

Universidad del Caribe

Para el evento OnClick del Button_Fuente: FontDialog1.Execute; Label_MeVeo.Font := FontDialog1.Font; Para el evento OnClick del Button_Color: ColorDialog1.Execute; Label_MeVeo.Color := ColorDialog1.Color; 16 Ejecute la aplicacin y verifique que todo lo anterior funcione.

17 Agregue una nueva pagina en el componente PageControl. TabSheet Name = TabSheet _Archivo Captions = Manejador de archivos 18 Coloque los siguientes componentes como se muestra en la figura anterior: Edit (Pgina Standard) FileListBox (Pgina Win 3.1) FilterComboBox (Pgina Win 3.1) DirectoryListBox (Pgina Win 3.1) DriveComboBox (Pgina Win 3.1) 19 Cambie las siguientes propiedades

Pgina: 10

Universidad del Caribe

Edit Name = Edit_Archivo Text = (Borrar contenido) FileListBox Name = FileListBox _Archivo FileEdit = Edit_ Archivo FilterComboBox (Pgina System) Name = FileComboBox _ Archivo FileList = FileListBox_ Archivo DirectoryListBox (Pgina System) Name = DirectoryListBox _ Archivo FileList = FileListBox_ Archivo DriveComboBox (Pgina System) Name = DriveComboBox _ Archivo DirList = DirectoryListBox_ Archivo 20 Ejecute la aplicacin y verifique que todo lo anterior funcione.

21 Agregue una nueva pagina; pngale de nombre TabSheet_Calendario y en el caption Calendario. 22 Coloque los siguientes componentes en el TabSheet_Calendario:

Pgina: 11

Universidad del Caribe

Label (Pgina Standard) Calendar (Pgina Samples) 4 button (Pgina Standard) 23 Cmbiele los valores a las siguientes propiedades Label Name = Label_ Fecha Button1 Name = button_AnoAnterior Caption = << Ao Button2 Name = button_MesAnterior Caption = << Mes Button3 Name = button_ProximoMes Caption = Mes >> Button4 Name = button_ProximoAno Caption = Ao >> Para el evento OnClick del Button_AnoAnterior: Calendar1.PrevYear; Para el evento OnClick del Button_MesAnterior: Calendar1.PrevMonth; Para el evento OnClick del Button_ProximoMes: Calendar1.NextMonth; Para el evento OnClick del Button_ProximoAno: Calendar1.NextYear; Para el evento OnCreate del Formulario: Label_Fecha.Caption := FormatDateTime(mmmm d, yyyy, Calendar1.CalendarDate);

Pgina: 12

Universidad del Caribe

Para el evento OnChange del Calendar: Label_Fecha.Caption := FormatDateTime(mmmm d, yyyy, Calendar1.CalendarDate); 24 Ejecute la aplicacin y verifique que todo lo anterior funcione.

Pgina: 13

Universidad del Caribe

Mens Preguntas de Repaso Cul es el carcter utilizado para crear un Hotkey en una opcin del men? Cul es el carcter utilizado para crear una lnea para separar las opciones del un men? Cuntos componentes Mens pueden estar asociados a un formulario? Cmo se asocia un men principal con un formulario? Cmo se asocia un men PopupMenu con otro componente? Ejercicio
1

Altere el proyecto Primero Agregue un componente PopupMenu al formulario Agregue dos opciones al PopupMenu va la propiedad Items: &Iniciar Gauge S&top Gauge

2 3

Cmbiale los nombres IniciarGauge1 = PopupMenu_IniciarGauge DetenterGauge1 = PopupMenu_DetenerGauge

Conecte la propiedad PopupMenu del formulario con el PopupMenu1.

En el Evento OnClick para la Opcin PopupMenu_IniciarGauge: Timer_AdjustGaugeprogress.Enabled := True;

Pgina: 14

Universidad del Caribe

En el Evento OnClick para la Opcin PopupMenu_DetenerGauge: Timer_AdjustGaugeprogress.Enabled := False; 6 Ejecute la aplicacin y verifique que el PopupMenu permitira iniciar y detener el Gauge.

Object Pascal Preguntas de Repaso Cuales son las tres formas para poner comentarios en el cdigo?

Para que se utiliza el signo $ dentro de un comentario? Cul es la estructura de control que se debera utilizar si se conoce de antemano la cantidad de veces que se debe repetir un ciclo? Cul es la diferencia entre un ciclo WHILE ... DO y REPEAT ... UNTIL? Cul es la diferencia entre las estructuras IF y CASE? Qu tipos de variables pueden ser utilizadas con la instruccin CASE? Cul es la diferencia entre := y =? Ejercicio 1 Cree un nuevo proyecto con un formulario. En el formulario coloque tres componentes Edit y cuatros SpeedButtons, el formulario debe parecerse a la figura siguiente:

Pgina: 15

Universidad del Caribe

2
3

El usuario podr introducir numero en los dos primeros Edit y seleccionar una operacin, el resultado de la operacin debe aparecer en el tercer edit. Cree un nuevo directorio dentro de su directorio de trabajo y pngale de nombre Calculadora. Grabe la unidad del formulario como UnitFormCalculador y el proyecto como Calculadora. A continuacin el cdigo para el manejador de evento del botn de sumar: procedure TForm1.SpeedButton1Click(Sender: TObject); begin edit_resultado.Text := FloatToStr(calcular(StrToFloat(edit_numero1.Text), StrToFloat(edit_numero2.Text),'+'); end;

Escriba el cdigo de los otros botones (tomando como gua el cdigo anterior)

Nota: La nica diferencia estar en el operador que se le pasa a la funcin calcular


6

Cree una nueva unidad (seleccionando del men principal File | New... y seleccionando Unit). Agregue la siguiente declaracin en la seccin Interfase de la unidad:

Function calcular(op1,op2: Double; Operador: Char): Double; 7 8 Grabe esta unidad como UnitFuncMatematica Defina el cuerpo de la funcin en la seccin Implementation de la unidad.

Nota: Debera consistir de una Instruccin CASE simple, por ejemplo: Case operador of + : Result := op1 + op2;

Pgina: 16

Universidad del Caribe

agregue la unidad unitFuncMatematica a la clusula uses de la unidad UnitFormCalculador, para que esta pueda encontrar la funcin.

10 Compile y corra la aplicacin. Estructura de programa y Alcance Preguntas de Repaso Cul nombre de variable es reservado para todas las funciones?

Cul es la diferencia entre una funcin y un procedimiento? Cul es la diferencia entre pasar variables por referencia y por valor?

Pgina: 17

Universidad del Caribe

Programacin orientada a objeto en Delphi Preguntas de Repaso Qu implica un mtodo Abstracto? Cul es la diferencia entre C-style y as typecasting? Cul es mas seguro? Por qu puede ser almacenado un objeto Dog en un arreglo tipo Mamad? Ejercicio Este ejercicio esta diseado para mostrarle como utilizar typecasting para simplificar las operaciones.
1

Abra el proyecto calculadora. Actualmente existen cuatro OnClick rutinas, una para cada botn. Cambie el manejador de evento para los botones menos, multiplicacin y divisin, asgnele a todos ellos el evento que esta definido para el botn sumar. Para hacer esto dirjase al inspector de objetos y seleccione el manejador de evento deseado de la lista que se encuentra al lado del evento. Dirjase al editor de cdigo y modifique el cdigo del evento para utilizar el parmetro Sender para determinar cual botn fue presionado. Los cambios se vern como: procedure TForm1.SpeedButton1Click(Sender: TObject); var op: char; s : string; begin s := (Sender as TSpeedButton).Caption; op:= s[1]; edit_resultado.Text := FloatToStr(calcular(StrToFloat(edit_numero1.Text), StrToFloat(edit_numero2.Text),op)); end;

Note que Object Pascal es un lenguaje totalmente tipificado, lo cual presenta unos cuantos inconvenientes como se puede notar en el cdigo anterior. La propiedad Caption es de tipo Tcaption, el cual es compatible en asignacin con el tipo string pero no con el tipo char. Para resolver este problema, primero lo asignamos a una variable temporal tipo string, y entonces le asignamos a la variable tipo char el primer carcter del tipo string;

Pgina: 18

Universidad del Caribe

Ejecute el programa y verifique que funciona, luego puede borrar el cdigo de los otros botones.

Uso del Debugger Preguntas de Repaso Utilizando el men principal, encuentre donde esta ubicada la opcin Debugger Options y escriba bajo que opcin la encontr Manejo de Excepciones Preguntas de Repaso Cul es la diferencia entre try ... finally y try ... except? Cmo afecta el parmetro Stop on Delphi Exceptions la forma del usuario ver las excepciones en el ambiente de delphi? Cmo la clusula On Exception difiere en la forma de atrapar una excepcin especfica? Ejercicio Observe que en el proyecto de la calculadora puede ocurrir un error si el usuario digita un valor alfanumrico. Vamos a utilizar las excepciones para manejar este error.

Pgina: 19

Universidad del Caribe

Primero asegrese que el parmetro Stop on Delphi Exceptions este activado en la opcin Tool | Debugger Optios... | Caja de dialogo Debugger Options | Pestaa Language Exceptions. Ejecute la aplicacin y digite un carcter invalido dentro de uno de los campos y presione cualquiera de los botones. Delphi interceptar la excepcin y mostrar que tipo de error ocurri. Para el caso, debera ser una excepcin EconvertError. Presione el botn Run de nuevo; y usted vera como la aplicacin reacciona si no estuviera corriendo en el ambiente de delphi. Modifique el cdigo del evento OnClick del botn para atrapar una excepcin de tipo EconvertError. El cdigo debe lucir como el siguiente: procedure TForm1.SpeedButton1Click(Sender: TObject); var op: char; s : string; begin s := (Sender as TSpeedButton).Caption; op:= s[1]; try edit_resultado.Text := FloatToStr(calcular(StrToFloat(edit_numero1.Text), StrToFloat(edit_numero2.Text),op)); except on EConvertError do MessageDlg(' Valor Invalido!', mtError, [mbOK], 0); end; end;

Desactive el parmetro Stop on Delphi Exceptions en la opcin Tool | Debugger Optios... | Caja de dialogo Debugger Options | Pestaa Language Exceptions. Luego corra la aplicacin y verifique que la excepcin esta siendo manejada.

Plantillas Preguntas de Repaso Cul de las tres opciones es la mejor para mantener la consistencia entre los formularios? Cul es la diferencia entre la opcin copy e inherit? Dnde es almacenado el objeto cuando usted crea una nueva plantilla?

Pgina: 20

Universidad del Caribe

Cmo se rompe la conexin de herencia? Ejercicio


1

Cree una nueva aplicacin utilizando File | New Application... Coloque un componente MainMenu en el formulario, y cree un men con las siguientes opciones:

Mantenimiento | Clientes Mantenimiento | Facturas Mantenimiento | Artculos Mantenimiento | Vendedores Mantenimiento | Salir Ayuda | Acerca de... 3 4
5

Grabe el proyecto Grabe la unidad como UnitFormMenu y el proyecto como PuntoVenta. Aada un nuevo formulario al proyecto utilizando la opcin File | New... | Forms seleccione About Box y seleccione la opcin inherit. Cambie el nombre en la propiedad Name a Form_Acerca. Grabe el nuevo formulario como UnitFormAcerca. Vamos a aadir cdigo para ejecutar el formulario Acerca de. En el evento OnClick de la opcin Ayuda | Acerca de..., agregue el siguiente cdigo: Form_Acerca.ShowModal;

6
7

Asegurese de agregar la unidad UnitFormAcerca en la clusula uses del la unidad UnitFormMenu, de lo contrario un error ocurrir y delphi le preguntara si desea agregarla y lo har automticamente por usted. Corra la aplicacin y verifique que el formulario Acerca de funciona.

Programacin por evento Preguntas de Repaso Qu tipo de componente no deseara para usar Arrastre automtico?

Pgina: 21

Universidad del Caribe

Ejercicio Aada un nuevo formulario al proyecto utilizando la opcin File | New... | Forms seleccione Dual list box y seleccione la opcin inherit. En la propiedad Items del Source list, agregue los siguientes nombres de reportes: Listado de Clientes Listado de Facturas por Clientes Listado de Artculos Listado de Suplidores Escriba el siguiente manejador de evento para permitirle al usuario arrastrar Items de una lista a otra. Asgnele el siguiente cdigo al evento OnMouseDown de las dos listas: procedure TDualListDlg1.SrcListMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin inherited; if (Sender is TControl) and (Button = mbLeft) then TControl(Sender).BeginDrag(False); end; Asgnele el siguiente cdigo al evento OnDragOver de las dos listas: procedure TDualListDlg1.SrcListDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin inherited; Accept := True; end; Asgnele el siguiente cdigo al evento OnEndDrag de las dos listas: procedure TDualListDlg1.SrcListEndDrag(Sender, Target: TObject; X, Y: Integer); begin inherited; if (Target is TListBox) and (Sender is TListBox) then begin Index := GetFirstSelection(TListBox(Sender)); MoveSelected(TListBox(Sender),TTListBox(Target).Items); SetItem(TListBox(Sender), Index); end;

Pgina: 22

Universidad del Caribe

end; Ejecute este nuevo formulario desde la opcin Reportes del men. Con el siguiente codigo: DualListDlg_Reportes.ShowModal; Ejecute la aplicacin y verifique que usted puede mover Items de una lista a otra ya sea arrastrndolos o utilizando los botones. Vistazo al Borland Database Engine (Motor de base de datos de Borland) Preguntas de Repaso Cul es el nombre del utilitario que sirve para configurar el BDE? Ejercicio Cree un Alias para los ejemplos de base de datos 1 2 3 4 5 Cargue el BDE Administrator (se encuentra en el grupo de programas de Delphi 5) Seleccione New desde el Men Seleccione el tipo de base de datos para el cual se va a crear el Alias. (Standard) Nombre el nuevo alias EjemploDB. Escriba en el campo Path del nuevo alias el directorio donde los archivos de datos se encontraran (Directorio que usted creo).

Database Desktop Preguntas de Repaso Por qu hay que utilizar un Alias? Ejercicio

Pgina: 23

Universidad del Caribe

Creacin de aplicaciones con Base de Datos Preguntas de Repaso Cules son los tres tipos de componentes que se utilizan para conectar una base de datos con un formulario? Ejercicio 1 Agregue un nuevo formulario a la aplicacin (PuntoVenta). Cmbiele el nombre del formulario a Form_Cliente. Coloque un componente Table y un componente DataSource en el formulario. Cmbiele los valores de las siguientes propiedades: Table DataBaseName = EjemploDB TableName = Clientes.DBF Name = table_cliente DataSource Dataset = table_cliente 2 Agregue un componente DBGrid al formulario y la propiedad Datasource conctela con el componente Datasource1. cambie a True el valor de la propiedad Active del componente table (table_cliente) y usted deberia ver los datos en el grid. Mande a ejecutar este formulario desde la opcin cliente del men utilizando el siguiente cdigo: Form_cliente.Show; 4 5 Ejecute la aplicacin para verificar que trabaja correctamente. Coloque un componente Panel en la parte superior del componente y en la propiedad Align del panel pngale el valor alTop. Tambin agregue un componente PageControl en el formulario, creele un nuevo tabsheet al PageControl y coloque el grid en el tabsheet utilice para esto Cut y Paste en la propiedad Caption del TabSheet pngale Browse. Agregue otro TabSheet y en la propiedad Caption del TabSheet pngale Registros, agregue los controles DBEdit y Label para los siguientes campos:

Pgina: 24

Universidad del Caribe

Agregue un DBNavigator al panel, y en la propiedad DataSource conctelo con el datasource de la tabla cliente. Tambin agregue un componente label y un componente DBText en el panel, colquelo al lado del DBNavigator, estos componentes sern utilizados para mostrar el cdigo del cliente. El formulario debera lucir como sigue:

Ejecute la aplicacin y verifique que todos los componentes funcionan correctamente.

Avanzado Agregue otro TabSheet en el PageControl y coloque un grid alineado a toda el rea del Tabsheet. Agregue un componente Table y un componente DataSource que hagan referencia a la tabla Factura. Utilice las propiedades MasterSource y MasterField del componente Table que esta conectado con la tabla de Factura, para mostrar las facturas del cliente seleccionado. Active esta tabla y verifique que trabaja correctamente.

Pgina: 25

Das könnte Ihnen auch gefallen