ListBox 1 Den ListBox 2 Ye Secili Sekilde Veri Aktarma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
burakbilalyoruk
Üye
Mesajlar: 3
Kayıt: 27 Eyl 2016 02:53

ListBox 1 Den ListBox 2 Ye Secili Sekilde Veri Aktarma

Mesaj gönderen burakbilalyoruk »

Herkeze iyi günler. 1 Formda 2 adet listboxsum var. Amacım listbox1 de secilen veriye göre listbox 2 de liste cıkması örnek olarak.

listbox 1 birden a verisini sectigim zaman a b c d yani a kategorisine ne koyduysam onlar cıksın b secersem b kategorisine neyi koyduysam o cıksın. Forumda arastırma yaptım bir bilgi bulamadım. Simdiden yardımcı olan hocalarıma tesekkür ederim
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: ListBox 1 Den ListBox 2 Ye Secili Sekilde Veri Aktarma

Mesaj gönderen ertank »

Merhaba,

Sorunuz maalesef anlaşılmıyor. Şöyle ki;
1- Kategori ile kastınız nedir? Listbox1 içindeki verileri ve kategori tanımını göndermeniz gerekli.
2- "Çıksın" ile anlatmak istediğiniz Listbox1'den Listbox2 içine taşımak mı? Yoksa kopyalamak mı? Bunu açık bir şekilde ifade etmeniz gerekli.
3- Şu anda çalışmayan ancak düzeltilmesi gereken örnek kod gönderebilir misiniz?
4- Bu bir okul ödevi sorusu mudur?
cudyfoster
Üye
Mesajlar: 22
Kayıt: 14 Oca 2017 04:37

Re: ListBox 1 Den ListBox 2 Ye Secili Sekilde Veri Aktarma

Mesaj gönderen cudyfoster »

Form Create olayına listbox 1 de olmasını istediğin yani a b c leri ekle
ListBOx1.İtems.Add('A');
ListBOx1.İtems.Add('B'); böyle.
Daha sonra listbox1in içine girip
if listbox1.itemindex = 0 then
begin
listbox2.items.add(a1);
listbox2.items.add('a2');
end;
if listbox1.itemindex = 1 then
begin
listbox2.items.add('b1');
listbox2.items.add('b2');
end;

Aynen böyle yazarsan A seçtiğinde a1 a2 gelir B seçtiğinde B1 B2 gelir. Umarım işine yarar :)
it seems in your anger you killed her...
onur2x
Üye
Mesajlar: 19
Kayıt: 29 Şub 2016 12:20

Re: ListBox 1 Den ListBox 2 Ye Secili Sekilde Veri Aktarma

Mesaj gönderen onur2x »

Sanırım anladığım şu şekilde.
Örneğin
listbox1 de istanbul ankara izmir bursa diye şehirler var
listbox2 de kadıköy kartal maltepe etlik mamak konak buca nilüfer inegöl diye şehirlere ait ilçeler var
şimdi şehir seçtiğimde o şehre ait ilçeler gelsin diyorsun
Bunun için listview kullanmanı öneririm.
2 adet lsitbox 1 adet de listview ekle

listview viewstyle özelliğini vsList yap daha sonra, columns ekle 2 adet biri adı biri de id diyebilirsin. Daha sonra items editörden New item ekle buraya kadıköy...kartal vs tek tek itemleri ekle ve hepsine subitem olarak listbox1 deki itemindex numrasını yaz
örneğin New item kartal New subitem 0
sonra listview visible false yap görünmesin
listbox1 onclick olayına

Kod: Tümünü seç

var
i:byte;
begin
listbox2.Clear;
for I := 0 to ListView1.Items.Count-1 do
if ListView1.Items.Item[i].SubItems[0]=inttostr(listbox1.ItemIndex) then
begin
listbox2.Items.Add(ListView1.Items.Item[i].Caption);
end;
kodlarını ekle tamamdır.




DFM dosyası

Kod: Tümünü seç

object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 299
  ClientWidth = 635
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object ListView1: TListView
    Left = 304
    Top = 120
    Width = 73
    Height = 81
    Columns = <
      item
      end
      item
      end>
    Items.ItemData = {
      05BE0000000400000000000000FFFFFFFFFFFFFFFF01000000FFFFFFFF000000
      00076B006100640031016B00F6007900013000A0341F3B00000000FFFFFFFFFF
      FFFFFF01000000FFFFFFFF00000000076D0061006C0074006500700065000130
      0088331F3B00000000FFFFFFFFFFFFFFFF01000000FFFFFFFF00000000066B00
      61007200740061006C00013000F0FD1E3B00000000FFFFFFFFFFFFFFFF010000
      00FFFFFFFF00000000056D0061006D0061006B00013100F0F61E3BFFFFFFFFFF
      FFFFFF}
    TabOrder = 0
    ViewStyle = vsList
    Visible = False
  end
  object ListBox1: TListBox
    Left = 112
    Top = 88
    Width = 121
    Height = 97
    ItemHeight = 13
    Items.Strings = (
      'istanbul'
      'ankara'
      'izmir'
      'bursa')
    TabOrder = 1
    OnClick = ListBox1Click
  end
  object ListBox2: TListBox
    Left = 456
    Top = 120
    Width = 121
    Height = 97
    ItemHeight = 13
    TabOrder = 2
  end
end

PAS dosyası

Kod: Tümünü seç

unit Unit1;
interface
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls;
type
  TForm1 = class(TForm)
    ListView1: TListView;
    ListBox1: TListBox;
    ListBox2: TListBox;
    procedure ListBox1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ListBox1Click(Sender: TObject);
var
i:byte;
begin
listbox2.Clear;
for I := 0 to ListView1.Items.Count-1 do
if ListView1.Items.Item[i].SubItems[0]=inttostr(listbox1.ItemIndex) then
begin
listbox2.Items.Add(ListView1.Items.Item[i].Caption);
end;
end;
end.

Kolay gelsin
En son onur2x tarafından 18 Oca 2017 06:49 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: ListBox 1 Den ListBox 2 Ye Secili Sekilde Veri Aktarma

Mesaj gönderen freeman35 »

@onur2x
yazdığın kod ları "code" taglarına alırsan daha anlaşılır olacak. mesajlarını edit edip düzeltebilirsin.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Cevapla