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. |
Veritabanına Kullanıcı Adı Çekme |
Yanıt Yaz | Sayfa 12> |
Yazar | |
emre.gungor01
Deneyimli Üye Kayıt Tarihi: 03 Mayıs 2024 Konum: Konya Durum: Aktif Değil Puanlar: 46 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı emre.gungor01
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Gönderim Zamanı: 10 Haziran 2024 Saat 12:45 |
Merhabalar, oyun projemde Ana Kod ve Oyun Unit'im bulunmaktadır. Ana kod'umda giriş ekranı tasarladım ve burada giriş ekranında kullanıcı adını girdiği zaman bunu veritabanına alıyor aynı kullanıcı adıyla girmişse kullanıcı adını birdaha almayacak şekilde tasarladım. Kodları:
En sonunda gerçekleşirse Oyun Unit'ime gidiyor ve gerçekleşiyorda. Burada sıkıntı yok sadece burada bulunan kullanıcı girdiğinde kullanıcını adını yazıyor ve mssql veri tabanına kaydediyor, kaydettiği kullanıcı adını mssql'de bulunan skorlar tablomda da görmek istiyorum. Çünkü oyun Unit'imde kullanıcı adını girebileceği yer yok ve bu işlemi gerçekleştiremiyor. Eğer ki Oyun Unit dosyamda kullanıcı adını çekebiliyorsam nasıl yapabilirim? Oyun Unit dosyama gelecek olursam oyunun oynandığı kısım tamamen burası btn1 adında butonum bulunuyor ve içerisinde sayac=Integer değerinde bir değişkenim var ve butona bastıkça içindeki sayıyı arttırıyor. Süre bittiğinde veya buton haricinde ekranın herhangi bir yerine tıklandığında oyundan çıkıyor ve bu skoru kaydetmesini istiyorum veritabanına giriş ekranında kullanıcı girişini giren kişinin yanına skorumu kaydetmesini istiyorum. Skoru nasıl veri tabanına kaydedeceğimi buldum. Kodları: Böyle yaptığım zaman mssql'de bulunan dbo.Skorlar tabloma ekleme yapıyor. Çıktı: fakat benim istediğim Ana Kodda bulunan giriş ekranında kullanıcı adını giren kişiyi mssql'de bulunan dbo.Kullaniicilar tabloma eklediği gibi bunu dbo.Skorlar tablomada eklemesini istiyorum ve yanına skorunu yazmasını istiyorum ve bunu aynı kullanıcı girerse aynı kullanıcının üstüne güncel skorunu yazmasını farklı kullanıcı ise önceki kullanıcıyı geçtiği zaman üstüne yazdırmasını istiyorum mssql çıktısındaki gibi değilde 9 sayısının en üstte sonra 4 3 3 3 şeklinde ilerlemesini istiyorum. Fakat sürekli hata alıyorum bununda nedeninin Ana Kod'dan kullanıcı adını çekememden kaynaklı olduğunu düşünüyorum. Şu şekilde Oyun Unit'imde kodu tasarladığım zaman hata veriyor. Çıktı: Burada şöyle düşündüm hadi ana kodda KullaniciId'yi çekemedim. OyuncuAdi'nda da hata veriyor. Sürekli olarak bu hataları yaşıyorum bunu nasıl çözebilirim? Ana Kod: Var AnaForm:TclForm; KullaniciId: String; Id:Integer; OyunGirisButonu: TClProButton; //Giriş butonu GirisLabeli: TCLLabel; //Oyun Adı KullaniciAdiEdt:TclEdit; //Kullanıcı Adı Girişi KullaniciAdi: String; //Kullanıcı Adı Girişi //Resimler resim1:TCLImage; resim2:TCLImage; resim3:TCLImage; resim4:TCLImage; resim5:TCLImage; resim6:TCLImage; bomba1:TCLImage; time1:TCLImage; //Veritabanı OyunVeritabani:TClSqlQuery; //Skor Tablosu SkorTablosu: TClProButton; //Kurucu Girişi adminGirisi: TClProButton; //Veri Tabanı bağlantısı için. Void SetupSqlConnection { Clomosy.DBSQLServerConnect('SQL Server', '192.168.1.149', 'sa', '1', 'Oyun', 1433); } //Girilen Kullanıcı Adlarını Veri Tabanına almak için. void OyunGirisButonuClick { OyunVeritabani = TClSqlQuery.Create(nil); try OyunVeritabani.Connection = Clomosy.DBSQLServerConnection; // Kullanıcı adını ekleme veya varsa kullanıcı id'sini alma OyunVeritabani.SQL.Text = 'IF NOT EXISTS (SELECT 1 FROM Kullaniicilar WHERE OyuncuAdi = ' + QuotedStr(KullaniciAdiEdt.Text) + ') ' + 'BEGIN ' + 'INSERT INTO Kullaniicilar (OyuncuAdi) VALUES (' + QuotedStr(KullaniciAdiEdt.Text) + '); ' + 'END; ' + 'SELECT Id FROM Kullaniicilar WHERE OyuncuAdi = ' + QuotedStr(KullaniciAdiEdt.Text); OyunVeritabani.Open; KullaniciId = OyunVeritabani.FieldByName('Id').AsString; KullaniciAdi = KullaniciAdiEdt.Text; // Kullanıcı adını al finally OyunVeritabani.Free; } Clomosy.RunUnit('Oyun'); //Oyun adlı Unit'e gitmek için. } //Tıklandığında Skor'a atar. //void SkorTablosuClick //{ //Clomosy.RunUnit('Skor'); //} //Tıklandığında adminGirisi'ne atar. void adminGirisiClick { Clomosy.RunUnit('Admin'); } { AnaForm = TclForm.Create(Self); SetupSqlConnection; //Veritabanı bağlantısı için //Resimler //resim1 resim1=AnaForm.AddNewImage(AnaForm,'resim1'); AnaForm.SetImage(resim1,'https://cdn0.iconfinder.com/data/icons/phosphor-thin-vol-3/256/number-circle-one-thin-256.png'); resim1.Height=120; resim1.Width=120; resim1.Align=alBottom; resim1.Margins.Right=350; //resim2 resim2=AnaForm.AddNewImage(AnaForm,'resim2'); AnaForm.SetImage(resim2,'https://cdn0.iconfinder.com/data/icons/phosphor-thin-vol-3/256/number-circle-three-thin-512.png'); resim2.Height=120; resim2.Width=120; resim2.Align=alCenter; resim2.Margins.Right=500; //resim3 resim3=AnaForm.AddNewImage(AnaForm,'resim3'); AnaForm.SetImage(resim3,'https://cdn0.iconfinder.com/data/icons/phosphor-thin-vol-3/256/number-circle-five-thin-512.png'); resim3.Height=65; resim3.Width=65; resim3.Align=alCenter; resim3.Margins.Left=500; //resim4 resim4=AnaForm.AddNewImage(AnaForm,'resim4'); AnaForm.SetImage(resim4,'https://cdn0.iconfinder.com/data/icons/phosphor-thin-vol-3/256/number-circle-seven-thin-512.png'); resim4.Height=120; resim4.Width=120; resim4.Align=alBottom; resim4.Margins.Left=400; //resim5 resim5=AnaForm.AddNewImage(AnaForm,'resim5'); AnaForm.SetImage(resim5,'https://cdn0.iconfinder.com/data/icons/phosphor-thin-vol-3/256/number-circle-nine-thin-512.png'); resim5.Height=80; resim5.Width=80; resim5.Align=alTop; resim5.Margins.Right=200; //resim6 resim6=AnaForm.AddNewImage(AnaForm,'resim6'); AnaForm.SetImage(resim6,'https://cdn0.iconfinder.com/data/icons/phosphor-thin-vol-3/256/number-circle-six-thin-512.png'); resim6.Height=80; resim6.Width=80; resim6.Align=alTop; resim6.Margins.Left=400; //bomba1 bomba1=AnaForm.AddNewImage(AnaForm,'bomba1'); AnaForm.SetImage(bomba1,'https://cdn2.iconfinder.com/data/icons/nasty/60/apocolypse_nuclear_explosion_atomic_bomb-256.png'); bomba1.Height=60; bomba1.Width=60; bomba1.Align=alBottom; bomba1.Margins.Left=200; //time1 time1=AnaForm.AddNewImage(AnaForm,'time1'); AnaForm.SetImage(time1,'https://cdn4.iconfinder.com/data/icons/basic-ui-2-line/32/clock-time-ticker-times-hour-256.png'); time1.Height=45; time1.Width=45; time1.Align=alLeft; time1.Margins.Left=10; // Başlık Label'ı GirisLabeli = AnaForm.AddNewLabel(AnaForm, 'GirisLabeli', 'TimeTap'); GirisLabeli.StyledSettings = ssFamily; GirisLabeli.TextSettings.Font.Size = 24; GirisLabeli.Align = alTop; GirisLabeli.Height = 50; GirisLabeli.Width = 200; GirisLabeli.Margins.Left=300; GirisLabeli.Position.X = (AnaForm.clWidth / 2) - (GirisLabeli.Width / 2); GirisLabeli.Position.Y = 50; // Kullanıcı Adı Bölümü KullaniciAdiEdt = AnaForm.AddNewEdit(AnaForm,'KullaniciAdiEdt', 'Kullanici Adinizi Giriniz'); KullaniciAdiEdt.Align = alNone; KullaniciAdiEdt.Margins.Top=30; KullaniciAdiEdt.Width = 200; KullaniciAdiEdt.Height = 30; KullaniciAdiEdt.Position.X = (AnaForm.clWidth / 2) - (KullaniciAdiEdt.Width / 2) + 2; KullaniciAdiEdt.Position.Y = (AnaForm.clHeight / 2) - (KullaniciAdiEdt.Height / 2) - 75; KullaniciAdiEdt.TextPrompt = 'Kullanıcı Adınızı Girin'; KullaniciAdiEdt.MaxLength=17; //Belirli miktarda kullanıcı adı girebilir. // Başlat Butonu OyunGirisButonu = AnaForm.AddNewProButton(AnaForm, 'OyunGirisButonu', 'Başlat'); OyunGirisButonu.clProSettings.BackgroundColor=clAlphaColor.clHexToColor('#e0d1d1'); OyunGirisButonu.Margins.Top= 50; OyunGirisButonu.Align = alNone; OyunGirisButonu.Width = 100; OyunGirisButonu.Height= 50; OyunGirisButonu.Position.X = (AnaForm.clWidth / 2) - (OyunGirisButonu.Width / 2); OyunGirisButonu.Position.Y = (AnaForm.clHeight / 2) - (OyunGirisButonu.Height / 2); OyunGirisButonu.SetclProSettings(OyunGirisButonu.clProSettings); AnaForm.AddNewEvent(OyunGirisButonu, tbeOnClick, 'OyunGirisButonuClick'); // SkorTablosu SkorTablosu = AnaForm.AddNewProButton(AnaForm, 'SkorTablosu', ''); clComponent.SetupComponent(SkorTablosu,'{"RoundHeight": 2, "RoundWidth": 2, "BorderColor": "#000000"}'); AnaForm.SetImage(SkorTablosu, 'https://cdn3.iconfinder.com/data/icons/customer-experience-1/32/Score-256.png'); SkorTablosu.clProSettings.BackgroundColor=clAlphaColor.clHexToColor('#b4f500'); SkorTablosu.Margins.Left= 480; SkorTablosu.Margins.bottom=500; SkorTablosu.Align = alNone; SkorTablosu.Width = 70; SkorTablosu.Height= 40; SkorTablosu.SetclProSettings(SkorTablosu.clProSettings); AnaForm.AddNewEvent(SkorTablosu, tbeOnClick, 'SkorTablosuClick'); //Admin Girişi adminGirisi = AnaForm.AddNewProButton(AnaForm, 'adminGirisi', ''); clComponent.SetupComponent(adminGirisi,'{"RoundHeight": 2, "RoundWidth": 2, "BorderColor": "#000000"}'); AnaForm.SetImage(adminGirisi, 'https://cdn4.iconfinder.com/data/icons/essential-app-2/16/user-avatar-human-admin-login-256.png'); adminGirisi.clProSettings.BackgroundColor=clAlphaColor.clHexToColor('#00b8f5'); adminGirisi.Margins.Right= 630; adminGirisi.Margins.bottom=500; adminGirisi.Align = alNone; adminGirisi.Width = 70; adminGirisi.Height= 40; adminGirisi.SetclProSettings(adminGirisi.clProSettings); AnaForm.AddNewEvent(adminGirisi, tbeOnClick, 'adminGirisiClick'); TclButton(anaForm.clFindComponent('BtnFormMenu')).Visible = False; //Clomosy Form Menu kapatma olayı. TclButton(anaForm.clFindComponent('BtnGoBack')).Visible = False; //Clomosy Geri tuşunu kapatma olayı. AnaForm.SetFormColor('#ad6ec4','#6d6bbd',clGHorizontal); //AnaForm'un arkaplanını renklendirme. AnaForm.Run; // AnaForm'u çalıştırma. } Oyun Unit Kodlarım: Var AnaForm:TclForm; KullaniciAdi: String; //Buton kısmı btn1 : TClProButton; Zaman : TCLTimer; sayac:Integer; //Random Renk verme kısmı RndmTimer: TClTimer; colorArray : array of String; //Oyun Süresi kısmı oyunzaman:TCLTimer; sayac1:Integer; lblTimer: TCLLabel; //Random oyun süresi arttırma azaltma için ekranda çıkan görseller surearttirma: TCLImage; sureazaltma: TCLImage; SkorVeritabani: TClSqlQuery; void SetupSqlConnection { Clomosy.DBSQLServerConnect('SQL Server', '192.168.1.149', 'sa', '1', 'Oyun', 1433); } //Buton haricinde ekranın herhangi bir yerine basınca oyundan çıkmak için. void onFormMouseDown { ShowMessage('Yandınız.Oyuna tekrardan başlayınız.'); AnaForm.clHide; oyunzaman.Enabled=False; } //Başlangıç ekranından sonra olacak olay için void OyunBaslangic; { btn1.Visible=True; } //Random olarak arkaplan rengini değiştirmek için. void randomColor; var randmDeger: Integer; { colorArray = ['#26cf3a','#ff780a','#9a7de8','#813b3b','#a664c4','#6492c4','#81c464']; randmDeger = clMath.GenerateRandom(0,6); AnaForm.SetFormColor(colorArray[randmDeger],'',clGNone); } //Random olarakm btn1'in yerini değiştirmek için kısayol. void randomPosition; { if((sayac >= 32) && (sayac <= 55)) { btn1.Position.X = Abs((Random() * AnaForm.clWidth) - btn1.Width); btn1.Position.Y = Abs((Random() * AnaForm.clHeight) - btn1.Height); } } //Belirli zamanda ekranın herhangi bir yerinde çıkan görsele basınca ek süre eklemek için. void eksure //Ekranın ortasındaki sayı 3 veya büyük olunca çıkması için yapıldı. { if(IntToStr(btn1.Text) >= 3) { surearttirma.visible=False; sayac1 = sayac1+5; } } //Belirli zamanda ekranın herhangi bir yerinde çıkan görsele basınca süre azaltmak için. void sureazalt //Ekranın ortasındaki sayı 3 veya büyük olunca çıkması için yapıldı. { if(IntToStr(btn1.Text) >= 3) { sureazaltma.visible=False; sayac1 = sayac1-2; } } //btn1 içerisinde yazan sayıya göre işlemler döndüren kısım. randomColor,randomPosition,süre arttırma ve azaltma gibi işlemler yapar. void zamanlayici; { //Bu fonksiyon RndmTimer'ın rastgale çalışmasını engellemiş oluyor. if (sayac >= 32) { RndmTimer.Enabled = True; } btn1.Text = IntToStr(sayac); sayac = sayac + 1; //sayacı 1 1 arttırır. oyunzaman.Enabled=True; //oyun zamanı etkinleştirir btn1.Text = IntToStr(sayac); //btn1 içerisindeki sayı if(sayac == 3) //sureazaltma { sureazaltma.Position.X = Abs((Random() * AnaForm.clWidth) - sureazaltma.Width); sureazaltma.Position.Y = Abs((Random() * AnaForm.clHeight) - sureazaltma.Height); sureazaltma.visible=True; } if(sayac == 5) { AnaForm.SetFormColor('#23c7c5','',clGNone); sayac1 = sayac1 + 3; btn1.Position.X = Abs((Random() * AnaForm.clWidth) - btn1.Width); btn1.Position.Y = Abs((Random() * AnaForm.clHeight) - btn1.Height); surearttirma.Position.X = Abs((Random() * AnaForm.clWidth) - surearttirma.Width); surearttirma.Position.Y = Abs((Random() * AnaForm.clHeight) - surearttirma.Height); surearttirma.visible=True; } if(sayac==9) //sureazaltma { sureazaltma.Position.X = Abs((Random() * AnaForm.clWidth) - sureazaltma.Width); sureazaltma.Position.Y = Abs((Random() * AnaForm.clHeight) - sureazaltma.Height); sureazaltma.visible=True; } if(sayac == 13) { AnaForm.SetFormColor('#e01f1f','',clGNone); sayac1 = sayac1 + 5; btn1.Position.X = Abs((Random() * AnaForm.clWidth) - btn1.Width); btn1.Position.Y = Abs((Random() * AnaForm.clHeight) - btn1.Height); surearttirma.Position.X = Abs((Random() * AnaForm.clWidth) - surearttirma.Width); surearttirma.Position.Y = Abs((Random() * AnaForm.clHeight) - surearttirma.Height); surearttirma.visible=True; } if(sayac==17) //sureazaltma { sureazaltma.Position.X = Abs((Random() * AnaForm.clWidth) - sureazaltma.Width); sureazaltma.Position.Y = Abs((Random() * AnaForm.clHeight) - sureazaltma.Height); sureazaltma.visible=True; } if(sayac == 25) { AnaForm.SetFormColor('#cfeb00','#db7edd',clGHorizontal); sayac1 = sayac1 + 7; btn1.Position.X = Abs((Random() * AnaForm.clWidth) - btn1.Width); btn1.Position.Y = Abs((Random() * AnaForm.clHeight) - btn1.Height); surearttirma.Position.X = Abs((Random() * AnaForm.clWidth) - surearttirma.Width); surearttirma.Position.Y = Abs((Random() * AnaForm.clHeight) - surearttirma.Height); surearttirma.visible=True; } if(sayac==29) //sureazaltma { sureazaltma.Position.X = Abs((Random() * AnaForm.clWidth) - sureazaltma.Width); sureazaltma.Position.Y = Abs((Random() * AnaForm.clHeight) - sureazaltma.Height); sureazaltma.visible=True; } if((sayac >= 32) && (sayac <= 55)) { RndmTimer.Enabled = True; randomPosition(); } if (sayac >= 56) { AnaForm.SetFormColor('#ffae00','',clGNone); RndmTimer.Enabled = False; } btn1.Text = IntToStr(sayac); } //Oyun süresi için oluşturulmuş kısım void sure; { if(sayac1 == 0) { oyunzaman.Enabled = False; lblTimer.caption = IntToStr(sayac1); ShowMessage('Süreniz Doldu!'); ShowMessage('Puanınız: ' + IntToStr(sayac)); // Skoru veritabanına kaydet SkorVeritabani = TClSqlQuery.Create(nil); try SkorVeritabani.Connection = Clomosy.DBSQLServerConnection; SkorVeritabani.SQL.Text = 'INSERT INTO Skorlar (Skor) VALUES ('+ IntToStr(sayac) +')'; SkorVeritabani.ExecSQL; finally SkorVeritabani.Free; } } else { lblTimer.caption = IntToStr(sayac1); Dec(sayac1); } } //Ekranda bulunan her şeyin özellik kısmı eklemek için. { sayac=0; sayac1=5; AnaForm = TclForm.Create(Self); SetupSqlConnection; TclButton(anaForm.clFindComponent('BtnFormMenu')).Visible = False; //Clomosy'nin kendi uygulaması menü özelliği kapatıldı. TclButton(anaForm.clFindComponent('BtnGoBack')).Visible = False; //Clomosy'nin kendi uygulaması geri özelliği kapatıldı. //Random color kısmı RndmTimer = AnaForm.AddNewTimer(AnaForm,'RndmTimer',100); //sürekli olacağı için timer kullanıldı. RndmTimer.Enabled = False; AnaForm.AddNewEvent(RndmTimer,tbeOnTimer,'randomColor'); //oyunzaman süresi oyunzaman=AnaForm.AddNewTimer(AnaForm,'oyunzaman',1000); oyunzaman.Enabled=False; AnaForm.AddNewEvent(oyunzaman,tbeOnTimer,'sure'); lblTimer=AnaForm.AddNewLabel(AnaForm,'lblTimer',''); lblTimer.StyledSettings = ssFamily; lblTimer.TextSettings.Font.Size = 35; lblTimer.Align = alTop; lblTimer.Height=50; lblTimer.Width=50; lblTimer.Margins.Left = 170; //oyunzaman süresi AnaForm.SetFormColor('#52504d','',clGNone); btn1 = AnaForm.AddNewProButton(AnaForm,'btn1','Başla'); surearttirma = AnaForm.AddNewImage(AnaForm,'surearttirma'); sureazaltma = AnaForm.AddNewImage(AnaForm,'sureazaltma'); btn1.Align = alNone; btn1.Width = 100; btn1.Height = 100; btn1.Position.X = (AnaForm.clWidth / 2) - (btn1.Width / 2); //konum1. btn1.Position.Y = (AnaForm.clHeight / 2) - (btn1.Width / 2); // konum2. btn1.visible=True; AnaForm.SetImage(surearttirma,'https://cdn2.iconfinder.com/data/icons/chess-58/377/Time-256.png'); surearttirma.Align = alNone; surearttirma.Height = 35; surearttirma.Width = 35; surearttirma.Position.X = (AnaForm.clWidth / 2) - (surearttirma.Width / 2); //surearttirma konum1. surearttirma.Position.Y = (AnaForm.clHeight / 2) - (surearttirma.Width / 2); //surearttirma konum2. surearttirma.visible=False; //Ekranın farklı yerlerinde ek süre için çıkan resim görünürlüğü. //SÜRE AZALTMA AnaForm.SetImage(sureazaltma,'https://cdn2.iconfinder.com/data/icons/nasty/60/apocolypse_nuclear_explosion_atomic_bomb-256.png'); sureazaltma.Align = alNone; sureazaltma.Height = 40; sureazaltma.Width = 40; sureazaltma.Position.X = (AnaForm.clWidth / 2) - (sureazaltma.Width / 2); //sureazaltma konum1. sureazaltma.Position.Y = (AnaForm.clHeight / 2) - (sureazaltma.Width / 2); //sureazaltma konum2. sureazaltma.visible=False; //Ekranın farklı yerlerinde ek süre için çıkan resim görünürlüğü. btn1.clProSettings.BorderColor = clAlphaColor.clHexToColor('#a0a3b1'); btn1.clProSettings.FontColor = clAlphaColor.clHexToColor('#050505'); btn1.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#ffffff'); btn1.clProSettings.IsTransparent = False; btn1.clProSettings.FontSize = 12; btn1.clProSettings.FontVertAlign = palcenter;//palLeading , palCenter , palTrailing btn1.clProSettings.FontHorzAlign = palCenter; btn1.clProSettings.IsFill = True; btn1.clProSettings.IsRound = True; btn1.clProSettings.RoundHeight = 50; btn1.clProSettings.RoundWidth = 50; btn1.clProSettings.BorderWidth = 3; btn1.SetclProSettings(btn1.clProSettings); AnaForm.AddNewEvent(btn1,tbeOnClick,'zamanlayici'); //btn1'e tıklanınca süre etkinleşmesi için tıklanma olayı. AnaForm.AddNewEvent(surearttirma, tbeOnClick, 'eksure'); //ek süre için tıklanma olayı. AnaForm.AddNewEvent(sureazaltma, tbeOnClick, 'sureazalt'); //süre azaltmak için tıklanma olayı. AnaForm.AddNewEvent(AnaForm, tbeOnMouseDown, 'onFormMouseDown'); AnaForm.Run; } |
|
Developer
Forum Yöneticisi Kayıt Tarihi: 14 Haziran 2023 Durum: Aktif Değil Puanlar: 354 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Developer
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
|
Merhaba Emre,
Kullanıcı adını kontrol ettiksen sonra Clomosy.GlobalVariableString = 'Test'; diyerek. Oyun Unit'ine taşıyabilirsin kullanıcı adını skoru insert ederken de kullanıcı adını artık kullanabilirsin. Kullanıcı adını çekerken de kullaniciAdi = Clomosy.GlobalVariableString yapabilirsin. Kolay Gelsin
|
|
emre.gungor01
Deneyimli Üye Kayıt Tarihi: 03 Mayıs 2024 Konum: Konya Durum: Aktif Değil Puanlar: 46 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı emre.gungor01
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
|
Bunları nereye yazacağıma dair bir bilgi vermemişsiniz. Bir bilgi verebilirseniz işimi dahada kolay hale gelebilmesi ve ilerde sorun yaşayabilirsem düzeltmek için zaman ayırabilirim.
|
|
Developer
Forum Yöneticisi Kayıt Tarihi: 14 Haziran 2023 Durum: Aktif Değil Puanlar: 354 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Developer
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
|
Merhaba Emre,
/Girilen Kullanıcı Adlarını Veri Tabanına almak için. void OyunGirisButonuClick { OyunVeritabani = TClSqlQuery.Create(nil); try OyunVeritabani.Connection = Clomosy.DBSQLServerConnection; // Kullanıcı adını ekleme veya varsa kullanıcı id'sini alma OyunVeritabani.SQL.Text = 'IF NOT EXISTS (SELECT 1 FROM Kullaniicilar WHERE OyuncuAdi = ' + QuotedStr(KullaniciAdiEdt.Text) + ') ' + 'BEGIN ' + 'INSERT INTO Kullaniicilar (OyuncuAdi) VALUES (' + QuotedStr(KullaniciAdiEdt.Text) + '); ' + 'END; ' + 'SELECT Id FROM Kullaniicilar WHERE OyuncuAdi = ' + QuotedStr(KullaniciAdiEdt.Text); OyunVeritabani.Open; KullaniciId = OyunVeritabani.FieldByName('Id').AsString; KullaniciAdi = KullaniciAdiEdt.Text; // Kullanıcı adını al Clomosy.GlobalVariableString = KullaniciAdiEdt.Text; //Burada kullanıcı adının atamsını yaptın. finally OyunVeritabani.Free; } Clomosy.RunUnit('Oyun'); //Oyun adlı Unit'e gitmek için. } //Oyun süresi için oluşturulmuş kısım void sure; { if(sayac1 == 0) { oyunzaman.Enabled = False; lblTimer.caption = IntToStr(sayac1); ShowMessage('Süreniz Doldu!'); ShowMessage('Puanınız: ' + IntToStr(sayac)); // Skoru veritabanına kaydet SkorVeritabani = TClSqlQuery.Create(nil); try SkorVeritabani.Connection = Clomosy.DBSQLServerConnection; SkorVeritabani.SQL.Text = 'INSERT INTO Skorlar (Skor,KullaniciId) VALUES ('+ IntToStr(sayac),QuotedStr(Clomosy.GlobalVariableString) +')'; SkorVeritabani.ExecSQL; finally SkorVeritabani.Free; } } else { lblTimer.caption = IntToStr(sayac1); Dec(sayac1); } } İyi Çalışmalar |
|
emre.gungor01
Deneyimli Üye Kayıt Tarihi: 03 Mayıs 2024 Konum: Konya Durum: Aktif Değil Puanlar: 46 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı emre.gungor01
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
|
Merhabalar;
İstediğim gibi sonuç aldım teşekkürler. Fakat bu sefer hesaba katmadığımız bir sorun var. Beni mssql veritabanımda bulunan dbo.Kullaniicilar tablomda Id int türünde bunda sıkıntı yok, OyuncuAdi nvarchar(50) türünde Görsel: Giriş ekranında string türünde veriyle giriş yapabiliyorum ve oyunumuda oynayabiliyorum, oyun sonunda Bu hatayla karşılaşıyorum kullaniicilar tabloma alıyor kullanıcı adını fakat dbo.Skorlar tabloma o ismi almıyor. Bende giriş ekranında int tipinde değer girerek denedim ve oluyor hem dbo.Kullanicilar tabloma ekliyor hemde dbo.Skorlar tabloma ekliyor. Görseller: Burası Skorlar tablosu: Burası Kullaniicilar tablosu: Peki ben giriş ekranında string veri türünde girmek istediğimde skorlar tabloma kaydetmiyor, kullaniicilar tabloma kaydediyorsa her iki tabloma da nasıl kayıt ettirebilirim?
|
|
Atiker01
Forum Yöneticisi Kayıt Tarihi: 26 Temmuz 2023 Durum: Aktif Değil Puanlar: 92 |
Mesaj Seçenekleri
Teşekkürler(0)
|
Merhaba Emre,
görselleri ve hataları yüklememişsin. Tekrar atabilir misin?
|
|
emre.gungor01
Deneyimli Üye Kayıt Tarihi: 03 Mayıs 2024 Konum: Konya Durum: Aktif Değil Puanlar: 46 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı emre.gungor01
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
|
Merhabalar;
İstediğim gibi sonuç aldım teşekkürler. Fakat bu sefer hesaba katmadığımız bir sorun var. Beni mssql veritabanımda bulunan dbo.Kullaniicilar tablomda Id int türünde bunda sıkıntı yok, OyuncuAdi nvarchar(50) türünde Görsel; Giriş ekranında string türünde veriyle giriş yapabiliyorum ve oyunumuda oynayabiliyorum, oyun sonunda Bu hatayla karşılaşıyorum kullaniicilar tabloma alıyor kullanıcı adını fakat dbo.Skorlar tabloma o ismi almıyor. Bende giriş ekranında int tipinde değer girerek denedim ve oluyor hem dbo.Kullanicilar tabloma ekliyor hemde dbo.Skorlar tabloma ekliyor. Görseller: Böyle girdiğimde sorun çıkmıyor.Sadece string türünde kullanıcı adı girdiğimde çıkıyor. Burası Kullaniicilar tablosu: Burası Skorlar tablosu: Peki ben giriş ekranında string veri türünde girmek istediğimde skorlar tabloma kaydetmiyor, kullaniicilar tabloma kaydediyorsa her iki tabloma da nasıl kayıt ettirebilirim? |
|
Developer
Forum Yöneticisi Kayıt Tarihi: 14 Haziran 2023 Durum: Aktif Değil Puanlar: 354 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Developer
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
|
Merhaba Emre
Sanınırm KullaniciId kalmış sql Insert cümlende bunu değiştirmen gerekiyor. OyuncuAdi yazman gerekiyor. Çünki sql senden int değer türü bekliyor. eğer anlamazsan kodunu yükler misin Kolay Gelsin
|
|
emre.gungor01
Deneyimli Üye Kayıt Tarihi: 03 Mayıs 2024 Konum: Konya Durum: Aktif Değil Puanlar: 46 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı emre.gungor01
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
|
AnaKod:
Var AnaForm:TclForm; KullaniciId: String; Id:Integer; OyunGirisButonu: TClProButton; //Giriş butonu GirisLabeli: TCLLabel; //Oyun Adı KullaniciAdiEdt:TclEdit; //Kullanıcı Adı Girişi KullaniciAdi: String; //Kullanıcı Adı Girişi //Resimler resim1:TCLImage; resim2:TCLImage; resim3:TCLImage; resim4:TCLImage; resim5:TCLImage; resim6:TCLImage; bomba1:TCLImage; time1:TCLImage; //Veritabanı OyunVeritabani:TClSqlQuery; //Skor Tablosu SkorTablosu: TClProButton; //Kurucu Girişi adminGirisi: TClProButton; //Veri Tabanı bağlantısı için. Void SetupSqlConnection { Clomosy.DBSQLServerConnect('SQL Server', '192.168.1.149', 'sa', '1', 'Oyun', 1433); } //Girilen Kullanıcı Adlarını Veri Tabanına almak için. void OyunGirisButonuClick { OyunVeritabani = TClSqlQuery.Create(nil); try OyunVeritabani.Connection = Clomosy.DBSQLServerConnection; // Kullanıcı adını ekleme veya varsa kullanıcı id'sini alma OyunVeritabani.SQL.Text = 'IF NOT EXISTS (SELECT 1 FROM Kullaniicilar WHERE OyuncuAdi = ' + QuotedStr(KullaniciAdiEdt.Text) + ') ' + 'BEGIN ' + 'INSERT INTO Kullaniicilar (OyuncuAdi) VALUES (' + QuotedStr(KullaniciAdiEdt.Text) + '); ' + 'END; ' + 'SELECT Id FROM Kullaniicilar WHERE OyuncuAdi = ' + QuotedStr(KullaniciAdiEdt.Text); OyunVeritabani.Open; KullaniciId = OyunVeritabani.FieldByName('Id').AsString; KullaniciAdi = KullaniciAdiEdt.Text; // Kullanıcı adını al Clomosy.GlobalVariableString=KullaniciAdiEdt.Text; // Kullanıcı adını al //burası finally OyunVeritabani.Free; } Clomosy.RunUnit('Oyun'); //Oyun adlı Unit'e gitmek için. } //Tıklandığında Skor'a atar. void SkorTablosuClick { Clomosy.RunUnit('Skor'); } //Tıklandığında adminGirisi'ne atar. void adminGirisiClick { Clomosy.RunUnit('Admin'); } { AnaForm = TclForm.Create(Self); SetupSqlConnection; //Veritabanı bağlantısı için //Resimler //resim1 resim1=AnaForm.AddNewImage(AnaForm,'resim1'); AnaForm.SetImage(resim1,'https://cdn0.iconfinder.com/data/icons/phosphor-thin-vol-3/256/number-circle-one-thin-256.png'); resim1.Height=120; resim1.Width=120; resim1.Align=alBottom; resim1.Margins.Right=350; //resim2 resim2=AnaForm.AddNewImage(AnaForm,'resim2'); AnaForm.SetImage(resim2,'https://cdn0.iconfinder.com/data/icons/phosphor-thin-vol-3/256/number-circle-three-thin-512.png'); resim2.Height=120; resim2.Width=120; resim2.Align=alCenter; resim2.Margins.Right=500; //resim3 resim3=AnaForm.AddNewImage(AnaForm,'resim3'); AnaForm.SetImage(resim3,'https://cdn0.iconfinder.com/data/icons/phosphor-thin-vol-3/256/number-circle-five-thin-512.png'); resim3.Height=65; resim3.Width=65; resim3.Align=alCenter; resim3.Margins.Left=500; //resim4 resim4=AnaForm.AddNewImage(AnaForm,'resim4'); AnaForm.SetImage(resim4,'https://cdn0.iconfinder.com/data/icons/phosphor-thin-vol-3/256/number-circle-seven-thin-512.png'); resim4.Height=120; resim4.Width=120; resim4.Align=alBottom; resim4.Margins.Left=400; //resim5 resim5=AnaForm.AddNewImage(AnaForm,'resim5'); AnaForm.SetImage(resim5,'https://cdn0.iconfinder.com/data/icons/phosphor-thin-vol-3/256/number-circle-nine-thin-512.png'); resim5.Height=80; resim5.Width=80; resim5.Align=alTop; resim5.Margins.Right=200; //resim6 resim6=AnaForm.AddNewImage(AnaForm,'resim6'); AnaForm.SetImage(resim6,'https://cdn0.iconfinder.com/data/icons/phosphor-thin-vol-3/256/number-circle-six-thin-512.png'); resim6.Height=80; resim6.Width=80; resim6.Align=alTop; resim6.Margins.Left=400; //bomba1 bomba1=AnaForm.AddNewImage(AnaForm,'bomba1'); AnaForm.SetImage(bomba1,'https://cdn2.iconfinder.com/data/icons/nasty/60/apocolypse_nuclear_explosion_atomic_bomb-256.png'); bomba1.Height=60; bomba1.Width=60; bomba1.Align=alBottom; bomba1.Margins.Left=200; //time1 time1=AnaForm.AddNewImage(AnaForm,'time1'); AnaForm.SetImage(time1,'https://cdn4.iconfinder.com/data/icons/basic-ui-2-line/32/clock-time-ticker-times-hour-256.png'); time1.Height=45; time1.Width=45; time1.Align=alLeft; time1.Margins.Left=10; // Başlık Label'ı GirisLabeli = AnaForm.AddNewLabel(AnaForm, 'GirisLabeli', 'TimeTap'); GirisLabeli.StyledSettings = ssFamily; GirisLabeli.TextSettings.Font.Size = 24; GirisLabeli.Align = alTop; GirisLabeli.Height = 50; GirisLabeli.Width = 200; GirisLabeli.Margins.Left=300; GirisLabeli.Position.X = (AnaForm.clWidth / 2) - (GirisLabeli.Width / 2); GirisLabeli.Position.Y = 50; // Kullanıcı Adı Bölümü KullaniciAdiEdt = AnaForm.AddNewEdit(AnaForm,'KullaniciAdiEdt', 'Kullanici Adinizi Giriniz'); KullaniciAdiEdt.Align = alNone; KullaniciAdiEdt.Margins.Top=30; KullaniciAdiEdt.Width = 200; KullaniciAdiEdt.Height = 30; KullaniciAdiEdt.Position.X = (AnaForm.clWidth / 2) - (KullaniciAdiEdt.Width / 2) + 2; KullaniciAdiEdt.Position.Y = (AnaForm.clHeight / 2) - (KullaniciAdiEdt.Height / 2) - 75; KullaniciAdiEdt.TextPrompt = 'Kullanıcı Adınızı Girin'; KullaniciAdiEdt.MaxLength=17; //Belirli miktarda kullanıcı adı girebilir. // Başlat Butonu OyunGirisButonu = AnaForm.AddNewProButton(AnaForm, 'OyunGirisButonu', 'Başlat'); OyunGirisButonu.clProSettings.BackgroundColor=clAlphaColor.clHexToColor('#e0d1d1'); OyunGirisButonu.Margins.Top= 50; OyunGirisButonu.Align = alNone; OyunGirisButonu.Width = 100; OyunGirisButonu.Height= 50; OyunGirisButonu.Position.X = (AnaForm.clWidth / 2) - (OyunGirisButonu.Width / 2); OyunGirisButonu.Position.Y = (AnaForm.clHeight / 2) - (OyunGirisButonu.Height / 2); OyunGirisButonu.SetclProSettings(OyunGirisButonu.clProSettings); AnaForm.AddNewEvent(OyunGirisButonu, tbeOnClick, 'OyunGirisButonuClick'); // SkorTablosu SkorTablosu = AnaForm.AddNewProButton(AnaForm, 'SkorTablosu', ''); clComponent.SetupComponent(SkorTablosu,'{"RoundHeight": 2, "RoundWidth": 2, "BorderColor": "#000000"}'); AnaForm.SetImage(SkorTablosu, 'https://cdn3.iconfinder.com/data/icons/customer-experience-1/32/Score-256.png'); SkorTablosu.clProSettings.BackgroundColor=clAlphaColor.clHexToColor('#b4f500'); SkorTablosu.Margins.Left= 480; SkorTablosu.Margins.bottom=500; SkorTablosu.Align = alNone; SkorTablosu.Width = 70; SkorTablosu.Height= 40; SkorTablosu.SetclProSettings(SkorTablosu.clProSettings); AnaForm.AddNewEvent(SkorTablosu, tbeOnClick, 'SkorTablosuClick'); //Admin Girişi adminGirisi = AnaForm.AddNewProButton(AnaForm, 'adminGirisi', ''); clComponent.SetupComponent(adminGirisi,'{"RoundHeight": 2, "RoundWidth": 2, "BorderColor": "#000000"}'); AnaForm.SetImage(adminGirisi, 'https://cdn4.iconfinder.com/data/icons/essential-app-2/16/user-avatar-human-admin-login-256.png'); adminGirisi.clProSettings.BackgroundColor=clAlphaColor.clHexToColor('#00b8f5'); adminGirisi.Margins.Right= 630; adminGirisi.Margins.bottom=500; adminGirisi.Align = alNone; adminGirisi.Width = 70; adminGirisi.Height= 40; adminGirisi.SetclProSettings(adminGirisi.clProSettings); AnaForm.AddNewEvent(adminGirisi, tbeOnClick, 'adminGirisiClick'); TclButton(anaForm.clFindComponent('BtnFormMenu')).Visible = False; //Clomosy Form Menu kapatma olayı. TclButton(anaForm.clFindComponent('BtnGoBack')).Visible = False; //Clomosy Geri tuşunu kapatma olayı. AnaForm.SetFormColor('#ad6ec4','#6d6bbd',clGHorizontal); //AnaForm'un arkaplanını renklendirme. AnaForm.Run; // AnaForm'u çalıştırma. } Oyun Unit Kodları: Var AnaForm:TclForm; //Buton kısmı btn1 : TClProButton; Zaman : TCLTimer; sayac:Integer; //Random Renk verme kısmı RndmTimer: TClTimer; colorArray : array of String; //Oyun Süresi kısmı oyunzaman:TCLTimer; sayac1:Integer; lblTimer: TCLLabel; //Random oyun süresi arttırma azaltma için ekranda çıkan görseller surearttirma: TCLImage; sureazaltma: TCLImage; SkorVeritabani: TClSqlQuery; KullaniciAdi:String; void SetupSqlConnection { Clomosy.DBSQLServerConnect('SQL Server', '192.168.1.149', 'sa', '1', 'Oyun', 1433); } //Buton haricinde ekranın herhangi bir yerine basınca oyundan çıkmak için. void onFormMouseDown { ShowMessage('Yandınız.Oyuna tekrardan başlayınız.'); AnaForm.clHide; oyunzaman.Enabled=False; } //Başlangıç ekranından sonra olacak olay için void OyunBaslangic; { btn1.Visible=True; } //Random olarak arkaplan rengini değiştirmek için. void randomColor; var randmDeger: Integer; { colorArray = ['#26cf3a','#ff780a','#9a7de8','#813b3b','#a664c4','#6492c4','#81c464']; randmDeger = clMath.GenerateRandom(0,6); AnaForm.SetFormColor(colorArray[randmDeger],'',clGNone); } //Random olarakm btn1'in yerini değiştirmek için kısayol. void randomPosition; { if((sayac >= 32) && (sayac <= 55)) { btn1.Position.X = Abs((Random() * AnaForm.clWidth) - btn1.Width); btn1.Position.Y = Abs((Random() * AnaForm.clHeight) - btn1.Height); } } //Belirli zamanda ekranın herhangi bir yerinde çıkan görsele basınca ek süre eklemek için. void eksure //Ekranın ortasındaki sayı 3 veya büyük olunca çıkması için yapıldı. { if(IntToStr(btn1.Text) >= 3) { surearttirma.visible=False; sayac1 = sayac1+5; } } //Belirli zamanda ekranın herhangi bir yerinde çıkan görsele basınca süre azaltmak için. void sureazalt //Ekranın ortasındaki sayı 3 veya büyük olunca çıkması için yapıldı. { if(IntToStr(btn1.Text) >= 3) { sureazaltma.visible=False; sayac1 = sayac1-2; } } //btn1 içerisinde yazan sayıya göre işlemler döndüren kısım. randomColor,randomPosition,süre arttırma ve azaltma gibi işlemler yapar. void zamanlayici; { //Bu fonksiyon RndmTimer'ın rastgale çalışmasını engellemiş oluyor. if (sayac >= 32) { RndmTimer.Enabled = True; } btn1.Text = IntToStr(sayac); sayac = sayac + 1; //sayacı 1 1 arttırır. oyunzaman.Enabled=True; //oyun zamanı etkinleştirir btn1.Text = IntToStr(sayac); //btn1 içerisindeki sayı if(sayac == 3) //sureazaltma { sureazaltma.Position.X = Abs((Random() * AnaForm.clWidth) - sureazaltma.Width); sureazaltma.Position.Y = Abs((Random() * AnaForm.clHeight) - sureazaltma.Height); sureazaltma.visible=True; } if(sayac == 5) { AnaForm.SetFormColor('#23c7c5','',clGNone); sayac1 = sayac1 + 3; btn1.Position.X = Abs((Random() * AnaForm.clWidth) - btn1.Width); btn1.Position.Y = Abs((Random() * AnaForm.clHeight) - btn1.Height); surearttirma.Position.X = Abs((Random() * AnaForm.clWidth) - surearttirma.Width); surearttirma.Position.Y = Abs((Random() * AnaForm.clHeight) - surearttirma.Height); surearttirma.visible=True; } if(sayac==9) //sureazaltma { sureazaltma.Position.X = Abs((Random() * AnaForm.clWidth) - sureazaltma.Width); sureazaltma.Position.Y = Abs((Random() * AnaForm.clHeight) - sureazaltma.Height); sureazaltma.visible=True; } if(sayac == 13) { AnaForm.SetFormColor('#e01f1f','',clGNone); sayac1 = sayac1 + 5; btn1.Position.X = Abs((Random() * AnaForm.clWidth) - btn1.Width); btn1.Position.Y = Abs((Random() * AnaForm.clHeight) - btn1.Height); surearttirma.Position.X = Abs((Random() * AnaForm.clWidth) - surearttirma.Width); surearttirma.Position.Y = Abs((Random() * AnaForm.clHeight) - surearttirma.Height); surearttirma.visible=True; } if(sayac==17) //sureazaltma { sureazaltma.Position.X = Abs((Random() * AnaForm.clWidth) - sureazaltma.Width); sureazaltma.Position.Y = Abs((Random() * AnaForm.clHeight) - sureazaltma.Height); sureazaltma.visible=True; } if(sayac == 25) { AnaForm.SetFormColor('#cfeb00','#db7edd',clGHorizontal); sayac1 = sayac1 + 7; btn1.Position.X = Abs((Random() * AnaForm.clWidth) - btn1.Width); btn1.Position.Y = Abs((Random() * AnaForm.clHeight) - btn1.Height); surearttirma.Position.X = Abs((Random() * AnaForm.clWidth) - surearttirma.Width); surearttirma.Position.Y = Abs((Random() * AnaForm.clHeight) - surearttirma.Height); surearttirma.visible=True; } if(sayac==29) //sureazaltma { sureazaltma.Position.X = Abs((Random() * AnaForm.clWidth) - sureazaltma.Width); sureazaltma.Position.Y = Abs((Random() * AnaForm.clHeight) - sureazaltma.Height); sureazaltma.visible=True; } if((sayac >= 32) && (sayac <= 55)) { RndmTimer.Enabled = True; randomPosition(); } if (sayac >= 56) { AnaForm.SetFormColor('#ffae00','',clGNone); RndmTimer.Enabled = False; } btn1.Text = IntToStr(sayac); } //Oyun süresi için oluşturulmuş kısım void sure; { if(sayac1 == 0) { oyunzaman.Enabled = False; lblTimer.caption = IntToStr(sayac1); ShowMessage('Süreniz Doldu!'); ShowMessage('Puanınız: ' + IntToStr(sayac)); // Skoru veritabanına kaydet SkorVeritabani = TClSqlQuery.Create(nil); try SkorVeritabani.Connection = Clomosy.DBSQLServerConnection; SkorVeritabani.SQL.Text = 'INSERT INTO Skorlar (Skor,KullaniciId) VALUES ('+ IntToStr(sayac) + ', ' + QuotedStr(Clomosy.GlobalVariableString) +')'; SkorVeritabani.ExecSQL; finally SkorVeritabani.Free; } } else { lblTimer.caption = IntToStr(sayac1); Dec(sayac1); } } //Ekranda bulunan her şeyin özellik kısmı eklemek için. { sayac=0; sayac1=5; AnaForm = TclForm.Create(Self); SetupSqlConnection; TclButton(anaForm.clFindComponent('BtnFormMenu')).Visible = False; //Clomosy'nin kendi uygulaması menü özelliği kapatıldı. TclButton(anaForm.clFindComponent('BtnGoBack')).Visible = False; //Clomosy'nin kendi uygulaması geri özelliği kapatıldı. //Random color kısmı RndmTimer = AnaForm.AddNewTimer(AnaForm,'RndmTimer',100); //sürekli olacağı için timer kullanıldı. RndmTimer.Enabled = False; AnaForm.AddNewEvent(RndmTimer,tbeOnTimer,'randomColor'); //oyunzaman süresi oyunzaman=AnaForm.AddNewTimer(AnaForm,'oyunzaman',1000); oyunzaman.Enabled=False; AnaForm.AddNewEvent(oyunzaman,tbeOnTimer,'sure'); lblTimer=AnaForm.AddNewLabel(AnaForm,'lblTimer',''); lblTimer.StyledSettings = ssFamily; lblTimer.TextSettings.Font.Size = 35; lblTimer.Align = alTop; lblTimer.Height=50; lblTimer.Width=50; lblTimer.Margins.Left = 170; //oyunzaman süresi AnaForm.SetFormColor('#52504d','',clGNone); btn1 = AnaForm.AddNewProButton(AnaForm,'btn1','Başla'); surearttirma = AnaForm.AddNewImage(AnaForm,'surearttirma'); sureazaltma = AnaForm.AddNewImage(AnaForm,'sureazaltma'); btn1.Align = alNone; btn1.Width = 100; btn1.Height = 100; btn1.Position.X = (AnaForm.clWidth / 2) - (btn1.Width / 2); //konum1. btn1.Position.Y = (AnaForm.clHeight / 2) - (btn1.Width / 2); // konum2. btn1.visible=True; AnaForm.SetImage(surearttirma,'https://cdn2.iconfinder.com/data/icons/chess-58/377/Time-256.png'); surearttirma.Align = alNone; surearttirma.Height = 35; surearttirma.Width = 35; surearttirma.Position.X = (AnaForm.clWidth / 2) - (surearttirma.Width / 2); //surearttirma konum1. surearttirma.Position.Y = (AnaForm.clHeight / 2) - (surearttirma.Width / 2); //surearttirma konum2. surearttirma.visible=False; //Ekranın farklı yerlerinde ek süre için çıkan resim görünürlüğü. //SÜRE AZALTMA AnaForm.SetImage(sureazaltma,'https://cdn2.iconfinder.com/data/icons/nasty/60/apocolypse_nuclear_explosion_atomic_bomb-256.png'); sureazaltma.Align = alNone; sureazaltma.Height = 40; sureazaltma.Width = 40; sureazaltma.Position.X = (AnaForm.clWidth / 2) - (sureazaltma.Width / 2); //sureazaltma konum1. sureazaltma.Position.Y = (AnaForm.clHeight / 2) - (sureazaltma.Width / 2); //sureazaltma konum2. sureazaltma.visible=False; //Ekranın farklı yerlerinde ek süre için çıkan resim görünürlüğü. btn1.clProSettings.BorderColor = clAlphaColor.clHexToColor('#a0a3b1'); btn1.clProSettings.FontColor = clAlphaColor.clHexToColor('#050505'); btn1.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#ffffff'); btn1.clProSettings.IsTransparent = False; btn1.clProSettings.FontSize = 12; btn1.clProSettings.FontVertAlign = palcenter;//palLeading , palCenter , palTrailing btn1.clProSettings.FontHorzAlign = palCenter; btn1.clProSettings.IsFill = True; btn1.clProSettings.IsRound = True; btn1.clProSettings.RoundHeight = 50; btn1.clProSettings.RoundWidth = 50; btn1.clProSettings.BorderWidth = 3; btn1.SetclProSettings(btn1.clProSettings); AnaForm.AddNewEvent(btn1,tbeOnClick,'zamanlayici'); //btn1'e tıklanınca süre etkinleşmesi için tıklanma olayı. AnaForm.AddNewEvent(surearttirma, tbeOnClick, 'eksure'); //ek süre için tıklanma olayı. AnaForm.AddNewEvent(sureazaltma, tbeOnClick, 'sureazalt'); //süre azaltmak için tıklanma olayı. AnaForm.AddNewEvent(AnaForm, tbeOnMouseDown, 'onFormMouseDown'); AnaForm.Run; } Biz şimdi Oyun Unit kodlarımda void sure kısmında KullaniciId'yi QuotedStr(Clomosy.GlobalVariableString) buna bağladık. QuotedStr(Clomosy.GlobalVariableString) buda AnaKod kısmında KullaniciAdiEdt.Text kısmına bağlı değil mi? KullaniciAdiEdt.Text' te bir üstünde bulunan KullaniciAdi = KullaniciAdiEdt.Text; kısmıyla eşleştirildiğini düşünüyorum ben. Ama nedense işte string değeri almıyorda sadece int değerini mssql veri tabanına alıyor.
|
|
Developer
Forum Yöneticisi Kayıt Tarihi: 14 Haziran 2023 Durum: Aktif Değil Puanlar: 354 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Developer
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
|
Merhaba Emre
'INSERT INTO Kullaniicilar (OyuncuAdi) VALUES (' + QuotedStr(KullaniciAdiEdt.Text) + '); ' Bunda hata var INSERT INTO Kullaniicilar (id,OyuncuAdi) VALUES (2,' + QuotedStr(KullaniciAdiEdt.Text) + '); Böyle dener misin
|
|
Yanıt Yaz | Sayfa 12> |
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 |