Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - ArrayString ile dinamik kod hatası.
  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.

ArrayString ile dinamik kod hatası.

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
OlgunAgac Açılır Kutu İzle
Kıdemli Üye
Kıdemli Üye
Simge

Kayıt Tarihi: 25 Mayıs 2024
Konum: Konya
Durum: Aktif Değil
Puanlar: 125
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı OlgunAgac Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: ArrayString ile dinamik kod hatası.
    Gönderim Zamanı: 26 Temmuz 2024 Saat 10:22
Merhaba;

ArrayString kullanarak tuttuğum 4 adet renk verisini sırayla oluşturduğum paneller için kullanmam gerek fakat aynı hatayı alıp duruyorum.

"$"4" is not a valid integer value

Hata nerede anlayamadım.
Kod;

var
MainForm:TclForm;
noteBtn:TclProButton;
notePanels:TclProPanel;
vScrollBoxL,vScrollBoxR:TclVertScrollBox;
btnBtn:TclProButton;
noteEdit:TclProEdit;
noteLabel:TclProLabel;
sqlQuery:TclSqlQuery;
colorArray:TclArrayString;
noteIDstr:String;
queue,colorQueue,textLength:Integer;

function openEditor(noteID:Integer)
{
  Clomosy.GlobalVariableInteger = noteID;
  MainForm.clShow;
  Clomosy.RunUnit('editorPage');
}

void createNewNote
var
latestIDstr:String;
latestID:Integer;
{
  sqlQuery.SQL.Text = 'SELECT * FROM Notebook';
  sqlQuery.Open;
  
  if(not sqlQuery.Found)
  {
    ShowMessage('Bilinmeyen hata!');
  }
  else
  {
    sqlQuery.Last;
    latestIDstr = sqlQuery.FieldByName('NoteID').AsString;
    latestID = StrToInt(latestIDstr);
    
    sqlQuery.SQL.Text = 'INSERT INTO Notebook(UserGUID, Text) VALUES(' + QuotedStr(Clomosy.AppUserGUID) + ',' + QuotedStr('') + ')';
    sqlQuery.ExecSql;
  }
  
  openEditor(latestID);
}

void editNoteFunc
var senderPanel:TclProLabel;
{
  senderPanel = TclProLabel(MainForm.ClSender);
  openEditor(StrToInt(senderPanel.Hint));
}

{
  MainForm = TclForm.Create(self);
  MainForm.SetFormColor('#000000','#000000',clGVertical);
  
  colorArray = TclArrayString.Create;
  colorArray.Add('#44FAFD');
  colorArray.Add('#49E94C');
  colorArray.Add('#BC55EC');
  colorArray.Add('#E4F943');
  
  vScrollBoxL = MainForm.AddNewVertScrollBox(MainForm,'vScrollBoxL');
  vScrollBoxL.Margins.Left = 15;
  vScrollBoxL.Margins.Right = 15;
  vScrollBoxL.Margins.Top = 15;
  vScrollBoxL.Margins.Bottom = 15;
  vScrollBoxL.Width = MainForm.clWidth / 2 - 25;
  vScrollBoxL.Align = alLeft;
  
  vScrollBoxR = MainForm.AddNewVertScrollBox(MainForm,'vScrollBoxR');
  vScrollBoxR.Margins.Left = 15;
  vScrollBoxR.Margins.Right = 15;
  vScrollBoxR.Margins.Top = 15;
  vScrollBoxR.Margins.Bottom = 15;
  vScrollBoxR.Width = MainForm.clWidth / 2 - 25;
  vScrollBoxR.Align = alRight;
  
  noteBtn = MainForm.AddNewProButton(MainForm, 'noteBtn', '');
  clComponent.SetupComponent(noteBtn,'{
  "Align" : "None"
  }');
  noteBtn.clProSettings.PictureSource = 'https://i.hizliresim.com/momk4f6.png';
  noteBtn.clProSettings.PictureAutoFit = True;
  noteBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#3F3F3F');
  noteBtn.Height = 50;
  noteBtn.Width = 50;
  noteBtn.clProSettings.RoundHeight = 15;
  noteBtn.clProSettings.RoundWidth = 15;
  noteBtn.SetclProSettings(noteBtn.clProSettings);
  
  noteBtn.Position.X = (MainForm.clWidth * 0.85) - (noteBtn.Width/2);
  noteBtn.Position.Y = (MainForm.clHeight * 0.9) + (noteBtn.Height/2);
  
  MainForm.AddNewEvent(noteBtn, tbeOnClick, 'createNewNote');
  
  try
    sqlQuery = TCLSqlQuery.Create(nil);
    Clomosy.DBSQLServerConnect('SQL Server', 'clomosyserver.database.windows.net', 'dbAdmin', 'Clomosydb1234', 'ClomosyDatabase', 1433);
    sqlQuery.Connection = Clomosy.DBSQLServerConnection;
  except
    ShowMessage('Sunucuya bağlantı kurulamadı.');
  }
  
  try
    sqlQuery.SQL.Text = 'SELECT NoteID, Text FROM Notebook WHERE UserGUID = ' + QuotedStr(Clomosy.AppUserGUID);
    sqlQuery.Open;
    if (not sqlQuery.Found)
    {
      ShowMessage('Bilinmeyen bir hata ile karşılaşıldı!' + LastExceptionMessage);
    }
    else
    {
      queue = 0;
      colorQueue = 0;
      while(not sqlQuery.EOF)
      {
        noteIDstr = 'nPanel' + IntToStr(sqlQuery.FieldByName('NoteID').AsString);
        
        if((queue mod 2) == 0)
        {
          ShowMessage(colorQueue);
          notePanels = MainForm.AddNewProPanel(vScrollBoxL, noteIDstr);
          clComponent.SetupComponent(notePanels, '{
          "MarginTop" : 15,
          "BackgroundColor" : "' + QuotedStr(colorArray.GetItem(colorQueue)) + '",
          "RoundHeight" : 5,
          "RoundWidth" : 5,
          "Align" : "Top"}');
          
          textLength = Length(sqlQuery.FieldByName('Text').AsString);
          textLength = textLength / 18;
          textLength = Trunc(textLength);
          if(textLength < 18)
          {
            textLength = (textLength * 30) + 30;
          }
          else 
          {
            textLength = (textLength * 30);
          }
          
          noteLabel = MainForm.AddNewProLabel(notePanels, 'noteLabel' + noteIDstr, '');
          clComponent.SetupComponent(noteLabel,'{
          "Align" : "Client",
          "RoundHeight" : 5,
          "RoundWidth" : 5,
          "MarginTop" : 5,
          "MarginBottom" : 5,
          "MarginLeft" : 5,
          "MarginRight" : 5,
          "TextHorizontalAlign" : "Left"}');
          noteLabel.clProSettings.AutoSize = true;
          noteLabel.clProSettings.WordWrap = true;
          
          noteLabel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor(QuotedStr(colorArray.GetItem(colorQueue)));;
          
          noteLabel.clProSettings.FontSize = 18;
                    
          noteLabel.Caption = sqlQuery.FieldByName('Text').AsString;
          noteLabel.Hint = sqlQuery.FieldByName('NoteID').AsString;
          
          noteLabel.SetclProSettings(noteLabel.clProSettings);
          
          MainForm.AddNewEvent(noteLabel,tbeOnClick,'editNoteFunc');
          
          notePanels.Height = textLength;
          
          
          sqlQuery.Next;
          Inc(queue);
          if((colorQueue mod 3)==1)
          {
            colorQueue = 0;
          }
          else
          {
            Inc(colorQueue);
          }
          ShowMessage(colorQueue);
        }
        else
        {
          ShowMessage(colorQueue);
          notePanels = MainForm.AddNewProPanel(vScrollBoxR, noteIDstr);
          clComponent.SetupComponent(notePanels, '{
          "MarginTop" : 15,
          "BackgroundColor" : "' + QuotedStr(colorArray.GetItem(colorQueue)) + '",
          "RoundHeight" : 5,
          "RoundWidth" : 5,
          "Align" : "Top"}');
          
          textLength = Length(sqlQuery.FieldByName('Text').AsString);
          textLength = textLength / 18;
          textLength = Trunc(textLength);
          if(textLength < 18)
          {
            textLength = (textLength * 30) + 30;
          }
          else 
          {
            textLength = (textLength * 30);
          }
          
          noteLabel = MainForm.AddNewProLabel(notePanels, 'noteLabel' + noteIDstr, '');
          clComponent.SetupComponent(noteLabel,'{
          "Align" : "Client",
          "RoundHeight" : 5,
          "RoundWidth" : 5,
          "MarginTop" : 5,
          "MarginBottom" : 5,
          "MarginLeft" : 5,
          "MarginRight" : 5}');
          noteLabel.clProSettings.AutoSize = true;
          noteLabel.clProSettings.WordWrap = true;
          
          noteLabel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor(QuotedStr(colorArray.GetItem(colorQueue)));
          
          noteLabel.clProSettings.FontSize = 18;
          
          noteLabel.Caption = sqlQuery.FieldByName('Text').AsString;
          noteLabel.Hint = sqlQuery.FieldByName('NoteID').AsString;
          
          noteLabel.SetclProSettings(noteLabel.clProSettings);
          
          MainForm.AddNewEvent(noteLabel,tbeOnClick,'editNoteFunc');
          
          notePanels.Height = textLength;
          
          sqlQuery.Next;
          Dec(queue);
          if((colorQueue mod 3)==1)
          {
            colorQueue = 0;
          }
          else
          {
            Inc(colorQueue);
          }
          ShowMessage(colorQueue);
        }
      }
    }
  finally
  }
  
  MainForm.Run;
}
Dünden bugüne süren sonu olmayan yolculuk.
Yukarı Dön
OlgunAgac Açılır Kutu İzle
Kıdemli Üye
Kıdemli Üye
Simge

Kayıt Tarihi: 25 Mayıs 2024
Konum: Konya
Durum: Aktif Değil
Puanlar: 125
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı OlgunAgac Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 26 Temmuz 2024 Saat 10:32
Sorun Unit çağırmada galiba. Farklı bir kodda unit çağırma esnasında aynı hatayı veriyor.
Dünden bugüne süren sonu olmayan yolculuk.
Yukarı Dön
OlgunAgac Açılır Kutu İzle
Kıdemli Üye
Kıdemli Üye
Simge

Kayıt Tarihi: 25 Mayıs 2024
Konum: Konya
Durum: Aktif Değil
Puanlar: 125
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı OlgunAgac Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 26 Temmuz 2024 Saat 10:39
Unit çağırmada değil, kodda bulunan bir şey.
Dünden bugüne süren sonu olmayan yolculuk.
Yukarı Dön
BilalCndn Açılır Kutu İzle
Forum Yöneticisi
Forum Yöneticisi
Simge

Kayıt Tarihi: 09 Ekim 2023
Durum: Aktif Değil
Puanlar: 150
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (1) Teşekkürler(1)   Alıntı BilalCndn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 26 Temmuz 2024 Saat 11:50
Merhaba Olgun, 

Arrayden veriyi aldığın kısımlarda QuotedStr kullandığın için alıyorsun hatayı. Veri zaten string olduğu için tırnak eklemene gerek yok.

İyi çalışmalar dilerim.
Bilal Candan

Atiker Yazılım Veri İşlem A.Ş.
Software Developer

[email protected]
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,078 Saniyede Yüklendi.