dblookupcombobox şeçim

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
unalaygun
Üye
Mesajlar: 139
Kayıt: 27 Mar 2004 12:34
Konum: istanbul

dblookupcombobox şeçim

Mesaj gönderen unalaygun »

herkese kolay gelsin aramamamı yaptım admin abicim 2 sayfalık bir sayfa geldi ve tek tek okdum..

benim yapmak istediğim su
firebird kullanıyorum veritabani olarak

kullanıcı tablom var

alanlarım bunlar
kullanıcı(char 30)
sifre(char 6 )


ve login ekranındaki bileşenlerim ise sunlar
dblookupcombobox1
edit11


dblookupcombobox la tabledan kullanıcı alanını çekiyorum ve özellikleri bu şekilde

listsource:datasource1
listfield:kullanıcı
keyfield:şifre

ve giriş diye bir butonum var ve kodu şu şekilde

if edit1.text=dataset1.fieldbyname('sifre').asstring then
form2.show;
form1.hide
else
showmessage('yanlış kullanıcı adı yada şifre');



tableda 2 tanede kaydım var buunlar şöyleki
kullanıcı şifre
admin (boş)
user 12


admin şeçili olup butonuma bastığında sorun yok fakat 'user' seçtiğimde ve şifre'12' girdiğim halde yanlış kullanıcı adı yada şifre diyor ..
şundan solayı oluyor diye düşünüyorum heralde default olarak birinci kayıt geldiği için ve birinci kayıtta şifre olmadığı için direk geçiyor yani
kaydı user kaydına kaydıramııyorum ama dblookupcombobox sadece bu işe yaradığı için kulllanıyorum ve daha önce paradox da bu işlemi bu şekilde yaptım gerçi hatırlamadığım bir şeymi var neyse sorunum bu


bir ikincisi ise abilerim user'ı çok rahar seçemem rağmen admin'i seçtiğim halde dblookupcombobox'da göremiyorum acaba nedendir..
Çokmu uzun oldu ya bu arada yukarıda aynı kelimeden baya kullanıdım bilmece gibi oldu valla kolay gelsin ...saygılar..
derviş
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

Kod: Tümünü seç

if tablo1.Locate('user', dblookupcombobox1.keyvalue, [loCaseInsensitive]) then
begin
  if tablo1.sifre = edit1.text then
  begin
    // giriş işlemleri
  end
  else
  begin
    showmessage('Hatalı şifre');
    Abort;
  end;
end
else
begin
  showmessage('Hatalı kullanıcı');
  Abort;
end;
anladığım kadarıyla kullanıcıyı seçtiğinde, seçili kaydın üzerine konumlanmıyorsun..
DeveloperToolKit

..::|YeşilMavi|::..
unalaygun
Üye
Mesajlar: 139
Kayıt: 27 Mar 2004 12:34
Konum: istanbul

Mesaj gönderen unalaygun »

kullanıcı şifre olayını hallettim şöyleki
dblookupcombobox'ın listfield' değiştiğinde su kod işlem yapıyor.
if tablo1.Locate('user', dblookupcombobox1.text, [loCaseInsensitive]);


burası ise butona basıldığında

begin
if tablo1.sifre = edit1.text then
begin
// giriş işlemleri
end
else
begin
showmessage('Hatalı şifre');
Abort;
end;
end
else


end;

ama şimdi benim şifre alanımın uzunluğu 6 karakter ve 6 dan az girildiği taktirde
örneğin Şifre=123 benim edit1.text'imde =123 ama ynalış kullanıcı diyor ve loginolmuyor ama
örneğin Şifre=123456 benim edit1.text'imde =123456
olduğunda hiç bir sorun yok yani 6 haneyide mutalaka kullanmam gerekiyor nedendir acaba..
birde buradan login olduktan sonra ben 2 adet kullanıcı tanımladım
bunlar
1.admin(tam yetkili)
2.user(silme hariç her şey var)

dolayısıyla login olurken kiminle "user" ile login oluyorsa
if dblookupcombobox1.text='user' then
begin
form2.silbtn.enabled:=false;
form2.show;
form1.hide;
end
else

form2.show;
ama olmadı yanlış bir şey mi var acaba koly gelsin...
derviş
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

birde şöyle dene..
form2 nin public inde birdeğişken tanımla
mesela

Kod: Tümünü seç

  xUser : String;
kullanıcıyı bu değişkene gönder

Kod: Tümünü seç

form2.xuser := trim(dblookupcombpbox1.text);
form2.nin activate inde de

Kod: Tümünü seç

if xuser = 'user' then
  btnSil.Enabled := False;
ilk sorunu anlayamadım :roll:
DeveloperToolKit

..::|YeşilMavi|::..
unalaygun
Üye
Mesajlar: 139
Kayıt: 27 Mar 2004 12:34
Konum: istanbul

Mesaj gönderen unalaygun »

hocam dediğiniz gibi bir string değişken tanımlayıp onun içine databasedeki değişkeni içine aktarıp trim ile hallettim ama login olan kullanıcının adına göre butonumu saklamayı malesef yapamadım daha once defalarca yaptığım bir şeydi ama nedense şimdi olmuyor yardımlarınız için çok teşekürler..kolay gelsin...
derviş
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

Kod: Tümünü seç

if xuser = 'user' then 
  btnSil.Enabled := False;
birde formun OnShow una yazmayı dene
DeveloperToolKit

..::|YeşilMavi|::..
unalaygun
Üye
Mesajlar: 139
Kayıt: 27 Mar 2004 12:34
Konum: istanbul

Mesaj gönderen unalaygun »

malasef olmadı abilerim onshow'uda denedim işin kötü tarafı kod su


if dblookupcombobox1.text='ADMIN' then

begin
form2.show;
form1.hide;
end
else
begin
form2.button1.enabled:=false;

end



ve işin kötü tarafı şunuda denedim



showmessage(dblookupcombobox1.tex) ve şeçtiğim değere göre ADMIN yada USER geliyor ama değerlendirirken neden değerlendirmiyor onu anlamıyorum acil yardımlarınızı bekliyorum abiler kolay gelsin...
derviş
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
Dblookup kombobox un keyfieldi ile editteki texti karşılaştırısan sanırım sorunun çözülür.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

bu kadar dblookopcomboboxta ısrar ettiğini anlayamadım
zaten dblookopcomboboxta seçtğin kayıt aktif olduğundan veri tabanındam kontrol etsen daha kolay olmaz mı şöyşeki

Kod: Tümünü seç

 if ibdataset1.FieldByName('user').Text='ADMIN' then 

begin 
form2.show; 
form1.hide; 
end 
else 
begin 
form2.button1.enabled:=false; 

end 
birde böyle dene istersen

ben bi projem de

Kod: Tümünü seç

 IF (giris.adok.FieldByName('yetkimlik').AsBoolean = false) THEN
          BEGIN
               BitBtn4.Enabled := FALSE;
               EDITADI.Readonly := true;
               EDITSOYADI.Readonly := true;
               EDITBABADI.Readonly := true;
               COMBOMEDENIHALI.Readonly := true;
               EDITDOGUMYERI.Readonly := true;
               COMBONUFIL.Readonly := true;
               COMBONUFILCE.Readonly := true;
               EDITCILTNO.Readonly := true;
               EDITASN.Readonly := true;
               EDITBSN.Readonly := true;
               COMBOCINSIYET.Readonly := true;
               EDITDOGUMTARIHI.Readonly := true;
               EDITMERNISNO.Readonly := true;
          END;
     
yaptım 2 yıldır hiç bi problemim yok
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
unalaygun
Üye
Mesajlar: 139
Kayıt: 27 Mar 2004 12:34
Konum: istanbul

Mesaj gönderen unalaygun »

hocam soylediğinizden esinlenerek su yolu denedim


if ibdataset.fieldbyname('sifre').asstring=edit1.text then

begin
end

else

begin
form2.button1.enabled:=false;


oldu..
derviş
Cevapla