dbedit
selam sana basit bir ornek kod hazirladim..
index tanımlamana gerek yok. bir incele sana bir fikir olabilir.
edi1t->no
dbedit2->ad
dbedit3->soy
iki adet buton
-------------------------------
procedure TForm1.Edit1Exit(Sender: TObject);
begin
IF EDIT1.Text='' THEN
BEGIN
SHOWMESSAGE('NUMARA YAZ');
END
ELSE
if TABLE1.locate('NO',edit1.text,[]) then //no files i edit1 den kontrol ediyor.
begin
showmessage('Bu Kod Numaralı Başka Bir Kayıt Var');
end
else
BEGIN
DBEDIT2.ReadOnly:=FALSE; //ad isimli fielse bağli
DBEDIT3.ReadOnly:=FALSE;// soy isimli fielsebağli
KAYDETBTN.Enabled:=TRUE;
IPTALBTN.Enabled:=TRUE;
TABLE1.Insert;
end;
END;
procedure TForm1.KAYDETBTNClick(Sender: TObject);
begin
table1no.AsString:=edit1.Text;
table1.Post;
KAYDETBTN.Enabled:=FALSE;
IPTALBTN.Enabled:=FALSE;
DBEDIT2.ReadOnly:=TRUE;
DBEDIT3.ReadOnly:=TRUE;
end;
procedure TForm1.IPTALBTNClick(Sender: TObject);
begin
TABLE1.Cancel;
KAYDETBTN.Enabled:=FALSE;
IPTALBTN.Enabled:=FALSE;
DBEDIT2.ReadOnly:=TRUE;
DBEDIT3.ReadOnly:=TRUE;
end;
kolay gelsin..
index tanımlamana gerek yok. bir incele sana bir fikir olabilir.
edi1t->no
dbedit2->ad
dbedit3->soy
iki adet buton
-------------------------------
procedure TForm1.Edit1Exit(Sender: TObject);
begin
IF EDIT1.Text='' THEN
BEGIN
SHOWMESSAGE('NUMARA YAZ');
END
ELSE
if TABLE1.locate('NO',edit1.text,[]) then //no files i edit1 den kontrol ediyor.
begin
showmessage('Bu Kod Numaralı Başka Bir Kayıt Var');
end
else
BEGIN
DBEDIT2.ReadOnly:=FALSE; //ad isimli fielse bağli
DBEDIT3.ReadOnly:=FALSE;// soy isimli fielsebağli
KAYDETBTN.Enabled:=TRUE;
IPTALBTN.Enabled:=TRUE;
TABLE1.Insert;
end;
END;
procedure TForm1.KAYDETBTNClick(Sender: TObject);
begin
table1no.AsString:=edit1.Text;
table1.Post;
KAYDETBTN.Enabled:=FALSE;
IPTALBTN.Enabled:=FALSE;
DBEDIT2.ReadOnly:=TRUE;
DBEDIT3.ReadOnly:=TRUE;
end;
procedure TForm1.IPTALBTNClick(Sender: TObject);
begin
TABLE1.Cancel;
KAYDETBTN.Enabled:=FALSE;
IPTALBTN.Enabled:=FALSE;
DBEDIT2.ReadOnly:=TRUE;
DBEDIT3.ReadOnly:=TRUE;
end;
kolay gelsin..
dbgrid hakkında
Mustafa hocam iyi çalışmalar...
Sizleri belki gönderidğim sorulardan bıktırıyorsam hakkınızı helal edin..
Mustafa hocam benim sizlere bir sorum daha olacak.
form1'deki herhangi bir dbedit'ten başka bir form daki dbeditteki sayıyı toplayıp bunları başka bir formdaki dbgride atmak istiyorum.
bunu nasıl yapabilirim. yardımlarınız için şimdiden teşekkürler...
Sizleri belki gönderidğim sorulardan bıktırıyorsam hakkınızı helal edin..
Mustafa hocam benim sizlere bir sorum daha olacak.
form1'deki herhangi bir dbedit'ten başka bir form daki dbeditteki sayıyı toplayıp bunları başka bir formdaki dbgride atmak istiyorum.
bunu nasıl yapabilirim. yardımlarınız için şimdiden teşekkürler...
Belki buna Mustafa da cevap verecek ama sanırım sen yanlış yoldasın. Yani bilgiyi DBEdit ve DBGrid yerine tabloda aramalısın. Esas alacağın yer tablodur. Eğer tablolarını vs. de DM adını vereceğin bir DataModulde toplamışsan herhangi bir problem olmadan DM.tblTablo1.FieldByName('Alan_Adi').Value ile alana ve bilgiye ulaşabilirsin...
Sorularınızla bizleri bıktırmanız söz konusu değil. Yeter ki bir faydamız olabilsin, ilerleme kaydedebilelim.
Recep abinin de dediği gibi temel bazı yanlışlıklar var gibime geliyor benim de...
Problemi ya da yapmak istediğinizi en baştan anlatırsanız belki daha farklı bir yol onerisi olabilir... Zira yanlış bir yola girdikten sonra cikan sorunlari tek tek cozmek bile ise yaramayabilir....
Kolay gelsin....
Recep abinin de dediği gibi temel bazı yanlışlıklar var gibime geliyor benim de...
Problemi ya da yapmak istediğinizi en baştan anlatırsanız belki daha farklı bir yol onerisi olabilir... Zira yanlış bir yola girdikten sonra cikan sorunlari tek tek cozmek bile ise yaramayabilir....
Kolay gelsin....
dbedit
hocam hepinizin ilgisinden dolayı teşekkür ederim.
Şimdi ben datalarımı database desktoptan dbase for windowsta oluşturdum. Ve index de koda göre mainteidet seçeneğini
seçerek oluşturdum.
Şimdi form üzerinde mesala kasa tanımını yapacağım bir form oluşturdum.
Ve kodu,adı,adres alanlarını labelın caption özelliğine yazdım.3 adette
dbedit nesnesi yerleştirdim. bir adet ttable ve bir adet te datasource nesnesi yerleştirdim.ve bunlara gerekli atamaları yaptım.Benim formumda bir kaydet buttonu bir de iptal buttonu var.
Şimdi ben koda girdiğim bir sayıyı ikinci defada girdiğimde dbgrid nesnesi kabul ediyor.Fakat ben ikinci bir kaydı girdiğimde 1 nolu kasa kodu adında bir kayıt bulunmakta deyip tekrar dbedit1'in üzerine konumlanmasını istiyorum.
ben locate fonksiyonunu kullandım fakat her zaman kayıt olsa da olmasa da bu kayıt var mesajını alıyorum.
Ve bunun içinden bir türlü çıkamadım yardım ederseniz sevinirim...
Şimdi ben datalarımı database desktoptan dbase for windowsta oluşturdum. Ve index de koda göre mainteidet seçeneğini
seçerek oluşturdum.
Şimdi form üzerinde mesala kasa tanımını yapacağım bir form oluşturdum.
Ve kodu,adı,adres alanlarını labelın caption özelliğine yazdım.3 adette
dbedit nesnesi yerleştirdim. bir adet ttable ve bir adet te datasource nesnesi yerleştirdim.ve bunlara gerekli atamaları yaptım.Benim formumda bir kaydet buttonu bir de iptal buttonu var.
Şimdi ben koda girdiğim bir sayıyı ikinci defada girdiğimde dbgrid nesnesi kabul ediyor.Fakat ben ikinci bir kaydı girdiğimde 1 nolu kasa kodu adında bir kayıt bulunmakta deyip tekrar dbedit1'in üzerine konumlanmasını istiyorum.
ben locate fonksiyonunu kullandım fakat her zaman kayıt olsa da olmasa da bu kayıt var mesajını alıyorum.
Ve bunun içinden bir türlü çıkamadım yardım ederseniz sevinirim...
Merhaba,
hocam bu iş için 2 yol var.
1. Unique indeks kullanmak. Bu durumda kullanıcı bir kayıttan tekrar giremez. Hangi alandan 2 tane olmasını istemiyorsan, onu unique indeksle indeksle. Nasıl yapılacağını anlatmıştım : viewtopic.php?p=4911#4911
Mesela ben öğrenci kaydediyorsam, iki tane aynı öğrenci numarasına sahip kayıt olmasını istemem. Bu durumda öğrenci numarası indeksim unique olmalı.
2. yolda kod içersinden bunu kontrol etmen. BeforeInsert'te Locate ile aratırsın, o kayıttan varsa işlemi Abort komutu ile kesersin. Yine kod yazan arkadaşlarımız oldu.
Bu arada bizi herhangi bir şekilde rahatsız etmiyorsunuz. Forum kurallarına uyan her üyeye yardımcı olmak bizim için zevk Sorularımızın nedeni, problemi daha net anlamak.
Kolay gelsin.
hocam bu iş için 2 yol var.
1. Unique indeks kullanmak. Bu durumda kullanıcı bir kayıttan tekrar giremez. Hangi alandan 2 tane olmasını istemiyorsan, onu unique indeksle indeksle. Nasıl yapılacağını anlatmıştım : viewtopic.php?p=4911#4911
Mesela ben öğrenci kaydediyorsam, iki tane aynı öğrenci numarasına sahip kayıt olmasını istemem. Bu durumda öğrenci numarası indeksim unique olmalı.
2. yolda kod içersinden bunu kontrol etmen. BeforeInsert'te Locate ile aratırsın, o kayıttan varsa işlemi Abort komutu ile kesersin. Yine kod yazan arkadaşlarımız oldu.
Bu arada bizi herhangi bir şekilde rahatsız etmiyorsunuz. Forum kurallarına uyan her üyeye yardımcı olmak bizim için zevk Sorularımızın nedeni, problemi daha net anlamak.
Kolay gelsin.
dbedit
Mustafa hocam gönderdiğiniz bilgi için teşşekkür ederim.
sorunumu hallettim sağolun. Hocam bir sorum daha olacak sizlere...
Mustafa hocam yapmış olduğum proğrama bir şifre koymak istiyorum.Bunu nasıll yapabilirim
Yalnız bu şifrede kullanıcı adı ve şifreyi girdikten sonra onu table kaydet
cek ve programı kapatıp açtığı zaman önceki kullanıcı adı ve şifre yi
girecek bunu nasıl yapabilirim.
Saygılar...
sorunumu hallettim sağolun. Hocam bir sorum daha olacak sizlere...
Mustafa hocam yapmış olduğum proğrama bir şifre koymak istiyorum.Bunu nasıll yapabilirim
Yalnız bu şifrede kullanıcı adı ve şifreyi girdikten sonra onu table kaydet
cek ve programı kapatıp açtığı zaman önceki kullanıcı adı ve şifre yi
girecek bunu nasıl yapabilirim.
Saygılar...