PDA

Ver la Versión Completa : Control de Paginas de un PageControl por medio de un ComboBox


rufo
07-06-2015, 00:26:58
Buenas tardes a todos antes que nada me es grato volver con ustedes en el cual es la mejor comunidad que he conocido, bueno espero que me ayuden con el siguiente problemita que tengo, resulta que tengo un combobox y en su propiedad de items le puse una lista en el cual quiero hacer que cuando elija una opcion de dicha lista me aparesca una ventana de un objeto de pagecontrol pero no logro visualizar cada opcion que pongo a lo mejor lo estoy haciendo mal, les pongo a continuacion el codigo que estoy usando y de antemano gracias.

procedure Tprincipal3.ComboBox1Change(Sender: TObject);
begin
tdeposito.Visible:=true;
case ComboBox1.ItemIndex of
1: factura.Visible:=true;
2: prestamo.Visible:=true;
end;
end;

Nota: tdeposito es el objeto Tpagecontrol y factura, prestamo son tabsheet.

Al González
07-06-2015, 01:26:17
¿Podrías explicarlo con mucho mayor detalle? Por favor.

Caral
07-06-2015, 03:43:22
Hola
Los items del combobox empiezan en 0, 1, 2 etc...
Saludos

nlsgarcia
07-06-2015, 03:58:05
rufo,


...un combobox y en su propiedad de items le puse una lista en el cual quiero hacer que cuando elija una opción de dicha lista me aparezca una ventana de un objeto de pagecontrol...

:rolleyes:

Revisa este código:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls, ComCtrls;

type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
Image1: TImage;
Image2: TImage;
Image3: TImage;
ComboBox1: TComboBox;
procedure FormCreate(Sender: TObject);
procedure ComboBox1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
i : Integer;

begin

for i := 0 to PageControl1.PageCount - 1 do
begin
ComboBox1.Items.Add('Universe-' + IntToStr(i + 1));
PageControl1.Pages.Caption := 'Universe-' + IntToStr(i + 1);
PageControl1.Pages[i].TabVisible := False;
end;

end;

procedure TForm1.ComboBox1Click(Sender: TObject);
var
i : Integer;

begin

for i := 0 to PageControl1.PageCount - 1 do
PageControl1.Pages[i].TabVisible := False;

PageControl1.Pages[ComboBox1.ItemIndex].TabVisible := True;

end;

end.

El código anterior en Delphi 7 sobre Windows 7 Professional x32, [I]Selecciona páginas individualmente de un TPageControl por medio de un TComboBox, como se muestra en la siguiente imagen:

http://i.imgur.com/BP0aFwV.gif

Espero sea útil :)

Nelson.

ecfisa
07-06-2015, 09:34:39
Hola rufo.

Como te comenta Al González, al no ser específico hay muchas formas de interpretar tu consulta.

Un ejemplo con otra opción:

...
type
TForm1 = class(TForm)
ComboBox1: TComboBox;
PageControl1: TPageControl;
procedure FormCreate(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
private
public
end;
...

implementation

const
NTABSHEETS = 5;

procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
tab: TTabSheet;
begin
for i := 1 to NTABSHEETS do
begin
ComboBox1.Items.Add(Format('%s%d', ['Edit', i]));
tab := TTabSheet.Create(Self);
tab.PageControl := PageControl1;
tab.Name := Format('%s%d', ['TabSheet', PageControl1.PageCount]);
tab.Caption := tab.Name;
tab.Visible := True;
tab.Show;
with TEdit.Create(Self) do
begin
Name := Format('%s%d',['Edit', i]);
Height := 21;
Width := 75;
Left := 10;
Top := 30;
Parent := tab;
end;
end;
ComboBox1.ItemIndex := 0;
PageControl1.TabIndex:= 0;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
with TComboBox(Sender) do
if ItemIndex <> -1 then
PageControl1.TabIndex := ItemIndex;
end;


Saludos :)