![]() |
Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir. |
Başka Unitten diğer unite veri çekme |
Yanıt Yaz ![]() |
Yazar | |
Sudesigirci ![]() Deneyimli Üye ![]() Kayıt Tarihi: 24 Haziran 2025 Konum: KONYA Durum: Aktif Değil Puanlar: 53 |
![]() Yanıt Yaz
Alıntı Sudesigirci
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
![]() ![]() ![]() ![]() Gönderim Zamanı: 09 Temmuz 2025 Saat 12:24 |
Merhaba ana kodda oluşturduğum tablodan kullanıcı mail verisini talepler unitime çekmek istiyorum bu işlemi nasıl yapacağım yardımcı olur musunuz ? Teşekkür ederim.
-----ANA KOD------ var loginform:TclStyleForm; loginbtn,signupbtn;TClProButton; emailedit,passwordedit:TclProEdit; quotelabel:TClProLabel; UnitRegister:TclUnit; kullaniciTipi,kullaniciAdi: String; void CreateTable; { try { Clomosy.DBSQLiteConnect(Clomosy.AppFilesPath + 'musteri.db3', ''); Clomosy.DBSQLiteQuery.SQL.Text = 'CREATE TABLE IF NOT EXISTS Users (' + 'UserID INTEGER PRIMARY KEY AUTOINCREMENT,' + 'Email TEXT NOT NULL UNIQUE,' + 'FirstName TEXT NOT NULL,' + 'LastName TEXT NOT NULL,' + 'Password TEXT NOT NULL,' + 'UserType TEXT NOT NULL '+')'; Clomosy.DBSQLiteQuery.OpenOrExecute(); } except ShowMessage('Exception class: ' + LastExceptionClassName + ' Exception Message: ' + LastExceptionMessage); } } void CreateTaleplerTable; { try Clomosy.DBSQLiteQuery.SQL.Text = 'CREATE TABLE IF NOT EXISTS Talepler (' + 'id INTEGER PRIMARY KEY AUTOINCREMENT,' + 'kullanici_email TEXT NOT NULL,' + 'baslik TEXT NOT NULL,' + 'aciklama TEXT NOT NULL' + ')'; Clomosy.DBSQLiteQuery.OpenOrExecute; except ShowMessage('Exception class: ' + LastExceptionClassName + ' Exception Message: ' + LastExceptionMessage); } void SignIn; { try Clomosy.DBSQLiteQuery.SQL.Text = 'SELECT UserType,FirstName FROM Users WHERE Email = ' + QuotedStr(emailedit.Text) + ' AND Password = ' + QuotedStr(passwordedit.Text); Clomosy.DBSQLiteQuery.OpenOrExecute; if not Clomosy.DBSQLiteQuery.Eof { kullaniciTipi = Clomosy.DBSQLiteQuery.FieldByName('UserType').AsString; kullaniciAdi = Clomosy.DBSQLiteQuery.FieldByName('FirstName').AsString; ShowMessage('Hoş geldin, ' + kullaniciAdi); if (kullaniciTipi == 'Admin') Clomosy.RunUnit('UAdminHome'); else if (kullaniciTipi == 'Kullanıcı') Clomosy.RunUnit('UUserPage'); } else { ShowMessage('Giriş başarısız. Email ya da şifre hatalı.'); } Clomosy.DBSQLiteQuery.Close; except ShowMessage('Exception class: ' + LastExceptionClassName + ' Exception Message: ' + LastExceptionMessage); Clomosy.DBSQLiteQuery.Close; } } void gotoRegister; { UnitRegister.UnitName='URegister'; UnitRegister.CallerForm=loginform; UnitRegister.Run; } { loginform=TclStyleForm.Create(Self); loginform.SetFormBGImage('https://i.imgur.com/qbg3hQN.png'); emailedit=loginform.AddNewProEdit(loginform, 'emailedit', 'Email: '); emailedit.Align=alTop; emailedit.clProSettings.BackgroundColor=clAlphaColor.clHexToColor('#ffffff') emailedit.Width=60; emailedit.Height=40; emailedit.Margins.Top=250; emailedit.Margins.Right=60; emailedit.Margins.Left=60; emailedit.clProSettings.RoundHeight=8; emailedit.clProSettings.RoundWidth=8; emailedit.clProSettings.TextSettings.Font.Size=10; emailedit.clProSettings.TextSettings.FontColor=clAlphaColor.clHexToColor('#e9e9e9'); emailedit.SetclProSettings(emailedit.clProSettings); passwordedit=loginform.AddNewProEdit(loginform, 'passwordedit', 'Şifre: '); passwordedit.Align=alTop; passwordedit.clProSettings.BackgroundColor=clAlphaColor.clHexToColor('#ffffff') passwordedit.Width=60; passwordedit.Height=40; passwordedit.Margins.Top=50; passwordedit.Margins.Right=60; passwordedit.Margins.Left=60; passwordedit.Password=True; passwordedit.clProSettings.RoundHeight=8; passwordedit.clProSettings.RoundWidth=8; passwordedit.clProSettings.TextSettings.Font.Size=10; passwordedit.clProSettings.TextSettings.FontColor=clAlphaColor.clHexToColor('#e9e9e9'); passwordedit.SetclProSettings(passwordedit.clProSettings); loginbtn=loginform.AddNewProButton(loginform, 'loginbtn', 'GİRİŞ YAP'); loginbtn.Align=alCenter; loginbtn.clProSettings.BackgroundColor=clAlphaColor.clHexToColor('#ffffff'); loginbtn.clProSettings.TextSettings.Font.Size=30; loginbtn.clProSettings.FontColor=clAlphaColor.clHexToColor('#e9e9e9'); loginbtn.clProSettings.TextSettings.Font.Style=[fsBold]; loginbtn.Height=30; loginbtn.Width=80; loginbtn.Margins.Bottom=100; loginbtn.Margins.Right=100; loginbtn.clProSettings.RoundHeight=8; loginbtn.clProSettings.RoundWidth=8; loginbtn.clProSettings.IsTransparent=True; loginbtn.clProSettings.FontVertAlign = palcenter; loginbtn.clProSettings.FontHorzAlign = palCenter; loginbtn.SetclProSettings(loginbtn.clProSettings); signupbtn=loginform.AddNewProButton(loginform, 'signupbtn', 'KAYIT OL'); signupbtn.Align=alCenter; signupbtn.clProSettings.BackgroundColor=clAlphaColor.clHexToColor('#ffffff'); signupbtn.clProSettings.TextSettings.Font.Size=30; signupbtn.clProSettings.FontColor=clAlphaColor.clHexToColor('#e9e9e9'); signupbtn.clProSettings.TextSettings.Font.Style=[fsBold]; signupbtn.Height=30; signupbtn.Width=80; signupbtn.Margins.Bottom=100; signupbtn.Margins.Left=100; signupbtn.clProSettings.RoundHeight=8; signupbtn.clProSettings.RoundWidth=8; signupbtn.clProSettings.IsTransparent=True; signupbtn.clProSettings.FontVertAlign = palcenter; signupbtn.clProSettings.FontHorzAlign = palCenter; signupbtn.SetclProSettings(signupbtn.clProSettings); quotelabel = loginform.AddNewProLabel(loginform,'quotelabel','"Müşteriyi dinleyen değil, anlayan sistem."'); quotelabel.Align = alBottom; quotelabel.Margins.Bottom=20; quotelabel.Margins.Left=70; quotelabel.Margins.Right=50; quotelabel.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); quotelabel.clProSettings.FontSize =15; quotelabel.clProSettings.AutoSize = True; quotelabel.clProSettings.FontVertAlign = palcenter; quotelabel.clProSettings.FontHorzAlign = palLeading; quotelabel.clProSettings.TextSettings.Font.Style = [fsItalic]; quotelabel.clProSettings.IsFill = True; quotelabel.clProSettings.IsRound = True; quotelabel.SetclProSettings(quotelabel.clProSettings); CreateTable; UnitRegister=TclUnit.Create; loginform.AddNewEvent(signupbtn,tbeOnClick,'gotoRegister'); loginform.AddNewEvent(loginbtn,tbeOnClick,'SignIn'); loginform.Run; } -----URequest Uniti---------- var talepForm:TclStyleForm; baslikLbl,labeltest:TClProLabel; requestpnl:TclProPanel; baslikedit,aciklamaedit:TclProEdit; eklebtn:TClProButton; void TalepEkle; { try { Clomosy.DBSQLiteQuery.SQL.Text = 'INSERT INTO Talepler (kulanici_email,baslik, aciklama) VALUES (' + //kullanıcı maili QuotedStr(aciklamaedit.Text) + ',' + QuotedStr(baslikedit.Text) + ',' + QuotedStr(kategoriCombo.Text) +')'; Clomosy.DBSQLiteQuery.OpenOrExecute; ShowMessage('Talep başarıyla eklendi.'); aciklamaedit.Text = ''; baslikedit.Text=''; } except { ShowMessage('Exception class: ' + LastExceptionClassName + ' Exception Message: ' + LastExceptionMessage); } } { talepForm=TclStyleForm.Create(Self); talepForm.SetFormBGImage('https://i.imgur.com/rQmEqR4.jpeg'); baslikLbl = talepForm.AddNewProLabel(talepForm, 'baslikLbl', 'Talep Oluştur'); baslikLbl.Align = alTop; baslikLbl.Margins.Top=10; baslikLbl.Height = 40; baslikLbl.clProSettings.FontSize = 30; baslikLbl.clProSettings.TextSettings.Font.Style = [fsBold]; baslikLbl.clProSettings.FontHorzAlign = palCenter; baslikLbl.SetclProSettings(baslikLbl.clProSettings); requestpnl=talepForm.AddNewProPanel(talepForm, 'requestpnl'); requestpnl.Align=alCenter; requestpnl.Height=350; requestpnl.Width=400; requestpnl.clProSettings.BackgroundColor=clAlphaColor.clHexToColor('#ffffff'); requestpnl. clProSettings.BorderColor = clAlphaColor.clHexToColor('#fabd2'); requestpnl.clProSettings.RoundWidth=8; requestpnl.clProSettings.RoundHeight=8; requestpnl.SetclProSettings(requestpnl.clProSettings); requestpnl.BringToFront; baslikedit=talepForm.AddNewProEdit(requestpnl, 'baslikedit', 'Talep Başlığı'); baslikedit.Align=alTop; baslikedit.Height=40; baslikedit.Width=60; baslikedit.clProSettings.FontHorzAlign=palCenter; baslikedit.clProSettings.BackgroundColor=clAlphaColor.clHexToColor('#58d7f4'); baslikedit.SetclProSettings(baslikedit.clProSettings); aciklamaedit=talepForm.AddNewProEdit(requestpnl,'aciklamaedit','Açıklama'); aciklamaedit.Align=alTop; aciklamaedit.Margins.Top=10; aciklamaedit.Height=200; aciklamaedit.Width=250; aciklamaedit.clProSettings.FontVertAlign=palLeading; aciklamaedit.clProSettings.FontHorzAlign=palLeading; aciklamaedit.clProSettings.BackgroundColor=clAlphaColor.clHexToColor('#58d7f4'); aciklamaedit.SetclProSettings(aciklamaedit.clProSettings); eklebtn=talepForm.AddNewProButton(requestpnl,'eklebtn','EKLE'); eklebtn.Align=alBottom; eklebtn.Margins.Bottom=5; eklebtn.Height=40; eklebtn.Width=60; eklebtn.Margins.Right=60; eklebtn.Margins.Left=60; eklebtn.clProSettings.RoundHeight=8; eklebtn.clProSettings.RoundWidth=8; eklebtn.clProSettings.BackgroundColor=clAlphaColor.clHexToColor('#58d7f4'); eklebtn.clProSettings.FontColor=clAlphaColor.clHexToColor('#ffffff'); eklebtn.clProSettings.TextSettings.Font.Style=[fsBold]; eklebtn.clProSettings.FontSize=20; eklebtn.SetclProSettings(eklebtn.clProSettings); talepForm.Run; } |
|
![]() |
|
cerenn ![]() Yeni Üye ![]() Kayıt Tarihi: 18 Haziran 2025 Durum: Aktif Değil Puanlar: 26 |
![]() ![]() ![]() ![]() ![]() |
Merhaba sorunu doğru anladıysam bunu global değişkenle sağlayabilirsin.
https://www.docs.clomosy.com/index.php?title=Global_Variables buradan inceleyebilirsin.
var aktifEmail: String; void SignIn; { try Clomosy.DBSQLiteQuery.SQL.Text = 'SELECT UserType, FirstName, Email FROM Users WHERE Email = ' + QuotedStr(emailedit.Text) + ' AND Password = ' + QuotedStr(passwordedit.Text); Clomosy.DBSQLiteQuery.OpenOrExecute; if not Clomosy.DBSQLiteQuery.Eof { kullaniciTipi = Clomosy.DBSQLiteQuery.FieldByName('UserType').AsString; kullaniciAdi = Clomosy.DBSQLiteQuery.FieldByName('FirstName').AsString; aktifEmail = Clomosy.DBSQLiteQuery.FieldByName('Email').AsString; // Global değişkene email'i kaydet Clomosy.GlobalVariableString = aktifEmail; ShowMessage('Hoş geldin, ' + kullaniciAdi); if (kullaniciTipi == 'Admin') Clomosy.RunUnit('UAdminHome'); else if (kullaniciTipi == 'Kullanıcı') Clomosy.RunUnit('URequest'); } else { ShowMessage('Giriş başarısız. Email ya da şifre hatalı.'); } Clomosy.DBSQLiteQuery.Close; except ShowMessage('Exception class: ' + LastExceptionClassName + ' Exception Message: ' + LastExceptionMessage); Clomosy.DBSQLiteQuery.Close; } } Unit içinde: void TalepEkle; { var kullaniciEmail: String; try { // Global değişkenden email'i al kullaniciEmail = Clomosy.GlobalVariableString; if (kullaniciEmail != '') { Clomosy.DBSQLiteQuery.SQL.Text = 'INSERT INTO Talepler (kullanici_email, baslik, aciklama) VALUES (' + QuotedStr(kullaniciEmail) + ',' + QuotedStr(baslikedit.Text) + ',' + QuotedStr(aciklamaedit.Text) + ')'; Clomosy.DBSQLiteQuery.OpenOrExecute; ShowMessage('Talep başarıyla eklendi.'); aciklamaedit.Text = ''; baslikedit.Text = ''; } else { ShowMessage('Kullanıcı girişi yapılmamış!'); } } except { ShowMessage('Exception class: ' + LastExceptionClassName + ' Exception Message: ' + LastExceptionMessage); } } kategoricombo daha tanımlamadığın için bu sekilde gösterdim. Birde öneri olarak uygulaman tam olarak nasıl bilmiyorum ama uzun vadede foreign key kullanmak daha güvenli olacaktır.Sanırım her kullanıcı talep oluşturabiliyor.Bu durumda Users ve talepler tablosunu birbirine bağlarsın.Kullanıcı ID'si ile işlem yapılır,böylece email değişse bile talepler etkilenmez.İyi çalışmalar. |
|
![]() |
Yanıt Yaz ![]() |
|
Tweet |
Forum Atla | Forum İzinleri ![]() Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |