<?xml version="1.0" encoding="iso-8859-9" ?>
<?xml-stylesheet type="text/xsl" href="RSS_xslt_style.asp" version="1.0" ?>
<rss version="2.0" xmlns:WebWizForums="https://syndication.webwiz.net/rss_namespace/">
 <channel>
  <title>Clomosy | Forum : Pointer Hatası</title>
  <link>https://forum.clomosy.com.tr/</link>
  <description><![CDATA[XML içerik linki; Clomosy | Forum : Clomosy ile de&#287;i&#351;ken kullan&#305;m&#305; : Pointer Hatası]]></description>
  <copyright>Copyright (c) 2006-2013 Web Wiz Forums - All Rights Reserved.</copyright>
  <pubDate>Wed, 15 Apr 2026 03:14:38 +0000</pubDate>
  <lastBuildDate>Thu, 19 Feb 2026 09:36:46 +0000</lastBuildDate>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Web Wiz Forums 12.07</generator>
  <ttl>360</ttl>
  <WebWizForums:feedURL>https://forum.clomosy.com.tr/RSS_post_feed.asp?TID=1362</WebWizForums:feedURL>
  <image>
   <title><![CDATA[Clomosy | Forum]]></title>
   <url>https://forum.clomosy.com.tr/forum_images/logo.png</url>
   <link>https://forum.clomosy.com.tr/</link>
  </image>
  <item>
   <title><![CDATA[Pointer Hatası : Merhabalarhttps://static.cloud...]]></title>
   <link>https://forum.clomosy.com.tr/forum_posts.asp?TID=1362&amp;PID=3080#3080</link>
   <description>
    <![CDATA[<strong>Yazar:</strong> <a href="https://forum.clomosy.com.tr/member_profile.asp?PF=372">Nevra Nur</a><br /><strong>Konu:</strong> 1362<br /><strong>Gönderim Zamanı:</strong> 19&nbsp;Şubat&nbsp;2026 Saat 09:36<br /><br />Merhabalar&nbsp;<a href="https://static.cloudflareinsights.com/beac&#111;n.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" target="_blank" rel="nofollow">https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015"</a> integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{&quot;version&quot;:&quot;2024.11.0&quot;,&quot;token&quot;:&quot;439455f3e46c40b98dbd42a2f1a954d8&quot;,&quot;r&quot;:1,&quot;server_timing&quot;:{&quot;name&quot;:{&quot;cfCacheStatus&quot;:true,&quot;cfEdge&quot;:true,&quot;cfExtPri&quot;:true,&quot;cfL4&quot;:true,&quot;cfOrigin&quot;:true,&quot;cfSpeedBrain&quot;:true},&quot;location_startswith&quot;:null}}" crossorigin="anonymous"><div><p -path-to-node="6">Yaşadığım "Invalid Pointer" hatasının nedenini ve çözümünü tespit ettim. Sebebi, formlar arası geçiş yaparken veya listeyi yenilerken Form.Free&nbsp;kullanarak formu tamamen bellekten temizlemeye çalışmamdan kaynaklanıyormuş. Özellikle bir butonun onClick olayı içindeyken o butonun ait olduğu formu veya ana formu Free yaptığımızda, uygulama hala o form üzerinde bir işlem yürütmeye çalıştığı için geçersiz bir pointera erişmeye çalışıyor ve çöküyordu.Formun tamamını yok etmek yerine, sadece dinamik içeriğin bulunduğu bileşenleri&nbsp;temizleyip yeniden oluşturmak sorunu tamamen çözdü.</p></div>]]>
   </description>
   <pubDate>Thu, 19 Feb 2026 09:36:46 +0000</pubDate>
   <guid isPermaLink="true">https://forum.clomosy.com.tr/forum_posts.asp?TID=1362&amp;PID=3080#3080</guid>
  </item> 
  <item>
   <title><![CDATA[Pointer Hatası : Merhaba Nevra,Hata devam ediyor...]]></title>
   <link>https://forum.clomosy.com.tr/forum_posts.asp?TID=1362&amp;PID=3075#3075</link>
   <description>
    <![CDATA[<strong>Yazar:</strong> <a href="https://forum.clomosy.com.tr/member_profile.asp?PF=257">Emr.Erkmn</a><br /><strong>Konu:</strong> 1362<br /><strong>Gönderim Zamanı:</strong> 19&nbsp;Şubat&nbsp;2026 Saat 07:54<br /><br />Merhaba Nevra,<br><br>Hata devam ediyor mu?<a href="https://static.cloudflareinsights.com/beac&#111;n.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" target="_blank" rel="nofollow">https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015"</a> integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{&quot;version&quot;:&quot;2024.11.0&quot;,&quot;token&quot;:&quot;439455f3e46c40b98dbd42a2f1a954d8&quot;,&quot;r&quot;:1,&quot;server_timing&quot;:{&quot;name&quot;:{&quot;cfCacheStatus&quot;:true,&quot;cfEdge&quot;:true,&quot;cfExtPri&quot;:true,&quot;cfL4&quot;:true,&quot;cfOrigin&quot;:true,&quot;cfSpeedBrain&quot;:true},&quot;location_startswith&quot;:null}}" crossorigin="anonymous">]]>
   </description>
   <pubDate>Thu, 19 Feb 2026 07:54:54 +0000</pubDate>
   <guid isPermaLink="true">https://forum.clomosy.com.tr/forum_posts.asp?TID=1362&amp;PID=3075#3075</guid>
  </item> 
  <item>
   <title><![CDATA[Pointer Hatası : Merhaba,Gelen hata masa&#252;st&#252; .exe...]]></title>
   <link>https://forum.clomosy.com.tr/forum_posts.asp?TID=1362&amp;PID=3069#3069</link>
   <description>
    <![CDATA[<strong>Yazar:</strong> <a href="https://forum.clomosy.com.tr/member_profile.asp?PF=257">Emr.Erkmn</a><br /><strong>Konu:</strong> 1362<br /><strong>Gönderim Zamanı:</strong> 18&nbsp;Şubat&nbsp;2026 Saat 18:14<br /><br />Merhaba,&nbsp;<br>Gelen hata masaüstü .exe de çalışırken mi geliyor&nbsp;<a href="https://static.cloudflareinsights.com/beac&#111;n.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" target="_blank" rel="nofollow">https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015"</a> integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{&quot;version&quot;:&quot;2024.11.0&quot;,&quot;token&quot;:&quot;439455f3e46c40b98dbd42a2f1a954d8&quot;,&quot;r&quot;:1,&quot;server_timing&quot;:{&quot;name&quot;:{&quot;cfCacheStatus&quot;:true,&quot;cfEdge&quot;:true,&quot;cfExtPri&quot;:true,&quot;cfL4&quot;:true,&quot;cfOrigin&quot;:true,&quot;cfSpeedBrain&quot;:true},&quot;location_startswith&quot;:null}}" crossorigin="anonymous">]]>
   </description>
   <pubDate>Wed, 18 Feb 2026 18:14:42 +0000</pubDate>
   <guid isPermaLink="true">https://forum.clomosy.com.tr/forum_posts.asp?TID=1362&amp;PID=3069#3069</guid>
  </item> 
  <item>
   <title><![CDATA[Pointer Hatası : var MainForm, AddForm, DetailForm,...]]></title>
   <link>https://forum.clomosy.com.tr/forum_posts.asp?TID=1362&amp;PID=3063#3063</link>
   <description>
    <![CDATA[<strong>Yazar:</strong> <a href="https://forum.clomosy.com.tr/member_profile.asp?PF=372">Nevra Nur</a><br /><strong>Konu:</strong> 1362<br /><strong>Gönderim Zamanı:</strong> 18&nbsp;Şubat&nbsp;2026 Saat 15:44<br /><br /><div>var</div><div>&nbsp; MainForm, AddForm, DetailForm, AddStepForm, ProgressForm: TclForm;</div><div>&nbsp; HeaderPnl, FooterPnl, TopRowPnl: TclProPanel;</div><div>&nbsp; AddTaskBtn, SaveBtn, SaveStepBtn, BtnAddStep, BtnAddDynamicStep, BtnSaveProgress: TclProButton;</div><div>&nbsp; TaskScrollBox, StepScrollBox, DynamicStepScrollBox: TclVertScrollBox;</div><div>&nbsp; d_LblTitle, d_LblDesc, d_LblDate, d_LblStatus, d_LblInfo: TclProLabel;</div><div>&nbsp; d_SliderContainer, d_SliderBar, d_SliderKnob, d_HeaderContainer, d_InfoContainer, d_StepsContainer: TclProPanel;</div><div>&nbsp; d_YuzdeLbl: TclProLabel;</div><div>&nbsp; d_Surukleniyor: Boolean;</div><div>&nbsp; d_HedefX: Integer;</div><div>&nbsp; TaskNameEdt, TaskDescEdt, TaskControlEdt, TaskWorkerEdt,TmpNameEdt: TclEdit;</div><div>&nbsp; StepNameEdt, ProgressEdit: TclEdit;&nbsp;</div><div>&nbsp; TaskDateEdt, StepDateEdt: TclDateEdit;</div><div>&nbsp; TitleLbl, SubTitleLbl, LblStepsHeader: TclProLabel;</div><div>&nbsp; TitleIcon: TclProImage;</div><div>&nbsp; selID, selStepID, queryStr: string;</div><div>&nbsp; isEditMode, isStepEditMode: Boolean;&nbsp;</div><div>&nbsp; AddedStepCount: Integer;</div><div><br></div><div>void RefreshTaskList; forward;</div><div>void RefreshStepList; forward;</div><div>void OpenProgressForm; forward;</div><div>void SaveManualProgress; forward;</div><div>void AddNewStepClick; forward;</div><div>void OpenAddStepForm; forward;</div><div>void SaveStepToDB; forward;</div><div>void DeleteStep; forward;</div><div>void EditStepClick; forward;</div><div>void OpenDetailForm; forward;</div><div>void OpenStepProgressClick; forward;</div><div>void CalculateTaskAverage; forward;&nbsp;</div><div><br></div><div>void SetupDatabase;</div><div>{</div><div>&nbsp; try</div><div>&nbsp; &nbsp; Clomosy.DBSQLiteConnect(Clomosy.AppFilesPath + 'Database.db3', '');</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; Clomosy.DBSQLiteQuery.SQL.Text =&nbsp;</div><div>&nbsp; &nbsp; &nbsp; 'CREATE TABLE IF NOT EXISTS MyTasks (' +</div><div>&nbsp; &nbsp; &nbsp; 'id INTEGER PRIMARY KEY AUTOINCREMENT,' +</div><div>&nbsp; &nbsp; &nbsp; 'task_name TEXT, task_desc TEXT, task_worker TEXT, ' +</div><div>&nbsp; &nbsp; &nbsp; 'task_control TEXT, task_date TEXT, task_progress INTEGER DEFAULT 0)';</div><div>&nbsp; &nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; Clomosy.DBSQLiteQuery.SQL.Text =&nbsp;</div><div>&nbsp; &nbsp; &nbsp; 'CREATE TABLE IF NOT EXISTS TaskSteps (' +</div><div>&nbsp; &nbsp; &nbsp; 'step_id INTEGER PRIMARY KEY AUTOINCREMENT,' +</div><div>&nbsp; &nbsp; &nbsp; 'task_id INTEGER,' +&nbsp;</div><div>&nbsp; &nbsp; &nbsp; 'step_title TEXT, step_date TEXT, step_is_done INTEGER DEFAULT 0)';</div><div>&nbsp; &nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div><br></div><div>&nbsp; except</div><div>&nbsp; &nbsp; ShowMessage('Veritabanı Hatası: ' + LastExceptionMessage);</div><div>&nbsp; }</div><div>}</div><div><br></div><div>// --- ort hesaplama ---</div><div>void CalculateTaskAverage;</div><div>var</div><div>&nbsp; AvgVal: Float;</div><div>&nbsp; AvgInt: Integer;</div><div>{</div><div><br></div><div>&nbsp; Clomosy.DBSQLiteQuery.SQL.Text = 'SELECT AVG(step_is_done) as avg_val FROM TaskSteps WHERE task_id = ' + selID;</div><div>&nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div>&nbsp;&nbsp;</div><div>&nbsp; if (Clomosy.DBSQLiteQuery.FieldByName('avg_val').AsString == '')&nbsp;</div><div>&nbsp; {</div><div>&nbsp; &nbsp; AvgInt = 0;</div><div>&nbsp; }</div><div>&nbsp; else</div><div>&nbsp; {</div><div>&nbsp; &nbsp; AvgVal = Clomosy.DBSQLiteQuery.FieldByName('avg_val').AsFloat;</div><div>&nbsp; &nbsp; AvgInt = Round(AvgVal);&nbsp;</div><div>&nbsp; }</div><div>&nbsp;</div><div>&nbsp; Clomosy.DBSQLiteQuery.SQL.Text = 'UPDATE MyTasks SET task_progress = ' + IntToStr(AvgInt) + ' WHERE id = ' + selID;</div><div>&nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div><br></div><div>&nbsp; if (d_YuzdeLbl &lt;&gt; nil)</div><div>&nbsp; &nbsp; d_YuzdeLbl.Text = '%' + IntToStr(AvgInt);</div><div>}</div><div><br></div><div>void AddDynamicStepRow;//yeni görev ekle sayfasındaki adımlerı eklediğim kısım</div><div>var</div><div>&nbsp; NewStepPnl: TclProPanel;</div><div>&nbsp; NewNameEdt, NewDateEdt: TclEdit;</div><div>{</div><div>&nbsp; AddedStepCount = AddedStepCount + 1;</div><div><br></div><div>&nbsp; NewStepPnl = AddForm.AddNewProPanel(DynamicStepScrollBox, 'DynStepPnl_' + IntToStr(AddedStepCount));</div><div>&nbsp; NewStepPnl.Align = alTop;</div><div>&nbsp; NewStepPnl.Height = 110;&nbsp;</div><div>&nbsp; NewStepPnl.Margins.Top = 10;</div><div>&nbsp; NewStepPnl.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E5E7EB');</div><div>&nbsp; NewStepPnl.clProSettings.BorderWidth = 1;</div><div>&nbsp; NewStepPnl.clProSettings.RoundHeight = 10;</div><div>&nbsp; NewStepPnl.clProSettings.BackgroundColor = clAlphaColor.clWhite;</div><div>&nbsp; NewStepPnl.SetclProSettings(NewStepPnl.clProSettings);</div><div><br></div><div>&nbsp; NewNameEdt = AddForm.AddNewProEdit(NewStepPnl, 'DynStepName_' + IntToStr(AddedStepCount), 'Adım ' + IntToStr(AddedStepCount) + ' Başlığı');</div><div>&nbsp; NewNameEdt.Align = alTop;</div><div>&nbsp; NewNameEdt.Height = 45;</div><div>&nbsp; NewNameEdt.Margins.Left = 5;</div><div>&nbsp; NewNameEdt.Margins.Right =5;</div><div>&nbsp; NewNameEdt.Margins.Top = 5;</div><div><br></div><div>&nbsp; NewDateEdt = AddForm.AddNewProEdit(NewStepPnl, 'DynStepDate_' + IntToStr(AddedStepCount), 'Tarih (GG.AA.YYYY)');</div><div>&nbsp; NewDateEdt.Align = alTop;</div><div>&nbsp; NewDateEdt.Height = 45;</div><div>&nbsp; NewDateEdt.Margins.Left = 5;</div><div>&nbsp; NewDateEdt.Margins.Right = 5;</div><div>&nbsp; NewDateEdt.Margins.Top = 5;</div><div>}</div><div><br></div><div>void SaveStepToDB;//adımalrı kaydetme</div><div>{</div><div>&nbsp; if(StepNameEdt.Text=='')</div><div>&nbsp; {</div><div>&nbsp; &nbsp; ShowMessage('Adım başlığını giriniz:');&nbsp;</div><div>&nbsp; &nbsp; exit;</div><div>&nbsp; }</div><div>&nbsp; try</div><div>&nbsp; &nbsp; if (isStepEditMode)&nbsp;</div><div>&nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp;Clomosy.DBSQLiteQuery.SQL.Text = 'UPDATE TaskSteps SET step_title = '''+StepNameEdt.Text+''', step_date = '''+StepDateEdt.Text+''' WHERE step_id = ' + selStepID;</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; else&nbsp;</div><div>&nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp;Clomosy.DBSQLiteQuery.SQL.Text = 'INSERT INTO TaskSteps (task_id, step_title, step_date, step_is_done) VALUES ('+selID+', '''+StepNameEdt.Text+''', '''+StepDateEdt.Text+''', 0)';</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; // Yeni adım eklendiğinde ortalamayı tekrar hesapla</div><div>&nbsp; &nbsp; CalculateTaskAverage;</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; AddStepForm.clHide;</div><div>&nbsp; &nbsp; RefreshStepList;</div><div>&nbsp; except</div><div>&nbsp; &nbsp; ShowMessage('İşlem yapılamadı: ' + LastExceptionMessage);</div><div>&nbsp; }</div><div>}</div><div><br></div><div>void OpenAddStepForm;//yeni adımı ekleme düzen pencereli</div><div>{</div><div>&nbsp; if (AddStepForm &lt;&gt; nil) {</div><div>&nbsp; &nbsp; AddStepForm.Free;</div><div>&nbsp; &nbsp; AddStepForm = nil;</div><div>&nbsp; }</div><div>&nbsp; AddStepForm = TclForm.Create(Self);</div><div>&nbsp; if (isStepEditMode) AddStepForm.clSetCaption('Adımı Düzenle');</div><div>&nbsp; else AddStepForm.clSetCaption('Yeni Adım Ekle');</div><div>&nbsp;&nbsp;</div><div>&nbsp; AddStepForm.SetFormColor('#FFFFFF', '', clGNone);</div><div>&nbsp;</div><div>&nbsp; StepNameEdt = AddStepForm.AddNewProEdit(AddStepForm, 'StepNameEdt', 'Adım');</div><div>&nbsp; StepNameEdt.Align = alTop;</div><div>&nbsp; StepNameEdt.Height = 50;&nbsp;</div><div>&nbsp; StepNameEdt.Margins.Top=20;</div><div>&nbsp;&nbsp;</div><div>&nbsp; StepDateEdt = AddStepForm.AddNewProEdit(AddStepForm, 'StepDateEdt', 'Tarih (GG.AA.YYYY)');</div><div>&nbsp; StepDateEdt.Align = alTop;&nbsp;</div><div>&nbsp; StepDateEdt.Height = 50;</div><div>&nbsp;&nbsp;</div><div>&nbsp; if (isStepEditMode) {</div><div>&nbsp; &nbsp; &nbsp;Clomosy.DBSQLiteQuery.SQL.Text = 'SELECT * FROM TaskSteps WHERE step_id = ' + selStepID;</div><div>&nbsp; &nbsp; &nbsp;Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div>&nbsp; &nbsp; &nbsp;StepNameEdt.Text = Clomosy.DBSQLiteQuery.FieldByName('step_title').AsString;</div><div>&nbsp; &nbsp; &nbsp;StepDateEdt.Text = Clomosy.DBSQLiteQuery.FieldByName('step_date').AsString;</div><div>&nbsp; }</div><div><br></div><div>&nbsp; SaveStepBtn = AddStepForm.AddNewProButton(AddStepForm, 'SaveStepBtn', 'Kaydet');</div><div>&nbsp; SaveStepBtn.Align = alBottom;&nbsp;</div><div>&nbsp; SaveStepBtn.Height = 50;</div><div>&nbsp; clComponent.SetupComponent(SaveStepBtn, '{"BackgroundColor":"#f0e1fe", "TextColor":"#6302c5", "RoundHeight":10}');</div><div>&nbsp; AddStepForm.AddNewEvent(SaveStepBtn, tbeOnClick, 'SaveStepToDB');</div><div>&nbsp;&nbsp;</div><div>&nbsp; AddStepForm.Run;</div><div>}</div><div><br></div><div>void EditStepClick;//düzenleye bastığımda&nbsp; bastığımın Id yi tutuyor</div><div>{</div><div>&nbsp; selStepID = TclProButton(DetailForm.clSender).clTagStr;</div><div>&nbsp; isStepEditMode = True;</div><div>&nbsp; OpenAddStepForm; //giriş pencersini aç</div><div>}</div><div><br></div><div>void AddNewStepClick;// yeni adım ekleme&nbsp;</div><div>{</div><div>&nbsp; isStepEditMode = False;</div><div>&nbsp; OpenAddStepForm;</div><div>}</div><div><br></div><div><br></div><div>void OpenStepProgressClick;// Adım ilerleme butonuna tıklanınca</div><div>{</div><div>&nbsp; selStepID = TclProButton(DetailForm.clSender).clTagStr;</div><div>&nbsp; OpenProgressForm;</div><div>}</div><div><br></div><div>void DeleteStep;//adım silme</div><div>{</div><div>&nbsp; selStepID = TclProButton(DetailForm.clSender).clTagStr;</div><div>&nbsp; if (Clomosy.Ask('Bu adımı silmek istiyor musunuz?')) {</div><div>&nbsp; &nbsp; Clomosy.DBSQLiteQuery.SQL.Text = 'DELETE FROM TaskSteps WHERE step_id = ' + selStepID;</div><div>&nbsp; &nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; // Adım silinince gebel ortalamayı tekrar hesaplamak için</div><div>&nbsp; &nbsp; CalculateTaskAverage;</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; RefreshStepList;</div><div>&nbsp; }</div><div>}</div><div><br></div><div>void RefreshStepList;//&nbsp; ana ekrandaki görev listesi</div><div>var&nbsp;</div><div>&nbsp; StepCard, StepInfoPnl: TclProPanel;</div><div>&nbsp; LblStepName, LblStepDate, LblStepStatus: TclProLabel;</div><div>&nbsp; BtnCheck, BtnDelStep, BtnEditStep, BtnProgStep: TclProButton;</div><div>&nbsp; isDone, DaysDiff: Integer;</div><div>&nbsp; StatusColor, StatusIcon, DaysText, BandColor,InfoStr: String;</div><div>{</div><div>&nbsp; if (StepScrollBox &lt;&gt; nil) { StepScrollBox.Free; StepScrollBox = nil; }</div><div>&nbsp;&nbsp;</div><div>&nbsp; StepScrollBox = DetailForm.AddNewVertScrollBox(d_StepsContainer, 'StepScrollBox');</div><div>&nbsp; StepScrollBox.Align = alClient;</div><div>&nbsp;&nbsp;</div><div>&nbsp; Clomosy.DBSQLiteQuery.Close;</div><div>&nbsp; Clomosy.DBSQLiteQuery.SQL.Text =&nbsp;</div><div>&nbsp; &nbsp; 'SELECT *, CAST(julianday(substr(step_date,7,4) || ''-'' || substr(step_date,4,2) || ''-'' || substr(step_date,1,2)) - julianday(''now'') AS INTEGER) as days_left ' +</div><div>&nbsp; &nbsp; 'FROM TaskSteps WHERE task_id = ' + selID + ' ORDER BY step_id DESC';</div><div>&nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div>&nbsp;&nbsp;</div><div>&nbsp; while (not Clomosy.DBSQLiteQuery.Eof)</div><div>&nbsp; {</div><div>&nbsp; &nbsp; isDone = Clomosy.DBSQLiteQuery.FieldByName('step_is_done').AsInteger;</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; StepCard = DetailForm.AddNewProPanel(StepScrollBox, 'StpCrd_' + Clomosy.DBSQLiteQuery.FieldByName('step_id').AsString);</div><div>&nbsp; &nbsp; StepCard.Align = alTop;</div><div>&nbsp; &nbsp; StepCard.Height = 85;</div><div>&nbsp; &nbsp; StepCard.Margins.Top = 10;&nbsp;</div><div>&nbsp; &nbsp; StepCard.Margins.Left = 10;&nbsp;</div><div>&nbsp; &nbsp; StepCard.Margins.Right = 10;</div><div>&nbsp; &nbsp; StepCard.clProSettings.RoundHeight = 10;</div><div>&nbsp; &nbsp; StepCard.clProSettings.RoundWidth = 10;</div><div>&nbsp; &nbsp; StepCard.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E5E7EB');</div><div>&nbsp; &nbsp; StepCard.clProSettings.BorderWidth = 1;</div><div>&nbsp; &nbsp; StepCard.clProSettings.BackgroundColor = clAlphaColor.clWhite;</div><div>&nbsp; &nbsp; StepCard.SetclProSettings(StepCard.clProSettings);</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; // Silme Buton</div><div>&nbsp; &nbsp; BtnDelStep = DetailForm.AddNewProButton(StepCard, 'DelStp_' + Clomosy.DBSQLiteQuery.FieldByName('step_id').AsString, 'Sil');</div><div>&nbsp; &nbsp; BtnDelStep.Align = alRight;</div><div>&nbsp; &nbsp; BtnDelStep.Width = 40;&nbsp;</div><div>&nbsp; &nbsp; BtnDelStep.Margins.Right=5;</div><div>&nbsp; &nbsp; BtnDelStep.Margins.Top=20;&nbsp;</div><div>&nbsp; &nbsp; BtnDelStep.Margins.Bottom=20;</div><div>&nbsp; &nbsp; BtnDelStep.clTagStr = Clomosy.DBSQLiteQuery.FieldByName('step_id').AsString;</div><div>&nbsp; &nbsp; clComponent.SetupComponent(BtnDelStep, '{"BackgroundColor":"#ffcccc", "TextColor":"#ff0000", "TextSize":11, "RoundHeight":10, "RoundWidth":10, "TextBold":"yes"}');</div><div>&nbsp; &nbsp; DetailForm.AddNewEvent(BtnDelStep, tbeOnClick, 'DeleteStep');</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; // Düzenle Butonu</div><div>&nbsp; &nbsp; BtnEditStep = DetailForm.AddNewProButton(StepCard, 'EdtStp_' + Clomosy.DBSQLiteQuery.FieldByName('step_id').AsString, 'Düzenle');</div><div>&nbsp; &nbsp; BtnEditStep.Align = alRight;</div><div>&nbsp; &nbsp; BtnEditStep.Width = 40;&nbsp;</div><div>&nbsp; &nbsp; BtnEditStep.Margins.Right=5;</div><div>&nbsp; &nbsp; BtnEditStep.Margins.Top=20;&nbsp;</div><div>&nbsp; &nbsp; BtnEditStep.Margins.Bottom=20;</div><div>&nbsp; &nbsp; BtnEditStep.clTagStr = Clomosy.DBSQLiteQuery.FieldByName('step_id').AsString;</div><div>&nbsp; &nbsp; clComponent.SetupComponent(BtnEditStep, '{"BackgroundColor":"#e0f2fe", "TextColor":"#0284c7", "TextSize":11, "RoundHeight":10, "RoundWidth":10, "TextBold":"yes"}');</div><div>&nbsp; &nbsp; DetailForm.AddNewEvent(BtnEditStep, tbeOnClick, 'EditStepClick');</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; //İlerleme Butonu&nbsp;</div><div>&nbsp; &nbsp; BtnProgStep = DetailForm.AddNewProButton(StepCard, 'PrgStp_' + Clomosy.DBSQLiteQuery.FieldByName('step_id').AsString, '%');</div><div>&nbsp; &nbsp; BtnProgStep.Align = alRight;</div><div>&nbsp; &nbsp; BtnProgStep.Width = 40;&nbsp;</div><div>&nbsp; &nbsp; BtnProgStep.Margins.Right=5;</div><div>&nbsp; &nbsp; BtnProgStep.Margins.Top=20;&nbsp;</div><div>&nbsp; &nbsp; BtnProgStep.Margins.Bottom=20;</div><div>&nbsp; &nbsp; BtnProgStep.clTagStr = Clomosy.DBSQLiteQuery.FieldByName('step_id').AsString;</div><div>&nbsp; &nbsp; clComponent.SetupComponent(BtnProgStep, '{"BackgroundColor":"#fee1f6", "TextColor":"#c50256", "TextSize":13, "RoundHeight":10, "RoundWidth":10, "TextBold":"yes"}');</div><div>&nbsp; &nbsp; DetailForm.AddNewEvent(BtnProgStep, tbeOnClick, 'OpenStepProgressClick');</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; StepInfoPnl = DetailForm.AddNewProPanel(StepCard, 'InfPnl_' + Clomosy.DBSQLiteQuery.FieldByName('step_id').AsString);</div><div>&nbsp; &nbsp; StepInfoPnl.Align = alClient;&nbsp;</div><div>&nbsp; &nbsp; StepInfoPnl.clProSettings.BackgroundColor = clAlphaColor.clWhite;&nbsp;</div><div>&nbsp; &nbsp; StepInfoPnl.SetclProSettings(StepInfoPnl.clProSettings);</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; LblStepName = DetailForm.AddNewProLabel(StepInfoPnl, 'StpNm_' + Clomosy.DBSQLiteQuery.FieldByName('step_id').AsString, Clomosy.DBSQLiteQuery.FieldByName('step_title').AsString);</div><div>&nbsp; &nbsp; LblStepName.Align = alTop;</div><div>&nbsp; &nbsp; LblStepName.Height = 25;</div><div>&nbsp; &nbsp; LblStepName.Margins.Left = 10;</div><div>&nbsp; &nbsp; LblStepName.Margins.Top=10;</div><div>&nbsp; &nbsp; clComponent.SetupComponent(LblStepName, '{"TextSize":13, "TextColor":"#1F2937", "TextBold":"yes"}');</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; // Tarih ve Durum&nbsp;</div><div>&nbsp; &nbsp; DaysDiff = Clomosy.DBSQLiteQuery.FieldByName('days_left').AsInteger;</div><div>&nbsp; &nbsp; if (DaysDiff &lt; 0) DaysText = 'Süre Doldu';&nbsp;</div><div>&nbsp; &nbsp; else DaysText = IntToStr(DaysDiff) + ' gün kaldı';</div><div>&nbsp;&nbsp;</div><div>&nbsp; &nbsp; InfoStr = '&#128197; ' + Clomosy.DBSQLiteQuery.FieldByName('step_date').AsString + ' | ' + DaysText;</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; if (isDone &gt; 0)&nbsp;</div><div>&nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp;InfoStr = InfoStr + ' | %' + IntToStr(isDone) + ' Tamamlandı';</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; if (isDone == 100)&nbsp;</div><div>&nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp;InfoStr = InfoStr + ' &#9989;';&nbsp;</div><div>&nbsp; &nbsp; }</div><div><br></div><div>&nbsp; &nbsp; LblStepDate = DetailForm.AddNewProLabel(StepInfoPnl, 'StpDt_' + Clomosy.DBSQLiteQuery.FieldByName('step_id').AsString, InfoStr);</div><div>&nbsp; &nbsp; LblStepDate.Align = alTop; LblStepDate.Margins.Left = 10;</div><div>&nbsp; &nbsp; clComponent.SetupComponent(LblStepDate, '{"TextSize":11, "TextColor":"#6B7280"}');</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; Clomosy.DBSQLiteQuery.Next;//döngüyü başa al sıradaki veri için&nbsp;</div><div>&nbsp; }</div><div>}</div><div><br></div><div>void SaveManualProgress//görev adımı için girilen yüzdeyi kaydet</div><div>var</div><div>&nbsp; NewProgInt: Integer;</div><div>{</div><div>&nbsp; NewProgInt = StrToIntDef(ProgressEdit.Text, -1);</div><div>&nbsp; if ((NewProgInt &gt;= 0) &amp;&amp; (NewProgInt &lt;= 100)) {</div><div><br></div><div>&nbsp; &nbsp; Clomosy.DBSQLiteQuery.SQL.Text = 'UPDATE TaskSteps SET step_is_done = ' + IntToStr(NewProgInt) + ' WHERE step_id = ' + selStepID;</div><div>&nbsp; &nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; CalculateTaskAverage;//bağlı olduğu yüzdeliğin tekrar hesaplanması</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; ShowMessage('Adım ilerlemesi güncellendi. Genel durum yenilendi.');</div><div>&nbsp; &nbsp; ProgressForm.clHide;&nbsp;</div><div>&nbsp; &nbsp; RefreshStepList;</div><div>&nbsp; } else {</div><div>&nbsp; &nbsp; ShowMessage('Lütfen 0 ile 100 arasında bir sayı giriniz.');</div><div>&nbsp; }</div><div>}</div><div><br></div><div>void OpenProgressForm;//yüzde kaydı</div><div>{</div><div>&nbsp; if (ProgressForm &lt;&gt; nil) {</div><div>&nbsp; &nbsp; ProgressForm.Free;</div><div>&nbsp; &nbsp; ProgressForm = nil;</div><div>&nbsp; }</div><div>&nbsp; ProgressForm = TclForm.Create(Self);</div><div>&nbsp; ProgressForm.clSetCaption('İlerleme Girişi');</div><div>&nbsp; ProgressForm.SetFormColor('#FFFFFF', '', clGNone);</div><div>&nbsp;&nbsp;</div><div>&nbsp; ProgressEdit = ProgressForm.AddNewProEdit(ProgressForm, 'ProgressEdit', 'Yüzde (0-100)');</div><div>&nbsp; ProgressEdit.Align = alTop;</div><div>&nbsp; ProgressEdit.Height = 50;&nbsp;</div><div>&nbsp; ProgressEdit.Margins.Top = 30;</div><div>&nbsp; ProgressEdit.Margins.Left = 20;</div><div>&nbsp; ProgressEdit.Margins.Right = 20;</div><div>&nbsp; clComponent.SetupComponent(ProgressEdit, '{"TextType":"number"}');&nbsp;</div><div><br></div><div>&nbsp; BtnSaveProgress = ProgressForm.AddNewProButton(ProgressForm, 'BtnSaveProgress', 'Kaydet');</div><div>&nbsp; BtnSaveProgress.Align = alBottom;&nbsp;</div><div>&nbsp; BtnSaveProgress.Height = 50;</div><div>&nbsp; clComponent.SetupComponent(BtnSaveProgress, '{"BackgroundColor":"#f0e1fe", "TextColor":"#6302c5", "RoundHeight":10}');</div><div>&nbsp;&nbsp;</div><div>&nbsp; ProgressForm.AddNewEvent(BtnSaveProgress, tbeOnClick, 'SaveManualProgress');</div><div>&nbsp;&nbsp;</div><div>&nbsp; ProgressForm.Run;</div><div>}</div><div><br></div><div>void OpenDetailForm;</div><div>var CurrentProgress, MaxWidth: Integer;</div><div>{&nbsp;</div><div>&nbsp; if (DetailForm &lt;&gt; nil) {</div><div>&nbsp; &nbsp; DetailForm.Free;</div><div>&nbsp; &nbsp; DetailForm = nil;</div><div>&nbsp; }</div><div>&nbsp;&nbsp;</div><div>&nbsp; DetailForm = TclForm.Create(Self);</div><div>&nbsp; DetailForm.clSetCaption('Görev Detayı');</div><div>&nbsp; DetailForm.SetFormColor('#F9FAFB', '', clGNone);</div><div>&nbsp;&nbsp;</div><div>&nbsp; Clomosy.DBSQLiteQuery.Close;</div><div>&nbsp; Clomosy.DBSQLiteQuery.SQL.Text = 'SELECT * FROM MyTasks WHERE id = ' + selID;</div><div>&nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div>&nbsp;&nbsp;</div><div>&nbsp; d_HeaderContainer = DetailForm.AddNewProPanel(DetailForm, 'd_HeaderContainer');</div><div>&nbsp; d_HeaderContainer.Align = alTop;&nbsp;</div><div>&nbsp; d_HeaderContainer.Height = 120;&nbsp;</div><div>&nbsp; d_HeaderContainer.clProSettings.BackgroundColor = clAlphaColor.clWhite;&nbsp;</div><div>&nbsp; d_HeaderContainer.SetclProSettings(d_HeaderContainer.clProSettings);</div><div><br></div><div>&nbsp; d_LblTitle = DetailForm.AddNewProLabel(d_HeaderContainer, 'd_LblTitle', Clomosy.DBSQLiteQuery.FieldByName('task_name').AsString);</div><div>&nbsp; d_LblTitle.Align = alTop;</div><div>&nbsp; d_LblTitle.Margins.Top = 10;&nbsp;</div><div>&nbsp; d_LblTitle.Margins.Left = 20;&nbsp;</div><div>&nbsp; d_LblTitle.Height = 30;&nbsp;</div><div>&nbsp; d_LblTitle.clProSettings.FontSize = 22;&nbsp;</div><div>&nbsp; d_LblTitle.clProSettings.FontColor = clAlphaColor.clBlack;&nbsp;</div><div>&nbsp; d_LblTitle.clProSettings.TextSettings.Font.Style = &#091;fsBold&#093;;</div><div>&nbsp; d_LblTitle.SetclProSettings(d_LblTitle.clProSettings);</div><div>&nbsp;&nbsp;</div><div>&nbsp; d_LblDesc = DetailForm.AddNewProLabel(d_HeaderContainer, 'd_LblDesc', Clomosy.DBSQLiteQuery.FieldByName('task_desc').AsString);</div><div>&nbsp; d_LblDesc.Align = alClient;</div><div>&nbsp; d_LblDesc.Margins.Left = 20;</div><div>&nbsp; d_LblDesc.Margins.Top = 5;</div><div>&nbsp; d_LblDesc.clProSettings.FontSize = 14;&nbsp;</div><div>&nbsp; d_LblDesc.clProSettings.FontColor = clAlphaColor.clGray;&nbsp;</div><div>&nbsp; d_LblDesc.SetclProSettings(d_LblDesc.clProSettings);</div><div><br></div><div>&nbsp; d_InfoContainer = DetailForm.AddNewProPanel(DetailForm, 'd_InfoContainer');</div><div>&nbsp; d_InfoContainer.Align = alTop; d_InfoContainer.Height = 120;&nbsp;</div><div>&nbsp; d_InfoContainer.Margins.Top = 10;</div><div>&nbsp; d_InfoContainer.clProSettings.BackgroundColor = clAlphaColor.clWhite;&nbsp;</div><div>&nbsp; d_InfoContainer.SetclProSettings(d_InfoContainer.clProSettings);</div><div><br></div><div>&nbsp; d_LblDate = DetailForm.AddNewProLabel(d_InfoContainer, 'd_LblDate', 'Teslim: ' + Clomosy.DBSQLiteQuery.FieldByName('task_date').AsString);</div><div>&nbsp; d_LblDate.Align = alTop;&nbsp;</div><div>&nbsp; d_LblDate.Margins.Top=10;</div><div>&nbsp; d_LblDate.Margins.Left=20;&nbsp;</div><div>&nbsp; d_LblDate.Height=25;</div><div>&nbsp; d_LblDate.clProSettings.FontSize = 16;&nbsp;</div><div>&nbsp; d_LblDate.clProSettings.FontColor = clAlphaColor.clHexToColor('#059669');&nbsp;</div><div>&nbsp; d_LblDate.SetclProSettings(d_LblDate.clProSettings);</div><div>&nbsp;&nbsp;</div><div>&nbsp; d_LblInfo = DetailForm.AddNewProLabel(d_InfoContainer, 'd_LblInfo', 'Sorumlu: ' + Clomosy.DBSQLiteQuery.FieldByName('task_worker').AsString + #13 + 'Kontrol: ' + Clomosy.DBSQLiteQuery.FieldByName('task_control').AsString);</div><div>&nbsp; d_LblInfo.Align = alClient;&nbsp;</div><div>&nbsp; d_LblInfo.Margins.Left=20;&nbsp;</div><div>&nbsp; d_LblInfo.Margins.Top=5;</div><div>&nbsp; d_LblInfo.clProSettings.FontSize = 14;&nbsp;</div><div>&nbsp; d_LblInfo.clProSettings.FontColor = clAlphaColor.clHexToColor('#374151');</div><div>&nbsp; d_LblInfo.SetclProSettings(d_LblInfo.clProSettings);</div><div><br></div><div>&nbsp; d_YuzdeLbl = DetailForm.AddNewProLabel(d_InfoContainer, 'd_YuzdeLbl', '%0');</div><div>&nbsp; d_YuzdeLbl.Align = alRight;&nbsp;</div><div>&nbsp; d_YuzdeLbl.Width = 80;</div><div>&nbsp; d_YuzdeLbl.Margins.Right=20;</div><div>&nbsp; d_YuzdeLbl.Margins.Top = 10;</div><div>&nbsp; clComponent.SetupComponent(d_YuzdeLbl, '{"TextHorizontalAlign":"right", "FontSize":24, "TextColor":"#2563EB", "TextBold":"yes"}');</div><div>&nbsp;&nbsp;</div><div>&nbsp; CurrentProgress = Clomosy.DBSQLiteQuery.FieldByName('task_progress').AsInteger;</div><div>&nbsp; d_YuzdeLbl.Text = '%' + IntToStr(CurrentProgress);</div><div><br></div><div>&nbsp; d_StepsContainer = DetailForm.AddNewProPanel(DetailForm, 'd_StepsContainer');</div><div>&nbsp; d_StepsContainer.Align = alClient;</div><div>&nbsp; d_StepsContainer.Margins.Top = 15;</div><div>&nbsp; d_StepsContainer.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F3F4F6');</div><div>&nbsp; d_StepsContainer.SetclProSettings(d_StepsContainer.clProSettings);</div><div>&nbsp;&nbsp;</div><div>&nbsp; LblStepsHeader = DetailForm.AddNewProLabel(d_StepsContainer, 'LblStepsHeader', 'Görev Adımları');</div><div>&nbsp; LblStepsHeader.Align = alTop;</div><div>&nbsp; LblStepsHeader.Height = 40;</div><div>&nbsp; LblStepsHeader.Margins.Left = 20;</div><div>&nbsp; LblStepsHeader.Margins.Top = 10;</div><div>&nbsp; clComponent.SetupComponent(LblStepsHeader, '{"FontSize":16, "TextColor":"#111827", "TextBold":"yes"}');</div><div>&nbsp;&nbsp;</div><div>&nbsp; BtnAddStep = DetailForm.AddNewProButton(d_StepsContainer, 'BtnAddStep', '+ Adım Ekle');</div><div>&nbsp; BtnAddStep.Align = alTop;&nbsp;</div><div>&nbsp; BtnAddStep.Height = 40;&nbsp;</div><div>&nbsp; BtnAddStep.Margins.Left=20;&nbsp;</div><div>&nbsp; BtnAddStep.Margins.Right=20;</div><div>&nbsp; clComponent.SetupComponent(BtnAddStep, '{"BackgroundColor":"#FFFFFF", "TextColor":"#2563EB", "BorderColor":"#2563EB", "BorderWidth":1, "RoundHeight":10}');</div><div>&nbsp; DetailForm.AddNewEvent(BtnAddStep, tbeOnClick, 'AddNewStepClick');</div><div>&nbsp;&nbsp;</div><div>&nbsp; RefreshStepList;</div><div>&nbsp;&nbsp;</div><div>&nbsp; DetailForm.Run;</div><div>}</div><div><br></div><div>void SaveTask;//görev verilerini kaydt</div><div>var</div><div>&nbsp; i, LastTaskID: Integer;</div><div>&nbsp; TmpNameEdt, TmpDateEdt: TclEdit;</div><div>&nbsp; StepText, StepDateStr: String;</div><div>{</div><div>&nbsp; if (TaskNameEdt.Text == '') { ShowMessage('Lütfen görev adı giriniz.'); exit; }</div><div><br></div><div>&nbsp; try</div><div><br></div><div>&nbsp; &nbsp; Clomosy.DBSQLiteQuery.Close;&nbsp;</div><div>&nbsp; &nbsp; if (isEditMode) {</div><div>&nbsp; &nbsp; &nbsp; queryStr = 'UPDATE MyTasks SET task_name='''+TaskNameEdt.Text+''', task_desc='''+TaskDescEdt.Text+''', task_worker='''+TaskWorkerEdt.Text+''', task_control='''+TaskControlEdt.Text+''', task_date='''+TaskDateEdt.Text+''' WHERE id='+selID;</div><div>&nbsp; &nbsp; } else {</div><div>&nbsp; &nbsp; &nbsp; queryStr = 'INSERT INTO MyTasks (task_name, task_desc, task_worker, task_control, task_date, task_progress) VALUES ('''+TaskNameEdt.Text+''','''+TaskDescEdt.Text+''','''+TaskWorkerEdt.Text+''','''+TaskControlEdt.Text+''','''+TaskDateEdt.Text+''', 0)';</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; Clomosy.DBSQLiteQuery.SQL.Text = queryStr;</div><div>&nbsp; &nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; if (not isEditMode)&nbsp;</div><div>&nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; Clomosy.DBSQLiteQuery.Close;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; Clomosy.DBSQLiteQuery.SQL.Text = 'SELECT MAX(id) as last_id FROM MyTasks';//eklenen ana görevin ıdsi</div><div>&nbsp; &nbsp; &nbsp; &nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; LastTaskID = Clomosy.DBSQLiteQuery.FieldByName('last_id').AsInteger;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; Clomosy.DBSQLiteQuery.Close;&nbsp;</div><div><br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; for (i = 1 to AddedStepCount)//kullanıcının oluşturduğu adım kadar</div><div>&nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TmpNameEdt = TclEdit(AddForm.clFindComponent('DynStepName_' + IntToStr(i)));</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TmpDateEdt = TclEdit(AddForm.clFindComponent('DynStepDate_' + IntToStr(i)));</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (TmpNameEdt &lt;&gt; nil)&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; StepText = TmpNameEdt.Text;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (StepText &lt;&gt; '')&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (TmpDateEdt.Text &lt;&gt; '') StepDateStr = TmpDateEdt.Text;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else StepDateStr = TaskDateEdt.Text;</div><div><br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Clomosy.DBSQLiteQuery.Close;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Clomosy.DBSQLiteQuery.SQL.Text = 'INSERT INTO TaskSteps (task_id, step_title, step_date, step_is_done) VALUES ('+IntToStr(LastTaskID)+', '''+StepText+''', '''+StepDateStr+''', 0)';</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; AddForm.clHide;</div><div>&nbsp; &nbsp; RefreshTaskList;&nbsp;</div><div>&nbsp; except</div><div>&nbsp; &nbsp; ShowMessage('Hata: ' + LastExceptionMessage);</div><div>&nbsp; }</div><div>}</div><div>void OpenAddTaskForm; // görev formunu oluşturma</div><div>var</div><div>&nbsp; LblStartSteps: TclProLabel;</div><div>{</div><div>&nbsp; if (AddForm &lt;&gt; nil)&nbsp;</div><div>&nbsp; {</div><div>&nbsp; &nbsp; AddForm.Free;</div><div>&nbsp; &nbsp; AddForm = nil;</div><div>&nbsp; }</div><div>&nbsp; AddForm = TclForm.Create(Self);</div><div>&nbsp; AddForm.clSetCaption('Görev Formu');</div><div>&nbsp;&nbsp;</div><div>&nbsp; TaskNameEdt = AddForm.AddNewProEdit(AddForm, 'TaskNameEdt', 'Görev Adı'); TaskNameEdt.Align = alTop; TaskNameEdt.Height=50;</div><div>&nbsp; TaskDescEdt = AddForm.AddNewProEdit(AddForm, 'TaskDescEdt', 'Açıklama'); TaskDescEdt.Align = alTop; TaskDescEdt.Height=50;</div><div>&nbsp; TaskDateEdt = AddForm.AddNewProEdit(AddForm, 'TaskDateEdt', 'Tarih (GG.AA.YYYY)'); TaskDateEdt.Align = alTop; TaskDateEdt.Height=50;</div><div>&nbsp; TaskControlEdt = AddForm.AddNewProEdit(AddForm, 'TaskControlEdt', 'Kontrolör'); TaskControlEdt.Align = alTop; TaskControlEdt.Height=50;</div><div>&nbsp; TaskWorkerEdt = AddForm.AddNewProEdit(AddForm, 'TaskWorkerEdt', 'Yapan Kişi'); TaskWorkerEdt.Align = alTop; TaskWorkerEdt.Height=50;</div><div><br></div><div>&nbsp; if (not isEditMode)</div><div>&nbsp; {</div><div>&nbsp; &nbsp; &nbsp; LblStartSteps = AddForm.AddNewProLabel(AddForm, 'LblStartSteps', 'Başlangıç Adımları (Opsiyonel)');</div><div>&nbsp; &nbsp; &nbsp; LblStartSteps.Align = alTop;</div><div>&nbsp; &nbsp; &nbsp; LblStartSteps.Margins.Top = 15;</div><div>&nbsp; &nbsp; &nbsp; LblStartSteps.Margins.Left = 10;</div><div>&nbsp; &nbsp; &nbsp; LblStartSteps.Height = 25;</div><div>&nbsp; &nbsp; &nbsp; clComponent.SetupComponent(LblStartSteps, '{"TextBold":"yes", "TextColor":"#374151"}');</div><div>&nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; DynamicStepScrollBox = AddForm.AddNewVertScrollBox(AddForm, 'DynamicStepScrollBox');</div><div>&nbsp; &nbsp; &nbsp; DynamicStepScrollBox.Align = alClient;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; DynamicStepScrollBox.Margins.Bottom = 60;&nbsp;</div><div><br></div><div>&nbsp; &nbsp; &nbsp; BtnAddDynamicStep = AddForm.AddNewProButton(DynamicStepScrollBox, 'BtnAddDynamicStep', '+ Adım Ekle');</div><div>&nbsp; &nbsp; &nbsp; BtnAddDynamicStep.Align = alTop;</div><div>&nbsp; &nbsp; &nbsp; BtnAddDynamicStep.Height = 40;</div><div>&nbsp; &nbsp; &nbsp; BtnAddDynamicStep.Margins.Top = 10;</div><div>&nbsp; &nbsp; &nbsp; BtnAddDynamicStep.Margins.Left = 20;</div><div>&nbsp; &nbsp; &nbsp; BtnAddDynamicStep.Margins.Right = 20;</div><div>&nbsp; &nbsp; &nbsp; clComponent.SetupComponent(BtnAddDynamicStep, '{"BackgroundColor":"#FFFFFF", "TextColor":"#2563EB", "BorderColor":"#2563EB", "BorderWidth":1, "BorderType":"dash", "RoundHeight":10}');</div><div>&nbsp; &nbsp; &nbsp; AddForm.AddNewEvent(BtnAddDynamicStep, tbeOnClick, 'AddDynamicStepRow');</div><div>&nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; AddedStepCount = 0;</div><div>&nbsp; &nbsp; &nbsp; AddDynamicStepRow;</div><div>&nbsp; }</div><div><br></div><div>&nbsp; SaveBtn = AddForm.AddNewProButton(AddForm, 'SaveBtn', 'KAYDET');&nbsp;</div><div>&nbsp; SaveBtn.Align = alBottom;&nbsp;</div><div>&nbsp; SaveBtn.Height=50;</div><div>&nbsp; clComponent.SetupComponent(SaveBtn, '{"BackgroundColor":"#f0e1fe", "TextColor":"#6302c5", "RoundHeight":10}');</div><div>&nbsp; AddForm.AddNewEvent(SaveBtn, tbeOnClick, 'SaveTask');</div><div>&nbsp;&nbsp;</div><div>&nbsp; AddForm.Run;</div><div>}</div><div><br></div><div>void BtnEditClick;</div><div>{</div><div>&nbsp; selID = TclProButton(MainForm.clSender).clTagStr;&nbsp;</div><div>&nbsp; isEditMode = True;</div><div>&nbsp; OpenAddTaskForm;</div><div>&nbsp;&nbsp;</div><div>&nbsp; Clomosy.DBSQLiteQuery.SQL.Text = 'SELECT * FROM MyTasks WHERE id = ' + selID;</div><div>&nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div>&nbsp; TaskNameEdt.Text = Clomosy.DBSQLiteQuery.FieldByName('task_name').AsString;</div><div>&nbsp; TaskDescEdt.Text = Clomosy.DBSQLiteQuery.FieldByName('task_desc').AsString;</div><div>&nbsp; TaskWorkerEdt.Text = Clomosy.DBSQLiteQuery.FieldByName('task_worker').AsString;</div><div>&nbsp; TaskControlEdt.Text = Clomosy.DBSQLiteQuery.FieldByName('task_control').AsString;</div><div>&nbsp; TaskDateEdt.Text = Clomosy.DBSQLiteQuery.FieldByName('task_date').AsString;</div><div>&nbsp; AddForm.Run;</div><div>}</div><div><br></div><div>void BtnDeleteClick;</div><div>var</div><div>&nbsp; ClickedBtn: TclProButton;</div><div>&nbsp; ParentLayout, ParentCard: TclProPanel;</div><div>{</div><div>&nbsp; ClickedBtn = TclProButton(MainForm.clSender);</div><div>&nbsp; selID = ClickedBtn.clTagStr;</div><div>&nbsp;&nbsp;</div><div>&nbsp; try</div><div>&nbsp; &nbsp; if (Clomosy.Ask('Görevi silmek istiyor musunuz?')) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; Clomosy.DBSQLiteQuery.SQL.Text = 'DELETE FROM MyTasks WHERE id = ' + selID;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; Clomosy.DBSQLiteQuery.SQL.Text = 'DELETE FROM TaskSteps WHERE task_id = ' + selID;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; ParentLayout = TclProPanel(ClickedBtn.Parent);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; ParentCard = TclProPanel(ParentLayout.Parent);</div><div>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; ParentCard.Height = 0;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; ParentCard.Visible = False;</div><div>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; ShowMessage('Görev silindi.');</div><div>&nbsp; &nbsp; }</div><div>&nbsp; except</div><div>&nbsp; &nbsp; ShowMessage('Silinemedi: ' + LastExceptionMessage);</div><div>&nbsp; }</div><div>}</div><div>void BtnDetailClick;&nbsp;</div><div>var</div><div>&nbsp; ClickedBtn: TclProButton;</div><div>{</div><div>&nbsp; ClickedBtn = TclProButton(MainForm.clSender);</div><div>&nbsp;&nbsp;</div><div>&nbsp; if (ClickedBtn &lt;&gt; nil)&nbsp;</div><div>&nbsp; {</div><div>&nbsp; &nbsp; &nbsp; selID = ClickedBtn.clTagStr;</div><div>&nbsp; &nbsp; &nbsp; if (selID &lt;&gt; '')&nbsp;</div><div>&nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;OpenDetailForm;</div><div>&nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; else</div><div>&nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ShowMessage('Hata: Görev ID bulunamadı.');</div><div>&nbsp; &nbsp; &nbsp; }</div><div>&nbsp; }</div><div>}</div><div>void newTaskClick;</div><div>{</div><div>&nbsp; isEditMode = False;</div><div>&nbsp; OpenAddTaskForm;</div><div>&nbsp; AddForm.Run;</div><div>}</div><div>//ana ekrandaki</div><div>void RefreshTaskList;&nbsp;</div><div>var</div><div>&nbsp; CardPnl, TopLayout, DateBandPnl, BottomLayout: TclProPanel;</div><div>&nbsp; LblName, LblDateTxt, LblDaysLeft, LblWorker, LblPercent, LblDesc: TclProLabel;</div><div>&nbsp; BtnEdit, BtnDel, BtnDet: TclProButton;</div><div>&nbsp; ProgBarBack, ProgBarFront: TclProPanel;</div><div>&nbsp; CurrentProg, DaysDiff: Integer;</div><div>&nbsp; DaysText, BandColor, TextColor: String;</div><div>{</div><div>&nbsp; if (TaskScrollBox &lt;&gt; nil) {</div><div>&nbsp; &nbsp; TaskScrollBox.Free;</div><div>&nbsp; &nbsp; TaskScrollBox = nil;</div><div>&nbsp; }</div><div>&nbsp;&nbsp;</div><div>&nbsp; TaskScrollBox = MainForm.AddNewVertScrollBox(FooterPnl, 'TaskScrollBox');</div><div>&nbsp; TaskScrollBox.Align = alClient;</div><div>&nbsp;&nbsp;</div><div>&nbsp; Clomosy.DBSQLiteQuery.Close;&nbsp;</div><div>&nbsp; Clomosy.DBSQLiteQuery.SQL.Text =&nbsp;</div><div>&nbsp; &nbsp; 'SELECT *, CAST(julianday(substr(task_date,7,4) || ''-'' || substr(task_date,4,2) || ''-'' || substr(task_date,1,2)) - julianday(''now'') AS INTEGER) as days_left ' +</div><div>&nbsp; &nbsp; 'FROM MyTasks ORDER BY id DESC';</div><div>&nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div>&nbsp;&nbsp;</div><div>&nbsp; while (not Clomosy.DBSQLiteQuery.Eof)</div><div>&nbsp; {</div><div>&nbsp; &nbsp; CardPnl = MainForm.AddNewProPanel(TaskScrollBox, 'Card_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString);</div><div>&nbsp; &nbsp; CardPnl.Align = alTop;</div><div>&nbsp; &nbsp; CardPnl.Height = 280;&nbsp;</div><div>&nbsp; &nbsp; CardPnl.Margins.Top = 20;&nbsp;</div><div>&nbsp; &nbsp; CardPnl.Margins.Left = 15;&nbsp;</div><div>&nbsp; &nbsp; CardPnl.Margins.Right = 15;</div><div>&nbsp; &nbsp; CardPnl.clProSettings.BackgroundColor = clAlphaColor.clWhite;</div><div>&nbsp; &nbsp; CardPnl.clProSettings.RoundHeight = 15;</div><div>&nbsp; &nbsp; CardPnl.clProSettings.RoundWidth = 15;</div><div>&nbsp; &nbsp; CardPnl.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E2E8F0');</div><div>&nbsp; &nbsp; CardPnl.clProSettings.BorderWidth = 1;</div><div>&nbsp; &nbsp; CardPnl.SetclProSettings(CardPnl.clProSettings);</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; TopLayout = MainForm.AddNewProPanel(CardPnl, 'Top_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString);</div><div>&nbsp; &nbsp; TopLayout.Align = alTop;</div><div>&nbsp; &nbsp; TopLayout.Height = 40;&nbsp;</div><div>&nbsp; &nbsp; TopLayout.Margins.Top=20;</div><div>&nbsp; &nbsp; TopLayout.clProSettings.BackgroundColor = clAlphaColor.clWhite;&nbsp;</div><div>&nbsp; &nbsp; TopLayout.SetclProSettings(TopLayout.clProSettings);</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; LblDesc = MainForm.AddNewProLabel(CardPnl, 'Desc_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString, Clomosy.DBSQLiteQuery.FieldByName('task_desc').AsString);</div><div>&nbsp; &nbsp; LblDesc.Align = alTop; LblDesc.Height = 40;&nbsp;</div><div>&nbsp; &nbsp; LblDesc.Margins.Left = 10;&nbsp;</div><div>&nbsp; &nbsp; LblDesc.Margins.Right = 10;</div><div>&nbsp; &nbsp; LblDesc.Margins.Top=10;</div><div>&nbsp; &nbsp; clComponent.SetupComponent(LblDesc, '{"TextColor":"#64748B", "TextSize":13, "TextVerticalAlign":"top"}');</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; LblName = MainForm.AddNewProLabel(TopLayout, 'Lbl_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString, Clomosy.DBSQLiteQuery.FieldByName('task_name').AsString);</div><div>&nbsp; &nbsp; LblName.Align = alLeft;&nbsp;</div><div>&nbsp; &nbsp; LblName.Width = 200;&nbsp;</div><div>&nbsp; &nbsp; LblName.Margins.Left = 10;</div><div>&nbsp; &nbsp; LblName.clProSettings.FontSize = 18;&nbsp;</div><div>&nbsp; &nbsp; LblName.clProSettings.FontColor = clAlphaColor.clHexToColor('#1E293B');&nbsp;</div><div>&nbsp; &nbsp; LblName.clProSettings.TextSettings.Font.Style = &#091;fsBold&#093;;</div><div>&nbsp; &nbsp; LblName.SetclProSettings(LblName.clProSettings);</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; DaysDiff = Clomosy.DBSQLiteQuery.FieldByName('days_left').AsInteger;</div><div>&nbsp; &nbsp; if (DaysDiff &lt; 3) {&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; DaysText = IntToStr(DaysDiff) + ' gün kaldı!';&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; BandColor = '#FEE2E2';&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; TextColor = '#DC2626';&nbsp;</div><div>&nbsp; &nbsp; } else {&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; DaysText = IntToStr(DaysDiff) + ' gün kaldı';&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; BandColor = '#DCFCE7';&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; TextColor = '#15803D';&nbsp;</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; if (DaysDiff &lt; 0) { DaysText = 'Süre Doldu'; BandColor = '#FECACA'; TextColor = '#B91C1C'; }</div><div><br></div><div>&nbsp; &nbsp; DateBandPnl = MainForm.AddNewProPanel(CardPnl, 'DBand_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString);</div><div>&nbsp; &nbsp; DateBandPnl.Align = alTop;&nbsp;</div><div>&nbsp; &nbsp; DateBandPnl.Height = 30;&nbsp;</div><div>&nbsp; &nbsp; DateBandPnl.Margins.Left = 10;</div><div>&nbsp; &nbsp; DateBandPnl.Margins.Right = 10;&nbsp;</div><div>&nbsp; &nbsp; DateBandPnl.Margins.Top = 0;</div><div>&nbsp; &nbsp; DateBandPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor(BandColor);</div><div>&nbsp; &nbsp; DateBandPnl.clProSettings.RoundHeight = 8;&nbsp;</div><div>&nbsp; &nbsp; DateBandPnl.clProSettings.RoundWidth = 8;</div><div>&nbsp; &nbsp; DateBandPnl.SetclProSettings(DateBandPnl.clProSettings);</div><div>&nbsp;&nbsp;</div><div>&nbsp; &nbsp; LblDateTxt = MainForm.AddNewProLabel(DateBandPnl, 'DtTxt_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString, '&#128197; ' + Clomosy.DBSQLiteQuery.FieldByName('task_date').AsString);</div><div>&nbsp; &nbsp; LblDateTxt.Align = alLeft; LblDateTxt.Width = 120;&nbsp;</div><div>&nbsp; &nbsp; LblDateTxt.Margins.Left = 10;</div><div>&nbsp; &nbsp; LblDateTxt.Margins.Top=5;</div><div>&nbsp; &nbsp; clComponent.SetupComponent(LblDateTxt, '{"TextColor":"'+TextColor+'", "TextSize":12, "TextBold":"yes"}');</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; LblDaysLeft = MainForm.AddNewProLabel(DateBandPnl, 'DLft_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString, DaysText);</div><div>&nbsp; &nbsp; LblDaysLeft.Align = alRight; LblDaysLeft.Width = 100;&nbsp;</div><div>&nbsp; &nbsp; LblDaysLeft.Margins.Right = 10;</div><div>&nbsp; &nbsp; LblDaysLeft.Margins.Top=5;</div><div>&nbsp; &nbsp; clComponent.SetupComponent(LblDaysLeft, '{"TextHorizontalAlign":"right", "TextColor":"'+TextColor+'", "TextSize":12, "TextBold":"yes"}');</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; LblWorker = MainForm.AddNewProLabel(CardPnl, 'Wrk_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString,&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; 'Sorumlu: ' + Clomosy.DBSQLiteQuery.FieldByName('task_worker').AsString + ' | Kontrol: ' + Clomosy.DBSQLiteQuery.FieldByName('task_control').AsString);</div><div>&nbsp; &nbsp; LblWorker.Align = alTop;&nbsp;</div><div>&nbsp; &nbsp; LblWorker.Height=25;&nbsp;</div><div>&nbsp; &nbsp; LblWorker.Margins.Left=10;&nbsp;</div><div>&nbsp; &nbsp; LblWorker.Margins.Top=5;</div><div>&nbsp; &nbsp; clComponent.SetupComponent(LblWorker, '{"TextColor":"#475569", "TextSize":11}');</div><div><br></div><div>&nbsp; &nbsp; ProgBarBack = MainForm.AddNewProPanel(CardPnl, 'PbBack_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString);</div><div>&nbsp; &nbsp; ProgBarBack.Align = alTop;&nbsp;</div><div>&nbsp; &nbsp; ProgBarBack.Height = 8;&nbsp;</div><div>&nbsp; &nbsp; ProgBarBack.Margins.Top=5;&nbsp;</div><div>&nbsp; &nbsp; ProgBarBack.Margins.Left=10;</div><div>&nbsp; &nbsp; ProgBarBack.Margins.Right=10;</div><div>&nbsp; &nbsp; ProgBarBack.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F1F5F9');&nbsp;</div><div>&nbsp; &nbsp; ProgBarBack.clProSettings.RoundHeight=4;&nbsp;</div><div>&nbsp; &nbsp; ProgBarBack.clProSettings.RoundWidth=4;</div><div>&nbsp; &nbsp; ProgBarBack.SetclProSettings(ProgBarBack.clProSettings);</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; CurrentProg = Clomosy.DBSQLiteQuery.FieldByName('task_progress').AsInteger;</div><div>&nbsp; &nbsp; ProgBarFront = MainForm.AddNewProPanel(ProgBarBack, 'PbFront_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString);</div><div>&nbsp; &nbsp; ProgBarFront.Align = alLeft;&nbsp;</div><div>&nbsp; &nbsp; ProgBarFront.Width = (CurrentProg * 3);&nbsp;</div><div>&nbsp; &nbsp; ProgBarFront.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#e66700');&nbsp;</div><div>&nbsp; &nbsp; ProgBarFront.clProSettings.RoundHeight=4;&nbsp;</div><div>&nbsp; &nbsp; ProgBarFront.clProSettings.RoundWidth=4;</div><div>&nbsp; &nbsp; ProgBarFront.SetclProSettings(ProgBarFront.clProSettings);</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; LblPercent = MainForm.AddNewProLabel(CardPnl, 'Prc_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString, '%'+IntToStr(CurrentProg));</div><div>&nbsp; &nbsp; LblPercent.Align = alTop;&nbsp;</div><div>&nbsp; &nbsp; LblPercent.Height=15</div><div>&nbsp; &nbsp; LblPercent.Margins.Right=15;</div><div>&nbsp; &nbsp; clComponent.SetupComponent(LblPercent, '{"TextHorizontalAlign":"right", "TextColor":"#2563EB", "TextSize":10, "TextBold":"yes"}');</div><div><br></div><div>&nbsp; &nbsp; BottomLayout = MainForm.AddNewProPanel(CardPnl, 'Btns_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString);</div><div>&nbsp; &nbsp; BottomLayout.Align = alBottom;</div><div>&nbsp; &nbsp; BottomLayout.Height = 45;&nbsp;</div><div>&nbsp; &nbsp; BottomLayout.Margins.Bottom = 10;</div><div>&nbsp; &nbsp; BottomLayout.clProSettings.BackgroundColor = clAlphaColor.clWhite;&nbsp;</div><div>&nbsp; &nbsp; BottomLayout.SetclProSettings(BottomLayout.clProSettings);</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; BtnDet = MainForm.AddNewProButton(BottomLayout, 'Det_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString, 'Detay');</div><div>&nbsp; &nbsp; BtnDet.Align = alLeft;</div><div>&nbsp; &nbsp; BtnDet.Width = 70;&nbsp;</div><div>&nbsp; &nbsp; BtnDet.Margins.Left = 10;&nbsp;</div><div>&nbsp; &nbsp; BtnDet.clTagStr = Clomosy.DBSQLiteQuery.FieldByName('id').AsString;</div><div>&nbsp; &nbsp; clComponent.SetupComponent(BtnDet, '{"BackgroundColor":"#cce2ff", "TextColor":"#006cfa", "RoundHeight":8, "RoundWidth":8, "TextSize":11, "TextBold":"yes"}');</div><div>&nbsp; &nbsp; MainForm.AddNewEvent(BtnDet, tbeOnClick, 'BtnDetailClick');</div><div><br></div><div>&nbsp; &nbsp; BtnDel = MainForm.AddNewProButton(BottomLayout, 'Del_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString, 'Sil');</div><div>&nbsp; &nbsp; BtnDel.Align = alRight;&nbsp;</div><div>&nbsp; &nbsp; BtnDel.Width = 60;</div><div>&nbsp; &nbsp; BtnDel.Margins.Right = 10;</div><div>&nbsp; &nbsp; BtnDel.clTagStr = Clomosy.DBSQLiteQuery.FieldByName('id').AsString;</div><div>&nbsp; &nbsp; clComponent.SetupComponent(BtnDel, '{"BackgroundColor":"#ffcccc", "TextColor":"#ff0000", "RoundHeight":8, "RoundWidth":8, "TextSize":11, "TextBold":"yes"}');</div><div>&nbsp; &nbsp; MainForm.AddNewEvent(BtnDel, tbeOnClick, 'BtnDeleteClick');</div><div><br></div><div>&nbsp; &nbsp; BtnEdit = MainForm.AddNewProButton(BottomLayout, 'Edt_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString, 'Düzenle');</div><div>&nbsp; &nbsp; BtnEdit.Align = alRight;&nbsp;</div><div>&nbsp; &nbsp; BtnEdit.Width = 70;&nbsp;</div><div>&nbsp; &nbsp; BtnEdit.Margins.Right = 5;</div><div>&nbsp; &nbsp; BtnEdit.clTagStr = Clomosy.DBSQLiteQuery.FieldByName('id').AsString;</div><div>&nbsp; &nbsp; clComponent.SetupComponent(BtnEdit, '{"BackgroundColor":"#ccffe5", "TextColor":"#00b859", "RoundHeight":8, "RoundWidth":8, "TextSize":11, "TextBold":"yes"}');</div><div>&nbsp; &nbsp; MainForm.AddNewEvent(BtnEdit, tbeOnClick, 'BtnEditClick');</div><div><br></div><div>&nbsp; &nbsp; Clomosy.DBSQLiteQuery.Next;</div><div>&nbsp; }</div><div>}</div><div><br></div><div>{</div><div>&nbsp; MainForm = TclForm.Create(Self);</div><div>&nbsp; SetupDatabase;</div><div>&nbsp;&nbsp;</div><div>&nbsp; HeaderPnl = MainForm.AddNewProPanel(MainForm, 'HeaderPnl');</div><div>&nbsp; HeaderPnl.Align = alTop;&nbsp;</div><div>&nbsp; HeaderPnl.Height = 80;&nbsp;</div><div>&nbsp; HeaderPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');</div><div>&nbsp; HeaderPnl.SetclProSettings(HeaderPnl.clProSettings);</div><div>&nbsp;&nbsp;</div><div>&nbsp; TitleIcon = MainForm.AddNewProImage(HeaderPnl, 'TitleIcon');</div><div>&nbsp; TitleIcon.Align = alLeft;&nbsp;</div><div>&nbsp; TitleIcon.Width = 40;&nbsp;</div><div>&nbsp; TitleIcon.Height = 40;&nbsp;</div><div>&nbsp; TitleIcon.Margins.Left = 20;&nbsp;</div><div>&nbsp; TitleIcon.Margins.Top = 20;</div><div>&nbsp; MainForm.setImage(TitleIcon, '<a href="https://static.vecteezy.com/system/resources/previews/056/952/041/n&#111;n_2x/queue-simple-music-player-butt&#111;n-vector.jpg" target="_blank" rel="nofollow">https://static.vecteezy.com/system/resources/previews/056/952/041/non_2x/queue-simple-music-player-button-vector.jpg</a>');</div><div><br></div><div>&nbsp; TitleLbl = MainForm.AddNewProLabel(HeaderPnl, 'TitleLbl', 'Görev Yöneticisi');</div><div>&nbsp; TitleLbl.Align = alLeft;&nbsp;</div><div>&nbsp; TitleLbl.Margins.Left=10;&nbsp;</div><div>&nbsp; TitleLbl.Margins.Top=25;&nbsp;</div><div>&nbsp; TitleLbl.Width=150;</div><div>&nbsp; TitleLbl.clProSettings.FontSize=18;&nbsp;</div><div>&nbsp; TitleLbl.clProSettings.FontColor=clAlphaColor.clHexToColor('#111827');&nbsp;</div><div>&nbsp; TitleLbl.clProSettings.TextSettings.Font.Style=&#091;fsBold&#093;;</div><div>&nbsp; TitleLbl.SetclProSettings(TitleLbl.clProSettings);</div><div>&nbsp;&nbsp;</div><div>&nbsp; AddTaskBtn = MainForm.AddNewProButton(HeaderPnl, 'AddTaskBtn', '+ Yeni');</div><div>&nbsp; AddTaskBtn.Align = alRight;</div><div>&nbsp; AddTaskBtn.Width=80;&nbsp;</div><div>&nbsp; AddTaskBtn.Height=40;&nbsp;</div><div>&nbsp; AddTaskBtn.Margins.Right=40;&nbsp;</div><div>&nbsp; AddTaskBtn.Margins.Top=20;</div><div>&nbsp; clComponent.SetupComponent(AddTaskBtn, '{"BackgroundColor":"#f9fee1", "TextColor":"#c57d02", "RoundHeight":10}');</div><div>&nbsp;&nbsp;</div><div>&nbsp;&nbsp;</div><div>&nbsp; MainForm.AddNewEvent(AddTaskBtn, tbeOnClick, 'newTaskClick');</div><div>&nbsp;&nbsp;</div><div>&nbsp; FooterPnl = MainForm.AddNewProPanel(MainForm, 'FooterPnl');</div><div>&nbsp; FooterPnl.Align = alClient;</div><div>&nbsp; FooterPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F1F5F9');&nbsp;</div><div>&nbsp; FooterPnl.SetclProSettings(FooterPnl.clProSettings);</div><div>&nbsp;&nbsp;</div><div>&nbsp; RefreshTaskList;</div><div>&nbsp; MainForm.Run;</div><div>}</div><a href="https://static.cloudflareinsights.com/beac&#111;n.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" target="_blank" rel="nofollow">https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015"</a> integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{&quot;version&quot;:&quot;2024.11.0&quot;,&quot;token&quot;:&quot;439455f3e46c40b98dbd42a2f1a954d8&quot;,&quot;r&quot;:1,&quot;server_timing&quot;:{&quot;name&quot;:{&quot;cfCacheStatus&quot;:true,&quot;cfEdge&quot;:true,&quot;cfExtPri&quot;:true,&quot;cfL4&quot;:true,&quot;cfOrigin&quot;:true,&quot;cfSpeedBrain&quot;:true},&quot;location_startswith&quot;:null}}" crossorigin="anonymous">]]>
   </description>
   <pubDate>Wed, 18 Feb 2026 15:44:28 +0000</pubDate>
   <guid isPermaLink="true">https://forum.clomosy.com.tr/forum_posts.asp?TID=1362&amp;PID=3063#3063</guid>
  </item> 
  <item>
   <title><![CDATA[Pointer Hatası : Merhaba Nevra,Kodunuzu atarsan&#305;z...]]></title>
   <link>https://forum.clomosy.com.tr/forum_posts.asp?TID=1362&amp;PID=3062#3062</link>
   <description>
    <![CDATA[<strong>Yazar:</strong> <a href="https://forum.clomosy.com.tr/member_profile.asp?PF=347">Eren Ö.</a><br /><strong>Konu:</strong> 1362<br /><strong>Gönderim Zamanı:</strong> 18&nbsp;Şubat&nbsp;2026 Saat 14:35<br /><br />Merhaba Nevra,<br><br>Kodunuzu atarsanız inceleyip geri dönüş sağlayacağım.<a href="https://static.cloudflareinsights.com/beac&#111;n.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" target="_blank" rel="nofollow">https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015"</a> integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{&quot;version&quot;:&quot;2024.11.0&quot;,&quot;token&quot;:&quot;439455f3e46c40b98dbd42a2f1a954d8&quot;,&quot;r&quot;:1,&quot;server_timing&quot;:{&quot;name&quot;:{&quot;cfCacheStatus&quot;:true,&quot;cfEdge&quot;:true,&quot;cfExtPri&quot;:true,&quot;cfL4&quot;:true,&quot;cfOrigin&quot;:true,&quot;cfSpeedBrain&quot;:true},&quot;location_startswith&quot;:null}}" crossorigin="anonymous">]]>
   </description>
   <pubDate>Wed, 18 Feb 2026 14:35:43 +0000</pubDate>
   <guid isPermaLink="true">https://forum.clomosy.com.tr/forum_posts.asp?TID=1362&amp;PID=3062#3062</guid>
  </item> 
  <item>
   <title><![CDATA[Pointer Hatası : Merhabalar,Geli&#351;tirdi&#287;im uygulamada...]]></title>
   <link>https://forum.clomosy.com.tr/forum_posts.asp?TID=1362&amp;PID=3061#3061</link>
   <description>
    <![CDATA[<strong>Yazar:</strong> <a href="https://forum.clomosy.com.tr/member_profile.asp?PF=372">Nevra Nur</a><br /><strong>Konu:</strong> 1362<br /><strong>Gönderim Zamanı:</strong> 18&nbsp;Şubat&nbsp;2026 Saat 13:33<br /><br />Merhabalar,<div>Geliştirdiğim uygulamada&nbsp; çalıştırdığım butonlar birkaç kullanımdan sonra 'Invalid pointer operation.' hatası veriyor . Hatanın sebebi ne olabilir?</div>]]>
   </description>
   <pubDate>Wed, 18 Feb 2026 13:33:30 +0000</pubDate>
   <guid isPermaLink="true">https://forum.clomosy.com.tr/forum_posts.asp?TID=1362&amp;PID=3061#3061</guid>
  </item> 
 </channel>
</rss>