Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - Could not convert variant of type (UnicodeString)
  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.

Could not convert variant of type (UnicodeString)

 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: Could not convert variant of type (UnicodeString)
    Gönderim Zamanı: 08 Temmuz 2025 Saat 13:12
Merhabalar main coddan Uregister unitine geçmek istediğimde Could not convert variant of type (UnicodeString) into type (Integer) hatası alıyorum bu hatayı nasıl çözeceğimi bilemedim yardımlarınız için teşekkür ederim
//Main Code
var
loginform:TclStyleForm;
loginbtn,signupbtn;TClProButton;
emailedit,passwordedit:TclProEdit;
quotelabel:TClProLabel;
UnitRegister:TclUnit;
void CreateTable;
{
  try
  {
    Clomosy.DBSQLiteConnect(Clomosy.AppFilesPath + 'miaproject.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' + 
      ')';
    Clomosy.DBSQLiteQuery.OpenOrExecute();
  }
  except
    ShowMessage('Exception class: ' + LastExceptionClassName + ' Exception Message: ' + LastExceptionMessage);
  }
}

void SignIn;
{
  try
  Clomosy.DBSQLiteQuery.SQL.Text = 
  'SELECT COUNT(*) AS number FROM Users WHERE Email = ' + QuotedStr(emailedit.Text) + 'AND Password = ' + QuotedStr(passwordedit.Text);
  Clomosy.DBSQLiteQuery.OpenOrExecute();
  if (Clomosy.DBSQLiteQuery.FieldByName('number').AsString == '1')
  {
    Clomosy.RunUnit('UHomePage');
  }
  else  
  {
    ShowMessage('Giriş başarısız.Email ya da şifre hatalı');
  }
  except
    ShowMessage('Exception class: ' + LastExceptionClassName + ' Exception Message: ' + LastExceptionMessage);
  }
}


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.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.Run;
}

//URegister kodum
var
  KayitForm: TclStyleForm;
  nameEdit, surnameEdit, emailEdit, passwordEdit: TclProEdit;
  kayitButton: TClProButton;
  titleLabel: TClProLabel;

function IsValidAndUniqueEmail(mail: String): Boolean;
var atPos, dotPos, adetInt: Integer;
{
  atPos = Pos('@', mail);
  dotPos = Pos('.', mail);

  if (atPos <= 1 || dotPos <= atPos + 1 || dotPos >= Length(mail)) {
    ShowMessage('Geçerli bir e-posta adresi giriniz.');
    Result = False;
    exit;
  }

  try
    Clomosy.DBSQLiteQuery.SQL.Text = 
      'SELECT COUNT(*) as adet FROM Users WHERE Email = ' + QuotedStr(mail);

    Clomosy.DBSQLiteQuery.Open; 

    if not Clomosy.DBSQLiteQuery.Eof then {
      adetInt = Clomosy.DBSQLiteQuery.FieldByName('adet').AsInteger;
    } else {
      adetInt = 0;
    }

    Clomosy.DBSQLiteQuery.Close;

    if (adetInt > 0) {
      ShowMessage('Bu e-posta adresi zaten kayıtlı.');
      Result = False;
    } else {
      Result = True;
    }

  except
    ShowMessage('E-posta kontrolünde hata oluştu: ' + LastExceptionMessage);
    Clomosy.DBSQLiteQuery.Close;
    Result = False;
  }
}



function CheckBlanks: Boolean;
{
  if (Trim(nameEdit.Text) == '' || Trim(surnameEdit.Text) == '' ||
      Trim(emailEdit.Text) == '' || Trim(passwordEdit.Text) == '') {
    ShowMessage('Lütfen tüm alanları doldurun.');
    Result = False;
  } else {
    Result = True;
  }
}

void ResetFields;
{
  nameEdit.Text = '';
  surnameEdit.Text = '';
  emailEdit.Text = '';
  passwordEdit.Text = '';
}

void KayitOl;
{
  if (CheckBlanks && IsValidAndUniqueEmail(emailEdit.Text)) {
    Clomosy.DBSQLiteQuery.SQL.Text = 
      'INSERT INTO Users (Email, FirstName, LastName, Password) VALUES (' +
      QuotedStr(emailEdit.Text) + ',' +
      QuotedStr(nameEdit.Text) + ',' +
      QuotedStr(surnameEdit.Text) + ',' +
      QuotedStr(passwordEdit.Text) + ')';

    try
      Clomosy.DBSQLiteQuery.OpenOrExecute;
      ShowMessage('Kayıt başarıyla tamamlandı.');
      ResetFields;
    except
      ShowMessage('Kayıt sırasında bir hata oluştu: ' + LastExceptionMessage);
  }
}

{
  KayitForm = TclStyleForm.Create(Self);
  KayitForm.SetFormBGImage('https://i.imgur.com/XYlUQhl.jpeg');

  titleLabel = KayitForm.AddNewProLabel(KayitForm, 'titleLabel', 'Kayıt Ol');
  titleLabel.Align = alTop;
  titleLabel.Height = 40;
  titleLabel.clProSettings.FontSize = 20;
  titleLabel.clProSettings.TextSettings.Font.Style = [fsBold];
  titleLabel.clProSettings.TextSettings.FontHorzAlign = palCenter;
  titleLabel.SetclProSettings(titleLabel.clProSettings);

  nameEdit = KayitForm.AddNewProEdit(KayitForm, 'nameEdit', 'Adınız');
  nameEdit.Align = alTop;
  nameEdit.Height = 40;
  nameEdit.Margins.Top = 20;

  surnameEdit = KayitForm.AddNewProEdit(KayitForm, 'surnameEdit', 'Soyadınız');
  surnameEdit.Align = alTop;
  surnameEdit.Height = 40;
  surnameEdit.Margins.Top = 10;

  emailEdit = KayitForm.AddNewProEdit(KayitForm, 'emailEdit', 'E-posta adresi');
  emailEdit.Align = alTop;
  emailEdit.Height = 40;
  emailEdit.Margins.Top = 10;

  passwordEdit = KayitForm.AddNewProEdit(KayitForm, 'passwordEdit', 'Şifre');
  passwordEdit.Align = alTop;
  passwordEdit.Height = 40;
  passwordEdit.clProSettings.Password = True;
  passwordEdit.SetclProSettings(passwordEdit.clProSettings);
  passwordEdit.Margins.Top = 10;

  kayitButton = KayitForm.AddNewProButton(KayitForm, 'kayitButton', 'Kayıt Ol');
  kayitButton.Align = alTop;
  kayitButton.Height = 45;
  kayitButton.Margins.Top = 20;
  kayitButton.clProSettings.TextSettings.Font.Style = [fsBold];
  kayitButton.clProSettings.TextSettings.FontHorzAlign = palCenter;
  kayitButton.SetclProSettings(kayitButton.clProSettings);
  KayitForm.AddNewEvent(kayitButton, tbeOnClick, 'KayitOl');

  KayitForm.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ı: 08 Temmuz 2025 Saat 13:42
Merhaba Sude,
void gotoRegister; { 
UnitRegister.UnitName='URegister'; 
UnitRegister.CallerForm=loginform;  
UnitRegister.Run; }

callerform  property'si string değil, form nesnesi bekliyor. Sen'loginform' (string) veriyorsun, ama loginform yani form nesnesi vermen gerekiyor. 
İyi çalışmalar dilerim

Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif Değil
Puanlar: 108
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 08 Temmuz 2025 Saat 14:10
Merhaba Sude,
Diğer hatalar ise; 
kayitButton.clProSettings.TextSettings.FontHorzAlign = palCenter; olarak değil 
kayitButton.clProSettings.FontHorzAlign = palCenter;

bir diğeri ise;
 passwordEdit.clProSettings.Password = True; kullanımı yanlış 
 passwordEdit.Password = True; doğrusu bu şekil de 

İ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,031 Saniyede Yüklendi.