Orda hata almanın sebebi Clomosyde SQLite sorgularından .Open kullanılmaz onun yerine .OpenOrExecute kullanılır bu method parametre istemez. Bunun haricinde de bazı hatalar gördüm Query1 ve SqliteQuery1 değişkenlerini tanımlamadan kullanmışsın.
Kodun doğru hali:
//Login page var loginform : TclForm; PanelForm : TclProPanel; titleLabel: TClProLabel; titleLabellogin: TClProLabel; EmailEdit,ParolaEdit:TclProEdit; logbtn:TClProButton; email,pass:String; SqliteQuery1 : TClSQLiteQuery; // HATA 1: SqliteQuery1 değişkeni tanımlanmamıştı, eklendi.
void setPanel(a,b:Integer;color:String); { PanelForm = loginform.AddNewProPanel(loginform,'PanelForm'); PanelForm.Align = alCenter; PanelForm.Width = a; PanelForm.Height = b; PanelForm.clProSettings.BorderColor = clAlphaColor.clHexToColor('#46484e'); PanelForm.clProSettings.BorderWidth = 2; PanelForm.clProSettings.IsFill = True; PanelForm.clProSettings.IsRound = True; PanelForm.clProSettings.BackgroundColor = clAlphaColor.clHexToColor(color); PanelForm.SetclProSettings(PanelForm.clProSettings); }
void setLabel; { titleLabel = loginform.AddNewProLabel(PanelForm,'titleLabel','WELCOME TO CLOMOSY'); titleLabel.Align = alTop; titleLabel.Height = 70; titleLabel.clProSettings.FontColor = clAlphaColor.clHexToColor('#e14714'); titleLabel.clProSettings.FontSize = 40; titleLabel.clProSettings.FontVertAlign = palcenter; titleLabel.clProSettings.FontHorzAlign = palCenter; titleLabel.clProSettings.TextSettings.Font.Style = [fsBold]; titleLabel.SetclProSettings(titleLabel.clProSettings); }
void setLabelLogin; { titleLabellogin = loginform.AddNewProLabel(PanelForm,'titleLabellogin','Login to your Page'); titleLabellogin.Align = alTop; titleLabellogin.Height = 70; titleLabellogin.clProSettings.FontColor = clAlphaColor.clHexToColor('#e14714'); titleLabellogin.clProSettings.FontSize = 40; titleLabellogin.clProSettings.FontVertAlign = palcenter; titleLabellogin.clProSettings.FontHorzAlign = palCenter; titleLabellogin.clProSettings.TextSettings.Font.Style = [fsBold]; titleLabellogin.SetclProSettings(titleLabellogin.clProSettings); }
void setEmail; { // HATA 2: Satır sonlarında noktalı virgül (;) eksikti, eklendi. EmailEdit=loginform.AddNewProEdit(PanelForm, 'EmailEdit', 'Enter your email here'); EmailEdit.Align=alTop; EmailEdit.Height=50; EmailEdit.Margins.Top=20; EmailEdit.Margins.Left=20; EmailEdit.Margins.Right=20; EmailEdit.clProSettings.BackgroundColor=clAlphaColor.clHexToColor('#D1D1D1'); EmailEdit.clProSettings.IsTransparent=True; EmailEdit.clProSettings.IsRound=False; EmailEdit.clProSettings.RoundWidth=20; EmailEdit.clProSettings.RoundHeight=20; EmailEdit.clProSettings.BorderColor=clAlphaColor.clHexToColor('#070807'); EmailEdit.clProSettings.BorderWidth=2; EmailEdit.TextSettings.Font.Size=16; EmailEdit.TextSettings.FontColor=clAlphaColor.clHexToColor('#070807'); EmailEdit.SetclProSettings(EmailEdit.clProSettings); }
void setParola; { // Noktalı virgüller eksikti, eklendi. ParolaEdit=loginform.AddNewProEdit(PanelForm, 'ParolaEdit', 'Enter your password here'); ParolaEdit.Align=alTop; ParolaEdit.Height=50; ParolaEdit.Margins.Top=20; ParolaEdit.Margins.Left=20; ParolaEdit.Margins.Right=20; ParolaEdit.password=True; ParolaEdit.clProSettings.BackgroundColor=clAlphaColor.clHexToColor('#919191'); ParolaEdit.clProSettings.IsTransparent=True; ParolaEdit.clProSettings.IsRound=False; ParolaEdit.clProSettings.RoundWidth=20; ParolaEdit.clProSettings.RoundHeight=20; ParolaEdit.clProSettings.BorderColor=clAlphaColor.clHexToColor('#070807'); ParolaEdit.clProSettings.BorderWidth=2; ParolaEdit.TextSettings.Font.Size=16; ParolaEdit.TextSettings.FontColor=clAlphaColor.clHexToColor('#070807'); ParolaEdit.SetclProSettings(ParolaEdit.clProSettings); }
void login; { logbtn=loginform.AddNewProButton(PanelForm, 'logbtn', 'LogIn'); logbtn.Align=alCenter; logbtn.Height=60; logbtn.Width=150; logbtn.Margins.Top=30; logbtn.Margins.Left=20; logbtn.Margins.Right=20; logbtn.Margins.Bottom=70; logbtn.clProSettings.BackgroundColor=clAlphaColor.clHexToColor('#e14714'); logbtn.clProSettings.RoundWidth=20; logbtn.clProSettings.RoundHeight=20; logbtn.clProSettings.BorderColor=clAlphaColor.clHexToColor('#070807'); logbtn.clProSettings.BorderWidth=2; logbtn.clProSettings.FontSize=20; logbtn.clProSettings.FontColor=clAlphaColor.clHexToColor('#ffffff'); logbtn.clProSettings.TextSettings.Font.Style = [fsBold]; logbtn.SetclProSettings(logbtn.clProSettings); loginform.AddNewEvent(logbtn, tbeOnClick, 'connection'); }
void veriTabani; { // HATA 3: Veritabanı bağlantısı hiç yapılmamıştı! DBSQLiteConnect komutu eklendi. Clomosy.DBSQLiteConnect(Clomosy.AppFilesPath + 'veritabanim.db3', ''); // Tablonun var olduğundan emin olmak için tablo oluşturma (Yoksa oluşturur) Clomosy.DBSQLiteQuery.Sql.Text = 'CREATE TABLE IF NOT EXISTS Users (Email TEXT, password TEXT)'; Clomosy.DBSQLiteQuery.OpenOrExecute; }
void SetVeri; { // HATA 4: Insert işlemi için doğrudan SQL sorgusu yazıp OpenOrExecute kullanmak en sağlıklı yöntemdir. Clomosy.DBSQLiteQuery.Sql.Text = 'INSERT INTO Users (Email, password) VALUES ('+QuotedStr(' [email protected]')+', '+QuotedStr('clomosy')+')'; Clomosy.DBSQLiteQuery.OpenOrExecute; }
void getVeri(email,pass:String); { // HATA 5: Değişkenler tırnak içinde gönderilemez! QuotedStr ile string dışına alınıp birleştirilmeli. SqliteQuery1 = Clomosy.DBSQLiteQueryWith('SELECT * FROM Users WHERE Email = '+QuotedStr(email)+' AND password='+QuotedStr(pass)); SqliteQuery1.OpenOrExecute; // Open yerine OpenOrExecute kullanıldı if (SqliteQuery1.Found) // Found komutu kayıt bulundu mu kontrolü için daha sağlıklıdır. { ShowMessage('Welcome user '+email); } else { ShowMessage('Connection failed!!! Check your email and your password and try again'); } }
void connection; { // HATA 6: ProEdit nesnelerinin değerini .Caption ile değil .Text ile almalısınız. email=EmailEdit.Text; pass=ParolaEdit.Text; getVeri(email,pass); }
{ loginform = TCLForm.Create(Self); loginform.SetFormColor('#101d2d','',clGNone); veriTabani; SetVeri; // Eğer her program açıldığında Ali222 kullanıcısını tekrar tekrar eklemesini istemiyorsanız, testten sonra bu satırı silebilirsiniz. setPanel(480,420,'#080c16'); setLabel; setLabelLogin; setEmail; setParola; login; // HATA 7: Ana blokta getVeri; fonksiyonu parametresiz çalıştırılmaya çalışılıyordu. Bu satır silindi. (Bağlantı butona basınca connection fonksiyonu ile zaten çalışacaktır). loginform.Run; } https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
|