Buton aktif/pasif
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Buton aktif/pasif
Herkese selamlar;
2 adet formum var. Birincisinde ürün kayıt, güncelleme ve silme işlemlerini yapmaktayım. İkincisini ise satış ekranı olarak kullanmak amacındayım.
Ürün bilgilerini girip de kaydet butonuna tıkladığım zaman, birinci formda kayıt işlemi oluştuktan sonra, ikinci formda yerleştireceğim butonların caption'larının üzerine girdiğim ürünün adlarını yazmasını istiyorum.
table1.Post;
form3.Button1.Enabled;
form3.Button1.Caption:= DBEdit1.Text;
Benim amacım, satış penceresine boş butonlar koymak, örneğin 50 adet... Birinci sayfada mesela ben bir ürün girdiğim zaman, o buton aktif hale gelecek ve üzerinde girdiğim ürünün adı yazacak...Daha sonra başka bir ürün girdiğimde de aktif halde olmayan ilk butonu bularak ürün adını o butonun üzerine atacak...Eğer ürünü silmek istersem de buton üzerindeki ürün adı silinecek ve buton aktif halden pasit hale geçecek...
Yardımcı olabileceklere şimdiden teşekkürler...
Saygılarımla...
(bu arada paradox ve table kullanmaktayım)
2 adet formum var. Birincisinde ürün kayıt, güncelleme ve silme işlemlerini yapmaktayım. İkincisini ise satış ekranı olarak kullanmak amacındayım.
Ürün bilgilerini girip de kaydet butonuna tıkladığım zaman, birinci formda kayıt işlemi oluştuktan sonra, ikinci formda yerleştireceğim butonların caption'larının üzerine girdiğim ürünün adlarını yazmasını istiyorum.
table1.Post;
form3.Button1.Enabled;
form3.Button1.Caption:= DBEdit1.Text;
Benim amacım, satış penceresine boş butonlar koymak, örneğin 50 adet... Birinci sayfada mesela ben bir ürün girdiğim zaman, o buton aktif hale gelecek ve üzerinde girdiğim ürünün adı yazacak...Daha sonra başka bir ürün girdiğimde de aktif halde olmayan ilk butonu bularak ürün adını o butonun üzerine atacak...Eğer ürünü silmek istersem de buton üzerindeki ürün adı silinecek ve buton aktif halden pasit hale geçecek...
Yardımcı olabileceklere şimdiden teşekkürler...
Saygılarımla...
(bu arada paradox ve table kullanmaktayım)
Eğer Button ları isimlerini Btn_Button001 şeklinde bir düzende verirsen kolayca yapabilirsin.. Öncelikle tüm button ların enabled larını false yapmalısın.. Daha sonra while/do döngüsü ile tablondaki kayıtları sıra ile okuyup, başlangıçta sıfır atadığın bir indisi birer artırarak sıradaki button ismini bulup, caption unu ve enabled özelliklerini değiştirebilirsin.
Aslında daha kolayı şu; yine while/do döngüsü ile tablodaki kayıtları tararken buttonu run-time da oluşturmak; yukarıdaki örnek bizzat DBDEMOS / Costumer.db ile denenmiştir. Hepsine ortak bağladığınız bir Button1Click te gerekli işlemleri yapabilirsiniz.. 
Aslında daha kolayı şu; yine while/do döngüsü ile tablodaki kayıtları tararken buttonu run-time da oluşturmak;
Kod: Tümünü seç
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i: Integer;
const
NamePrefix = 'MyButton';
begin
Table1.First;
i := 0;
while not Table1.EOF do
begin
TButton.Create(Self).Name := NamePrefix + IntToStr(i);
with TButton(FindComponent(NamePrefix + IntToStr(i))) do
begin
Left := 5 + (trunc(i / 10) * 150);
Top := (i + 1) mod 10 * 50;
Width := 130;
Parent := Self;
Caption := Table1.FieldByName('Company').AsString;
Enabled := True;
Visible := True;
Button1Click(Self);
// .. varsa diğer özellikleri..
end;
if i > 30 then
Break;
Table1.Next;
inc(i);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//
end;

Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
- ender_arslanturk
- Kıdemli Üye
- Mesajlar: 709
- Kayıt: 18 Şub 2005 03:38
- Konum: İstanbul
Komutla buton oluşturmak yerine, kendim diğer foruma 50 adet buton koymak istiyorum...Bunun içinde 50 tane butonu forma yerleştirip, enabled ları false yaptım...
Yapmayı düşündüğüm olay şu şekilde...: İlk önce bir sorgu ile butonların enable'larını sorgulayıp, false olanları bulmak ve verilecek komut ile butonun caption'ına istediğim adı aktarmak ve enable'ını da komut ile true hale getirmek...Daha sonra işlevin tekrarında, bu butonu enable'ı true olduğu için görmeyecek ve bir sonrakine aktarım yapacak...
Bir acemi olarak
bu işlemi yapacak sorguya ve detaylı açıklamaya ihtiyacım var...
Cevaplarınızı bekliyorum..
Yapmayı düşündüğüm olay şu şekilde...: İlk önce bir sorgu ile butonların enable'larını sorgulayıp, false olanları bulmak ve verilecek komut ile butonun caption'ına istediğim adı aktarmak ve enable'ını da komut ile true hale getirmek...Daha sonra işlevin tekrarında, bu butonu enable'ı true olduğu için görmeyecek ve bir sonrakine aktarım yapacak...
Bir acemi olarak

Cevaplarınızı bekliyorum..
bence bu söleidklerin için bir sey yazacam ama bazı seyler net değil...yani soruda ne istediğini tam anlayamadım...
ama sunu anladım istediğin bizim hepimizin bildiği ve her zaman kullandığı bir sey...Ne istiyorsun
elma mı armutmu ? önce iyice anlamamız lazım? açarsan durumu
ama sunu anladım istediğin bizim hepimizin bildiği ve her zaman kullandığı bir sey...Ne istiyorsun
elma mı armutmu ? önce iyice anlamamız lazım? açarsan durumu
Siz hayal edin...Biz yapalım TuannaSoft...
zorlamakk
Sanıyorum biraz zorlarsanız bu işi halledebilirsiniz...çok güzel bir de uygulama olur sizin için iç içe bi kaç döngü var...bunları kendiniz güzel bir şekilde kurarsanız çok iyi olur...ama burdan size yardımcı olacak bir kodu aldığınız takdirde bu programcılık geleceğiniz için çürük bir temel demektir.....
Programcılık := dene + olmadı bir daha + bir daha + bi daha + bi daha + kafa patlat + olmuyor bi daha bla bla bla.........
Programcılık := dene + olmadı bir daha + bir daha + bi daha + bi daha + kafa patlat + olmuyor bi daha bla bla bla.........
Re: zorlamakk
Bununla sabahtan beri uğraşıyorum zaten, forumda da arattım ama benzer bir örneğe rastlayamadım...Zaten böyle cins şeyler de benim aklıma geliyor herhalde..nosedive yazdı:Sanıyorum biraz zorlarsanız bu işi halledebilirsiniz...çok güzel bir de uygulama olur sizin için iç içe bi kaç döngü var...bunları kendiniz güzel bir şekilde kurarsanız çok iyi olur...ama burdan size yardımcı olacak bir kodu aldığınız takdirde bu programcılık geleceğiniz için çürük bir temel demektir.....
Programcılık := dene + olmadı bir daha + bir daha + bi daha + bi daha + kafa patlat + olmuyor bi daha bla bla bla.........

Formun birisinde bilgileri kaydederken, buraya yazacağım bir komut ile diğer formda bununan butonların caption'larına kaydettiğim ürünün adını aktaracağım ki; bunu daha sonra tekrardan kullanmayı düşünüyorum...Bu aşamada takıldığım konu da butonların enabled'ları false olanları nasıl arattırmak gerektiği

Acemiliğimden olsa gerek, zannedersem meramımı tam olarak izah edemiyorum..Şimdi yeniden anlatayım...tuanna yazdı:bence bu söleidklerin için bir sey yazacam ama bazı seyler net değil...yani soruda ne istediğini tam anlayamadım...
ama sunu anladım istediğin bizim hepimizin bildiği ve her zaman kullandığı bir sey...Ne istiyorsun
elma mı armutmu ? önce iyice anlamamız lazım? açarsan durumu
Ürün adı, fiyatı vs. kaydettiğim bir form var...Bir de bunların satışını yapacağım ikinci bir form var..
Birinci formda ürünün tüm bilgilerini girip KAYDET butonuna bastığımda, aynı zamanda ikinci forma attığım BUTON'un üzerine o kaydettiğim ürünün adı yazılmış olacak...Hani şu marketlerde kullanılan manav terazilerinin üzerinde elma, armut,vs vs diye yazar ya, bizim ikinci formda koyacağımız 50 adet butonun üzerinde de onlar yazacak işte...
Ürün sayımız 50 ile sınırlı olacağı için ikinci forma 50 adet buton koyayım diyorum, onların da enabled özelliklerini false yapalım...Birinci formdaki KAYDET butonuna öyle bir döngü yazmalıyım ki; ikinci formdaki enabled=false olan butonları bulsun ve ürünün adını bulduğu butonun üzerine yazsın....
Daha sonraki aşamada ise, kullanıcı bu butona tıkladığında bir miktar editini ayrıyeten kullanıma sunup, ürünün fiyatını da ilgili table'dan çekmeyi ve bunları bir gridde göstermeyi düşünüyorum, ama bu sonraki iş...
Algoritmayı kafamda bu şekilde oluşturdum ama acemiliğim uygulamaya izin vermiyor, gerekli komutların neler olduğunu bilmiyorum..
Saygılar..
bi soru daha
peki programı kapatıp açtığınız zaman database de kayıtlı olan ürünlerin yine diğer 50 butonun üstünde görünmesini istiyormusunuz...o zaman form create olduğunda db yi bir tarayıp aynı döngüyü orda da çalıştırmanız gerekecek ?
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
Kod: Tümünü seç
var
i : Integer;//tmpCounter
begin
for i:=0 to Pred (ComponentCount) do
if (Components[i] is TButton) then
if TButton(Components[i]).Enabled then
ShowMessage ('Enabled True')
else
ShowMessage ('Enabled False');
end;
Re: bi soru daha
Buton üzerindeki isimler kalıcı olacak, ancak database'de ürünü sildiğim zaman buton üzerindeki isim silinmeli...nosedive yazdı:peki programı kapatıp açtığınız zaman database de kayıtlı olan ürünlerin yine diğer 50 butonun üstünde görünmesini istiyormusunuz...o zaman form create olduğunda db yi bir tarayıp aynı döngüyü orda da çalıştırmanız gerekecek ?
Nosedive;
Bir şey biliyorsan ve yardımcı olacaksan yaz, yok amacın sadece muhabbet etmekse onun yeri burası değil...
Forumların amacı bilgiyi paylaşmaktır, saklayıp başkasının öğrenmesini engellemek değildir...
Burada ciddi bir konu mevcut ve benden daha deneyimli arkadaşların yardımlarını istirham ettim...
Bak yukarıda RSimsek, Blue Alone, Coderlord bilmediğim konuda fikir sahibi olabilmem için önerilerde bulunuyorlar...Fikirleri yapmak istediklerimi karşılar ya da karşılamaz veya yöntem farklılıkları olabilir...Şimdi Coderlord arkadaşımız 'Action'lardan bahsetmiş, o yapıları inceleyeceğim...
Eğer senin de varsa tavsiye edebileceğin bir yapı, ondan bahset, laf kalabalığını bırak, insanları da meşgul etme...
Bir şey biliyorsan ve yardımcı olacaksan yaz, yok amacın sadece muhabbet etmekse onun yeri burası değil...
Forumların amacı bilgiyi paylaşmaktır, saklayıp başkasının öğrenmesini engellemek değildir...
Burada ciddi bir konu mevcut ve benden daha deneyimli arkadaşların yardımlarını istirham ettim...
Bak yukarıda RSimsek, Blue Alone, Coderlord bilmediğim konuda fikir sahibi olabilmem için önerilerde bulunuyorlar...Fikirleri yapmak istediklerimi karşılar ya da karşılamaz veya yöntem farklılıkları olabilir...Şimdi Coderlord arkadaşımız 'Action'lardan bahsetmiş, o yapıları inceleyeceğim...
Eğer senin de varsa tavsiye edebileceğin bir yapı, ondan bahset, laf kalabalığını bırak, insanları da meşgul etme...