Listbox ile parametre girisi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Okyanus
Üye
Mesajlar: 18
Kayıt: 04 Mar 2005 04:36
Konum: Almanya

Listbox ile parametre girisi

Mesaj gönderen Okyanus »

Selam Dostlar,
Listbox ile bir parametre ekrani dizayn etmek istiyorum.
Listbox un her itemlarina tiklandiginda ayni form icinde baska formlari nasil gosterebilirim ?

Ornegin : Bir parametre formum(Form1) var ve ustunde bir Listbox, itemlari Stok, fatura, Musteri gibi. Ben listbox da musteri tiklanmissa musterilerle ilgili parametre formu Form2 yi form1 icinde gostermek istiyorum. Kisacasi ayni pagecontrol gibi olacak ama pagecontrol sayfalari gozukmeyecek, sadece listbox da secilen itemin formu(Form2, Form3 vs.) form1 icinde birlesmis halde gozukecek.

Kolay Gelsin, Tesekkurler.
Okyanus
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

form icine bir adet TPanel koy
listbox itemlerina tıkladıgın yerde istedigin formları create ettikten sonra
parentina paneli ata,tabi panel ve listbox tum form uzerini kaplasın, kod ile asagıda oldugu gibi :

Kod: Tümünü seç

var
  frmPanelForm:TForm;//global degisken


begin
  if not Assigned(frmPanelForm) then
  case ListBox1.ItemIndex of
   0:   frmPanelForm:=TStokForm.Create(nil);
   1:   frmPanelForm:=TCariForm.Create(nil);
  end;
  frmPanelFom.Parent:=Panel1;//burada acılan form Panelin uzerine adeta yapısır.
end;
Formlar kapanırken bir sekilde de frmPanelForm degiskenini nil yaparsan
ukardaki gibi kontrol edebilirsin
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

bir de findcomponent ile yapabilirsin.
Kullanıcı avatarı
Okyanus
Üye
Mesajlar: 18
Kayıt: 04 Mar 2005 04:36
Konum: Almanya

Mesaj gönderen Okyanus »

Tekrar Selam

gkimirti kardes verdigin kodlarla yazdim fakat Stack Overflow hatasi veriyor listbox1 de item a tiklayinca. Ben Listbox1 de stok islemlerine tiklayinca frmStok formunu ekrana getirmek istiyorum panele yapisik halde.

Kodu buraya aliyorum, sanirim bir yerleri atliyorum, bakabilirsen sevinirim.



2 Form var, birincisi frmPanelForm, bunun ustunde panel1 var formu kaplamis halde ve listbox1 var 3 itemla stok islemleri, fatura islemleri, cari islemleri diye. frmPanelForm projede anaform, digeri create ile olusuyor.

diger form frmStok, bunun ustunde sadece 3 tane edit edit var.
Tesekkurler.

Kod: Tümünü seç

// bu frmPanelForm
unit UPanel;

interface

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

type
  TfrmPanelForm = class(TForm)
    Panel1: TPanel;
    ListBox1: TListBox;
    StatusBar1: TStatusBar;
    procedure ListBox1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmPanelForm: TForm;

implementation

uses UStok;

{$R *.dfm}

procedure TfrmPanelForm.ListBox1Click(Sender: TObject);
begin
    if not Assigned(frmPanelForm) then
       case ListBox1.ItemIndex of
            0: frmPanelForm:=TfrmStok.Create(nil);
         //  1: frmPanelForm:=TfrmCari.Create(nil);
         // buraya diger pencereler gelecek
       end;
    frmPanelForm.Parent:=Panel1; //parent atama

end;

end.

Kod: Tümünü seç

// ikinci frmStok formu

unit UStok;

interface

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

type
  TfrmStok = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmStok: TForm;

implementation

{$R *.dfm}

end.

Kod: Tümünü seç

// ve proje 

program MyParam;

uses
  Forms,
  UPanel in 'UPanel.pas' {frmPanelForm},
  UStok in 'UStok.pas' {frmStok};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TfrmPanelForm, frmPanelForm);
  Application.Run;
end.

Okyanus
Cevapla