Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - Başka Unitten diğer unite veri çekme
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

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 Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
Sudesigirci Açılır Kutu İzle
Deneyimli Üye
Deneyimli Üye


Kayıt Tarihi: 24 Haziran 2025
Konum: KONYA
Durum: Aktif Değil
Puanlar: 53
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Sudesigirci Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Başka Unitten diğer unite veri çekme
    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;
}
Yukarı Dön
cerenn Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 18 Haziran 2025
Durum: Aktif Değil
Puanlar: 26
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı cerenn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 09 Temmuz 2025 Saat 13:23
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.
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,047 Saniyede Yüklendi.