Çoklu seçme - chkboxla
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Çoklu seçme - chkboxla
Merhaba. Formumda 10-15 tane checkbox var. ben bunların arasından çoklu seçim yapıp aynı alana kayıt ettirmek istiyorum. nasıl bir yol önerirsiniz yada başka bir yöntem.
ben şu şekilde düşündüm. checkboxları edite aktarıp en sondada editleri ard ardına yazdırmak. şu şekilde
dbalani.Text:=( edt1.Text+','+edt2.Text+'','+edt3.Text+' ); gibi
yada başka bir yöntem öneren varmı?
daha sonra bunları tekrardan programdan tekrar girip değiştirmek, okumak isteyebilirim. Okumak yada düzenlemek istediğimde hangilerini seçtiysem o Checkboxların tickleri tikli olabilir.
ben şu şekilde düşündüm. checkboxları edite aktarıp en sondada editleri ard ardına yazdırmak. şu şekilde
dbalani.Text:=( edt1.Text+','+edt2.Text+'','+edt3.Text+' ); gibi
yada başka bir yöntem öneren varmı?
daha sonra bunları tekrardan programdan tekrar girip değiştirmek, okumak isteyebilirim. Okumak yada düzenlemek istediğimde hangilerini seçtiysem o Checkboxların tickleri tikli olabilir.
Re: Çoklu seçme - chkboxla
Neden tek bir alana yazmaya çalıştığını anlayamadım. Bence yapını tekrar kontrol et..
Re: Çoklu seçme - chkboxla
Tek bir alan var çünkü. bize nasıl ulaştınız gibi bir soru var mesela?
Cevaplar ise şöyle. Gazete - Tv - İnternet - Dergi - Billboard .. gibi
adam Gazete, Tv, İnternet, dergiyi seçti mesela Tek bir alana hepsini yazdıracağım.
Yoksa her chkbox için veritabanında bir alanmı açayım? İnternet,Tv,Gazete .. gibi?
bunları ayrı ayrı kaydettirmem biraz saçma olmazmı. onun için tek bir alanda olması lazım.
Cevaplar ise şöyle. Gazete - Tv - İnternet - Dergi - Billboard .. gibi
adam Gazete, Tv, İnternet, dergiyi seçti mesela Tek bir alana hepsini yazdıracağım.
Yoksa her chkbox için veritabanında bir alanmı açayım? İnternet,Tv,Gazete .. gibi?
bunları ayrı ayrı kaydettirmem biraz saçma olmazmı. onun için tek bir alanda olması lazım.
Re: Çoklu seçme - chkboxla
s.a.
veri tabnındaki alanın tipi nedir.
eğer sayısal bir alansa
sayının her bir bitini bir checkbox karşılık gelecek şekilde ayarlayabilirsiniz.
eğer alfasayısal bir alansa
10111000 şeklinde bir string ile değerleri tutabilirsiniz.
her checkbox a bir sıranumarası verirsiniz o karakter 1 ise işaretli 0 ise işaretsiz olur.
eğer projeye yeni başlıyorsanız ve veri tabanını değiştirme imkanınız varsa tasarımı bir gözden geçirin derim.
kolay gelsin.
veri tabnındaki alanın tipi nedir.
eğer sayısal bir alansa
sayının her bir bitini bir checkbox karşılık gelecek şekilde ayarlayabilirsiniz.
eğer alfasayısal bir alansa
10111000 şeklinde bir string ile değerleri tutabilirsiniz.
her checkbox a bir sıranumarası verirsiniz o karakter 1 ise işaretli 0 ise işaretsiz olur.
eğer projeye yeni başlıyorsanız ve veri tabanını değiştirme imkanınız varsa tasarımı bir gözden geçirin derim.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Re: Çoklu seçme - chkboxla
Hayır. Alan varchar. yazı gelecek. bunu rapor aldığım zamanda görmem lazım ama. 1-2 diye yazdırırsam rapor aldığımda 1in neyi 2nin neyi ifade etiğini nasıl ayarlıyacağım?
Re: Çoklu seçme - chkboxla
varchar alanda saklanan veri bir stringe alınır şöyle ki:
en basit yöntemlerden birisi kaydederkende bir string in aynı şekilde s[0] biti kullanılabilir. integer bir ifadeye aktarırsanız case ile daha kolay yapabilirsiniz.
Koılay Gelsin.
Kod: Tümünü seç
procedure vs.vs
var s:String;
begin
s:=dataset.fieldbyname('alan_adı').value;
if s[0]=1 then
checkbox1.cheched=false
else
checkbox1.checked=true;
bunu 2-3-4-5 vs gibi tekrarlayın
end;
Koılay Gelsin.
UWESIS CORPORATION
Re: Çoklu seçme - chkboxla
kaydederken nasıl olacak?
Re: Çoklu seçme - chkboxla
Kod: Tümünü seç
if checkbox1.checked=true then
s[1]:=1
else
s[1]:=0;
if checkbox2.checked=true then
s[2]:=1
else
s[2]:=0;
checkboxN
yani örneğin 1. checkbox aktif, 2 değilse s string de "10" değeri olur
kayıt ise;
dataset.insert;
dataset.fieldbyname('alan_adı').value:=s;
dataset.post;
UWESIS CORPORATION
Re: Çoklu seçme - chkboxla
Şöyle birşey yapabilirsin ama bu kesin sonuç vermeyebilir çünkü hangi checkboxa ait olduğu belli değil ayrıca onu da kayıt edip ona göre kontrol ettirmen lazım. Böyle yapacağına bir tane grid içinde checkbox sütunu veya satırı tanımla daha sağlıklı olur.
Kod: Tümünü seç
procedure TForm3.GetCheckBox;
var
chkText: string;
i: Integer;
Comp: TComponent;
begin
for i := 0 to ComponentCount - 1 do
begin
Comp := Components[i];
if Comp is TCheckBox then
chkText := chkText + BoolToStr((Comp as TCheckBox).Checked) + ',';
end;
ListBox1.Items.Add(chkText);
end;