![]() |
| 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. |
Pointer Hatası |
Yanıt Yaz
|
| Yazar | |
Nevra Nur
Yeni Üye
Kayıt Tarihi: 09 Şubat 2026 Konum: konya Durum: Aktif Değil Puanlar: 34 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Nevra Nur
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Konu: Pointer HatasıGönderim Zamanı: 22 Saat 9 Dakika Önce Saat 13:33 |
|
Merhabalar,
Geliştirdiğim uygulamada çalıştırdığım butonlar birkaç kullanımdan sonra 'Invalid pointer operation.' hatası veriyor . Hatanın sebebi ne olabilir?
|
|
![]() |
|
Eren Ö.
Yeni Üye
Kayıt Tarihi: 25 Eylül 2025 Durum: Aktif Değil Puanlar: 35 |
Mesaj Seçenekleri
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 21 Saat 7 Dakika Önce Saat 14:35 |
|
Merhaba Nevra,
Kodunuzu atarsanız inceleyip geri dönüş sağlayacağım.https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous"> |
|
![]() |
|
Nevra Nur
Yeni Üye
Kayıt Tarihi: 09 Şubat 2026 Konum: konya Durum: Aktif Değil Puanlar: 34 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Nevra Nur
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 19 Saat 58 Dakika Önce Saat 15:44 |
|
var MainForm, AddForm, DetailForm, AddStepForm, ProgressForm: TclForm; HeaderPnl, FooterPnl, TopRowPnl: TclProPanel; AddTaskBtn, SaveBtn, SaveStepBtn, BtnAddStep, BtnAddDynamicStep, BtnSaveProgress: TclProButton; TaskScrollBox, StepScrollBox, DynamicStepScrollBox: TclVertScrollBox; d_LblTitle, d_LblDesc, d_LblDate, d_LblStatus, d_LblInfo: TclProLabel; d_SliderContainer, d_SliderBar, d_SliderKnob, d_HeaderContainer, d_InfoContainer, d_StepsContainer: TclProPanel; d_YuzdeLbl: TclProLabel; d_Surukleniyor: Boolean; d_HedefX: Integer; TaskNameEdt, TaskDescEdt, TaskControlEdt, TaskWorkerEdt,TmpNameEdt: TclEdit; StepNameEdt, ProgressEdit: TclEdit; TaskDateEdt, StepDateEdt: TclDateEdit; TitleLbl, SubTitleLbl, LblStepsHeader: TclProLabel; TitleIcon: TclProImage; selID, selStepID, queryStr: string; isEditMode, isStepEditMode: Boolean; AddedStepCount: Integer; void RefreshTaskList; forward; void RefreshStepList; forward; void OpenProgressForm; forward; void SaveManualProgress; forward; void AddNewStepClick; forward; void OpenAddStepForm; forward; void SaveStepToDB; forward; void DeleteStep; forward; void EditStepClick; forward; void OpenDetailForm; forward; void OpenStepProgressClick; forward; void CalculateTaskAverage; forward; void SetupDatabase; { try Clomosy.DBSQLiteConnect(Clomosy.AppFilesPath + 'Database.db3', ''); Clomosy.DBSQLiteQuery.SQL.Text = 'CREATE TABLE IF NOT EXISTS MyTasks (' + 'id INTEGER PRIMARY KEY AUTOINCREMENT,' + 'task_name TEXT, task_desc TEXT, task_worker TEXT, ' + 'task_control TEXT, task_date TEXT, task_progress INTEGER DEFAULT 0)'; Clomosy.DBSQLiteQuery.OpenOrExecute; Clomosy.DBSQLiteQuery.SQL.Text = 'CREATE TABLE IF NOT EXISTS TaskSteps (' + 'step_id INTEGER PRIMARY KEY AUTOINCREMENT,' + 'task_id INTEGER,' + 'step_title TEXT, step_date TEXT, step_is_done INTEGER DEFAULT 0)'; Clomosy.DBSQLiteQuery.OpenOrExecute; except ShowMessage('Veritabanı Hatası: ' + LastExceptionMessage); } } // --- ort hesaplama --- void CalculateTaskAverage; var AvgVal: Float; AvgInt: Integer; { Clomosy.DBSQLiteQuery.SQL.Text = 'SELECT AVG(step_is_done) as avg_val FROM TaskSteps WHERE task_id = ' + selID; Clomosy.DBSQLiteQuery.OpenOrExecute; if (Clomosy.DBSQLiteQuery.FieldByName('avg_val').AsString == '') { AvgInt = 0; } else { AvgVal = Clomosy.DBSQLiteQuery.FieldByName('avg_val').AsFloat; AvgInt = Round(AvgVal); } Clomosy.DBSQLiteQuery.SQL.Text = 'UPDATE MyTasks SET task_progress = ' + IntToStr(AvgInt) + ' WHERE id = ' + selID; Clomosy.DBSQLiteQuery.OpenOrExecute; if (d_YuzdeLbl <> nil) d_YuzdeLbl.Text = '%' + IntToStr(AvgInt); } void AddDynamicStepRow;//yeni görev ekle sayfasındaki adımlerı eklediğim kısım var NewStepPnl: TclProPanel; NewNameEdt, NewDateEdt: TclEdit; { AddedStepCount = AddedStepCount + 1; NewStepPnl = AddForm.AddNewProPanel(DynamicStepScrollBox, 'DynStepPnl_' + IntToStr(AddedStepCount)); NewStepPnl.Align = alTop; NewStepPnl.Height = 110; NewStepPnl.Margins.Top = 10; NewStepPnl.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E5E7EB'); NewStepPnl.clProSettings.BorderWidth = 1; NewStepPnl.clProSettings.RoundHeight = 10; NewStepPnl.clProSettings.BackgroundColor = clAlphaColor.clWhite; NewStepPnl.SetclProSettings(NewStepPnl.clProSettings); NewNameEdt = AddForm.AddNewProEdit(NewStepPnl, 'DynStepName_' + IntToStr(AddedStepCount), 'Adım ' + IntToStr(AddedStepCount) + ' Başlığı'); NewNameEdt.Align = alTop; NewNameEdt.Height = 45; NewNameEdt.Margins.Left = 5; NewNameEdt.Margins.Right =5; NewNameEdt.Margins.Top = 5; NewDateEdt = AddForm.AddNewProEdit(NewStepPnl, 'DynStepDate_' + IntToStr(AddedStepCount), 'Tarih (GG.AA.YYYY)'); NewDateEdt.Align = alTop; NewDateEdt.Height = 45; NewDateEdt.Margins.Left = 5; NewDateEdt.Margins.Right = 5; NewDateEdt.Margins.Top = 5; } void SaveStepToDB;//adımalrı kaydetme { if(StepNameEdt.Text=='') { ShowMessage('Adım başlığını giriniz:'); exit; } try if (isStepEditMode) { Clomosy.DBSQLiteQuery.SQL.Text = 'UPDATE TaskSteps SET step_title = '''+StepNameEdt.Text+''', step_date = '''+StepDateEdt.Text+''' WHERE step_id = ' + selStepID; } else { Clomosy.DBSQLiteQuery.SQL.Text = 'INSERT INTO TaskSteps (task_id, step_title, step_date, step_is_done) VALUES ('+selID+', '''+StepNameEdt.Text+''', '''+StepDateEdt.Text+''', 0)'; } Clomosy.DBSQLiteQuery.OpenOrExecute; // Yeni adım eklendiğinde ortalamayı tekrar hesapla CalculateTaskAverage; AddStepForm.clHide; RefreshStepList; except ShowMessage('İşlem yapılamadı: ' + LastExceptionMessage); } } void OpenAddStepForm;//yeni adımı ekleme düzen pencereli { if (AddStepForm <> nil) { AddStepForm.Free; AddStepForm = nil; } AddStepForm = TclForm.Create(Self); if (isStepEditMode) AddStepForm.clSetCaption('Adımı Düzenle'); else AddStepForm.clSetCaption('Yeni Adım Ekle'); AddStepForm.SetFormColor('#FFFFFF', '', clGNone); StepNameEdt = AddStepForm.AddNewProEdit(AddStepForm, 'StepNameEdt', 'Adım'); StepNameEdt.Align = alTop; StepNameEdt.Height = 50; StepNameEdt.Margins.Top=20; StepDateEdt = AddStepForm.AddNewProEdit(AddStepForm, 'StepDateEdt', 'Tarih (GG.AA.YYYY)'); StepDateEdt.Align = alTop; StepDateEdt.Height = 50; if (isStepEditMode) { Clomosy.DBSQLiteQuery.SQL.Text = 'SELECT * FROM TaskSteps WHERE step_id = ' + selStepID; Clomosy.DBSQLiteQuery.OpenOrExecute; StepNameEdt.Text = Clomosy.DBSQLiteQuery.FieldByName('step_title').AsString; StepDateEdt.Text = Clomosy.DBSQLiteQuery.FieldByName('step_date').AsString; } SaveStepBtn = AddStepForm.AddNewProButton(AddStepForm, 'SaveStepBtn', 'Kaydet'); SaveStepBtn.Align = alBottom; SaveStepBtn.Height = 50; clComponent.SetupComponent(SaveStepBtn, '{"BackgroundColor":"#f0e1fe", "TextColor":"#6302c5", "RoundHeight":10}'); AddStepForm.AddNewEvent(SaveStepBtn, tbeOnClick, 'SaveStepToDB'); AddStepForm.Run; } void EditStepClick;//düzenleye bastığımda bastığımın Id yi tutuyor { selStepID = TclProButton(DetailForm.clSender).clTagStr; isStepEditMode = True; OpenAddStepForm; //giriş pencersini aç } void AddNewStepClick;// yeni adım ekleme { isStepEditMode = False; OpenAddStepForm; } void OpenStepProgressClick;// Adım ilerleme butonuna tıklanınca { selStepID = TclProButton(DetailForm.clSender).clTagStr; OpenProgressForm; } void DeleteStep;//adım silme { selStepID = TclProButton(DetailForm.clSender).clTagStr; if (Clomosy.Ask('Bu adımı silmek istiyor musunuz?')) { Clomosy.DBSQLiteQuery.SQL.Text = 'DELETE FROM TaskSteps WHERE step_id = ' + selStepID; Clomosy.DBSQLiteQuery.OpenOrExecute; // Adım silinince gebel ortalamayı tekrar hesaplamak için CalculateTaskAverage; RefreshStepList; } } void RefreshStepList;// ana ekrandaki görev listesi var StepCard, StepInfoPnl: TclProPanel; LblStepName, LblStepDate, LblStepStatus: TclProLabel; BtnCheck, BtnDelStep, BtnEditStep, BtnProgStep: TclProButton; isDone, DaysDiff: Integer; StatusColor, StatusIcon, DaysText, BandColor,InfoStr: String; { if (StepScrollBox <> nil) { StepScrollBox.Free; StepScrollBox = nil; } StepScrollBox = DetailForm.AddNewVertScrollBox(d_StepsContainer, 'StepScrollBox'); StepScrollBox.Align = alClient; Clomosy.DBSQLiteQuery.Close; Clomosy.DBSQLiteQuery.SQL.Text = '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 ' + 'FROM TaskSteps WHERE task_id = ' + selID + ' ORDER BY step_id DESC'; Clomosy.DBSQLiteQuery.OpenOrExecute; while (not Clomosy.DBSQLiteQuery.Eof) { isDone = Clomosy.DBSQLiteQuery.FieldByName('step_is_done').AsInteger; StepCard = DetailForm.AddNewProPanel(StepScrollBox, 'StpCrd_' + Clomosy.DBSQLiteQuery.FieldByName('step_id').AsString); StepCard.Align = alTop; StepCard.Height = 85; StepCard.Margins.Top = 10; StepCard.Margins.Left = 10; StepCard.Margins.Right = 10; StepCard.clProSettings.RoundHeight = 10; StepCard.clProSettings.RoundWidth = 10; StepCard.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E5E7EB'); StepCard.clProSettings.BorderWidth = 1; StepCard.clProSettings.BackgroundColor = clAlphaColor.clWhite; StepCard.SetclProSettings(StepCard.clProSettings); // Silme Buton BtnDelStep = DetailForm.AddNewProButton(StepCard, 'DelStp_' + Clomosy.DBSQLiteQuery.FieldByName('step_id').AsString, 'Sil'); BtnDelStep.Align = alRight; BtnDelStep.Width = 40; BtnDelStep.Margins.Right=5; BtnDelStep.Margins.Top=20; BtnDelStep.Margins.Bottom=20; BtnDelStep.clTagStr = Clomosy.DBSQLiteQuery.FieldByName('step_id').AsString; clComponent.SetupComponent(BtnDelStep, '{"BackgroundColor":"#ffcccc", "TextColor":"#ff0000", "TextSize":11, "RoundHeight":10, "RoundWidth":10, "TextBold":"yes"}'); DetailForm.AddNewEvent(BtnDelStep, tbeOnClick, 'DeleteStep'); // Düzenle Butonu BtnEditStep = DetailForm.AddNewProButton(StepCard, 'EdtStp_' + Clomosy.DBSQLiteQuery.FieldByName('step_id').AsString, 'Düzenle'); BtnEditStep.Align = alRight; BtnEditStep.Width = 40; BtnEditStep.Margins.Right=5; BtnEditStep.Margins.Top=20; BtnEditStep.Margins.Bottom=20; BtnEditStep.clTagStr = Clomosy.DBSQLiteQuery.FieldByName('step_id').AsString; clComponent.SetupComponent(BtnEditStep, '{"BackgroundColor":"#e0f2fe", "TextColor":"#0284c7", "TextSize":11, "RoundHeight":10, "RoundWidth":10, "TextBold":"yes"}'); DetailForm.AddNewEvent(BtnEditStep, tbeOnClick, 'EditStepClick'); //İlerleme Butonu BtnProgStep = DetailForm.AddNewProButton(StepCard, 'PrgStp_' + Clomosy.DBSQLiteQuery.FieldByName('step_id').AsString, '%'); BtnProgStep.Align = alRight; BtnProgStep.Width = 40; BtnProgStep.Margins.Right=5; BtnProgStep.Margins.Top=20; BtnProgStep.Margins.Bottom=20; BtnProgStep.clTagStr = Clomosy.DBSQLiteQuery.FieldByName('step_id').AsString; clComponent.SetupComponent(BtnProgStep, '{"BackgroundColor":"#fee1f6", "TextColor":"#c50256", "TextSize":13, "RoundHeight":10, "RoundWidth":10, "TextBold":"yes"}'); DetailForm.AddNewEvent(BtnProgStep, tbeOnClick, 'OpenStepProgressClick'); StepInfoPnl = DetailForm.AddNewProPanel(StepCard, 'InfPnl_' + Clomosy.DBSQLiteQuery.FieldByName('step_id').AsString); StepInfoPnl.Align = alClient; StepInfoPnl.clProSettings.BackgroundColor = clAlphaColor.clWhite; StepInfoPnl.SetclProSettings(StepInfoPnl.clProSettings); LblStepName = DetailForm.AddNewProLabel(StepInfoPnl, 'StpNm_' + Clomosy.DBSQLiteQuery.FieldByName('step_id').AsString, Clomosy.DBSQLiteQuery.FieldByName('step_title').AsString); LblStepName.Align = alTop; LblStepName.Height = 25; LblStepName.Margins.Left = 10; LblStepName.Margins.Top=10; clComponent.SetupComponent(LblStepName, '{"TextSize":13, "TextColor":"#1F2937", "TextBold":"yes"}'); // Tarih ve Durum DaysDiff = Clomosy.DBSQLiteQuery.FieldByName('days_left').AsInteger; if (DaysDiff < 0) DaysText = 'Süre Doldu'; else DaysText = IntToStr(DaysDiff) + ' gün kaldı'; InfoStr = '📅 ' + Clomosy.DBSQLiteQuery.FieldByName('step_date').AsString + ' | ' + DaysText; if (isDone > 0) { InfoStr = InfoStr + ' | %' + IntToStr(isDone) + ' Tamamlandı'; } if (isDone == 100) { InfoStr = InfoStr + ' ✅'; } LblStepDate = DetailForm.AddNewProLabel(StepInfoPnl, 'StpDt_' + Clomosy.DBSQLiteQuery.FieldByName('step_id').AsString, InfoStr); LblStepDate.Align = alTop; LblStepDate.Margins.Left = 10; clComponent.SetupComponent(LblStepDate, '{"TextSize":11, "TextColor":"#6B7280"}'); Clomosy.DBSQLiteQuery.Next;//döngüyü başa al sıradaki veri için } } void SaveManualProgress//görev adımı için girilen yüzdeyi kaydet var NewProgInt: Integer; { NewProgInt = StrToIntDef(ProgressEdit.Text, -1); if ((NewProgInt >= 0) && (NewProgInt <= 100)) { Clomosy.DBSQLiteQuery.SQL.Text = 'UPDATE TaskSteps SET step_is_done = ' + IntToStr(NewProgInt) + ' WHERE step_id = ' + selStepID; Clomosy.DBSQLiteQuery.OpenOrExecute; CalculateTaskAverage;//bağlı olduğu yüzdeliğin tekrar hesaplanması ShowMessage('Adım ilerlemesi güncellendi. Genel durum yenilendi.'); ProgressForm.clHide; RefreshStepList; } else { ShowMessage('Lütfen 0 ile 100 arasında bir sayı giriniz.'); } } void OpenProgressForm;//yüzde kaydı { if (ProgressForm <> nil) { ProgressForm.Free; ProgressForm = nil; } ProgressForm = TclForm.Create(Self); ProgressForm.clSetCaption('İlerleme Girişi'); ProgressForm.SetFormColor('#FFFFFF', '', clGNone); ProgressEdit = ProgressForm.AddNewProEdit(ProgressForm, 'ProgressEdit', 'Yüzde (0-100)'); ProgressEdit.Align = alTop; ProgressEdit.Height = 50; ProgressEdit.Margins.Top = 30; ProgressEdit.Margins.Left = 20; ProgressEdit.Margins.Right = 20; clComponent.SetupComponent(ProgressEdit, '{"TextType":"number"}'); BtnSaveProgress = ProgressForm.AddNewProButton(ProgressForm, 'BtnSaveProgress', 'Kaydet'); BtnSaveProgress.Align = alBottom; BtnSaveProgress.Height = 50; clComponent.SetupComponent(BtnSaveProgress, '{"BackgroundColor":"#f0e1fe", "TextColor":"#6302c5", "RoundHeight":10}'); ProgressForm.AddNewEvent(BtnSaveProgress, tbeOnClick, 'SaveManualProgress'); ProgressForm.Run; } void OpenDetailForm; var CurrentProgress, MaxWidth: Integer; { if (DetailForm <> nil) { DetailForm.Free; DetailForm = nil; } DetailForm = TclForm.Create(Self); DetailForm.clSetCaption('Görev Detayı'); DetailForm.SetFormColor('#F9FAFB', '', clGNone); Clomosy.DBSQLiteQuery.Close; Clomosy.DBSQLiteQuery.SQL.Text = 'SELECT * FROM MyTasks WHERE id = ' + selID; Clomosy.DBSQLiteQuery.OpenOrExecute; d_HeaderContainer = DetailForm.AddNewProPanel(DetailForm, 'd_HeaderContainer'); d_HeaderContainer.Align = alTop; d_HeaderContainer.Height = 120; d_HeaderContainer.clProSettings.BackgroundColor = clAlphaColor.clWhite; d_HeaderContainer.SetclProSettings(d_HeaderContainer.clProSettings); d_LblTitle = DetailForm.AddNewProLabel(d_HeaderContainer, 'd_LblTitle', Clomosy.DBSQLiteQuery.FieldByName('task_name').AsString); d_LblTitle.Align = alTop; d_LblTitle.Margins.Top = 10; d_LblTitle.Margins.Left = 20; d_LblTitle.Height = 30; d_LblTitle.clProSettings.FontSize = 22; d_LblTitle.clProSettings.FontColor = clAlphaColor.clBlack; d_LblTitle.clProSettings.TextSettings.Font.Style = [fsBold]; d_LblTitle.SetclProSettings(d_LblTitle.clProSettings); d_LblDesc = DetailForm.AddNewProLabel(d_HeaderContainer, 'd_LblDesc', Clomosy.DBSQLiteQuery.FieldByName('task_desc').AsString); d_LblDesc.Align = alClient; d_LblDesc.Margins.Left = 20; d_LblDesc.Margins.Top = 5; d_LblDesc.clProSettings.FontSize = 14; d_LblDesc.clProSettings.FontColor = clAlphaColor.clGray; d_LblDesc.SetclProSettings(d_LblDesc.clProSettings); d_InfoContainer = DetailForm.AddNewProPanel(DetailForm, 'd_InfoContainer'); d_InfoContainer.Align = alTop; d_InfoContainer.Height = 120; d_InfoContainer.Margins.Top = 10; d_InfoContainer.clProSettings.BackgroundColor = clAlphaColor.clWhite; d_InfoContainer.SetclProSettings(d_InfoContainer.clProSettings); d_LblDate = DetailForm.AddNewProLabel(d_InfoContainer, 'd_LblDate', 'Teslim: ' + Clomosy.DBSQLiteQuery.FieldByName('task_date').AsString); d_LblDate.Align = alTop; d_LblDate.Margins.Top=10; d_LblDate.Margins.Left=20; d_LblDate.Height=25; d_LblDate.clProSettings.FontSize = 16; d_LblDate.clProSettings.FontColor = clAlphaColor.clHexToColor('#059669'); d_LblDate.SetclProSettings(d_LblDate.clProSettings); d_LblInfo = DetailForm.AddNewProLabel(d_InfoContainer, 'd_LblInfo', 'Sorumlu: ' + Clomosy.DBSQLiteQuery.FieldByName('task_worker').AsString + #13 + 'Kontrol: ' + Clomosy.DBSQLiteQuery.FieldByName('task_control').AsString); d_LblInfo.Align = alClient; d_LblInfo.Margins.Left=20; d_LblInfo.Margins.Top=5; d_LblInfo.clProSettings.FontSize = 14; d_LblInfo.clProSettings.FontColor = clAlphaColor.clHexToColor('#374151'); d_LblInfo.SetclProSettings(d_LblInfo.clProSettings); d_YuzdeLbl = DetailForm.AddNewProLabel(d_InfoContainer, 'd_YuzdeLbl', '%0'); d_YuzdeLbl.Align = alRight; d_YuzdeLbl.Width = 80; d_YuzdeLbl.Margins.Right=20; d_YuzdeLbl.Margins.Top = 10; clComponent.SetupComponent(d_YuzdeLbl, '{"TextHorizontalAlign":"right", "FontSize":24, "TextColor":"#2563EB", "TextBold":"yes"}'); CurrentProgress = Clomosy.DBSQLiteQuery.FieldByName('task_progress').AsInteger; d_YuzdeLbl.Text = '%' + IntToStr(CurrentProgress); d_StepsContainer = DetailForm.AddNewProPanel(DetailForm, 'd_StepsContainer'); d_StepsContainer.Align = alClient; d_StepsContainer.Margins.Top = 15; d_StepsContainer.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F3F4F6'); d_StepsContainer.SetclProSettings(d_StepsContainer.clProSettings); LblStepsHeader = DetailForm.AddNewProLabel(d_StepsContainer, 'LblStepsHeader', 'Görev Adımları'); LblStepsHeader.Align = alTop; LblStepsHeader.Height = 40; LblStepsHeader.Margins.Left = 20; LblStepsHeader.Margins.Top = 10; clComponent.SetupComponent(LblStepsHeader, '{"FontSize":16, "TextColor":"#111827", "TextBold":"yes"}'); BtnAddStep = DetailForm.AddNewProButton(d_StepsContainer, 'BtnAddStep', '+ Adım Ekle'); BtnAddStep.Align = alTop; BtnAddStep.Height = 40; BtnAddStep.Margins.Left=20; BtnAddStep.Margins.Right=20; clComponent.SetupComponent(BtnAddStep, '{"BackgroundColor":"#FFFFFF", "TextColor":"#2563EB", "BorderColor":"#2563EB", "BorderWidth":1, "RoundHeight":10}'); DetailForm.AddNewEvent(BtnAddStep, tbeOnClick, 'AddNewStepClick'); RefreshStepList; DetailForm.Run; } void SaveTask;//görev verilerini kaydt var i, LastTaskID: Integer; TmpNameEdt, TmpDateEdt: TclEdit; StepText, StepDateStr: String; { if (TaskNameEdt.Text == '') { ShowMessage('Lütfen görev adı giriniz.'); exit; } try Clomosy.DBSQLiteQuery.Close; if (isEditMode) { 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; } else { 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)'; } Clomosy.DBSQLiteQuery.SQL.Text = queryStr; Clomosy.DBSQLiteQuery.OpenOrExecute; if (not isEditMode) { Clomosy.DBSQLiteQuery.Close; Clomosy.DBSQLiteQuery.SQL.Text = 'SELECT MAX(id) as last_id FROM MyTasks';//eklenen ana görevin ıdsi Clomosy.DBSQLiteQuery.OpenOrExecute; LastTaskID = Clomosy.DBSQLiteQuery.FieldByName('last_id').AsInteger; Clomosy.DBSQLiteQuery.Close; for (i = 1 to AddedStepCount)//kullanıcının oluşturduğu adım kadar { TmpNameEdt = TclEdit(AddForm.clFindComponent('DynStepName_' + IntToStr(i))); TmpDateEdt = TclEdit(AddForm.clFindComponent('DynStepDate_' + IntToStr(i))); if (TmpNameEdt <> nil) { StepText = TmpNameEdt.Text; if (StepText <> '') { if (TmpDateEdt.Text <> '') StepDateStr = TmpDateEdt.Text; else StepDateStr = TaskDateEdt.Text; Clomosy.DBSQLiteQuery.Close; Clomosy.DBSQLiteQuery.SQL.Text = 'INSERT INTO TaskSteps (task_id, step_title, step_date, step_is_done) VALUES ('+IntToStr(LastTaskID)+', '''+StepText+''', '''+StepDateStr+''', 0)'; Clomosy.DBSQLiteQuery.OpenOrExecute; } } } } AddForm.clHide; RefreshTaskList; except ShowMessage('Hata: ' + LastExceptionMessage); } } void OpenAddTaskForm; // görev formunu oluşturma var LblStartSteps: TclProLabel; { if (AddForm <> nil) { AddForm.Free; AddForm = nil; } AddForm = TclForm.Create(Self); AddForm.clSetCaption('Görev Formu'); TaskNameEdt = AddForm.AddNewProEdit(AddForm, 'TaskNameEdt', 'Görev Adı'); TaskNameEdt.Align = alTop; TaskNameEdt.Height=50; TaskDescEdt = AddForm.AddNewProEdit(AddForm, 'TaskDescEdt', 'Açıklama'); TaskDescEdt.Align = alTop; TaskDescEdt.Height=50; TaskDateEdt = AddForm.AddNewProEdit(AddForm, 'TaskDateEdt', 'Tarih (GG.AA.YYYY)'); TaskDateEdt.Align = alTop; TaskDateEdt.Height=50; TaskControlEdt = AddForm.AddNewProEdit(AddForm, 'TaskControlEdt', 'Kontrolör'); TaskControlEdt.Align = alTop; TaskControlEdt.Height=50; TaskWorkerEdt = AddForm.AddNewProEdit(AddForm, 'TaskWorkerEdt', 'Yapan Kişi'); TaskWorkerEdt.Align = alTop; TaskWorkerEdt.Height=50; if (not isEditMode) { LblStartSteps = AddForm.AddNewProLabel(AddForm, 'LblStartSteps', 'Başlangıç Adımları (Opsiyonel)'); LblStartSteps.Align = alTop; LblStartSteps.Margins.Top = 15; LblStartSteps.Margins.Left = 10; LblStartSteps.Height = 25; clComponent.SetupComponent(LblStartSteps, '{"TextBold":"yes", "TextColor":"#374151"}'); DynamicStepScrollBox = AddForm.AddNewVertScrollBox(AddForm, 'DynamicStepScrollBox'); DynamicStepScrollBox.Align = alClient; DynamicStepScrollBox.Margins.Bottom = 60; BtnAddDynamicStep = AddForm.AddNewProButton(DynamicStepScrollBox, 'BtnAddDynamicStep', '+ Adım Ekle'); BtnAddDynamicStep.Align = alTop; BtnAddDynamicStep.Height = 40; BtnAddDynamicStep.Margins.Top = 10; BtnAddDynamicStep.Margins.Left = 20; BtnAddDynamicStep.Margins.Right = 20; clComponent.SetupComponent(BtnAddDynamicStep, '{"BackgroundColor":"#FFFFFF", "TextColor":"#2563EB", "BorderColor":"#2563EB", "BorderWidth":1, "BorderType":"dash", "RoundHeight":10}'); AddForm.AddNewEvent(BtnAddDynamicStep, tbeOnClick, 'AddDynamicStepRow'); AddedStepCount = 0; AddDynamicStepRow; } SaveBtn = AddForm.AddNewProButton(AddForm, 'SaveBtn', 'KAYDET'); SaveBtn.Align = alBottom; SaveBtn.Height=50; clComponent.SetupComponent(SaveBtn, '{"BackgroundColor":"#f0e1fe", "TextColor":"#6302c5", "RoundHeight":10}'); AddForm.AddNewEvent(SaveBtn, tbeOnClick, 'SaveTask'); AddForm.Run; } void BtnEditClick; { selID = TclProButton(MainForm.clSender).clTagStr; isEditMode = True; OpenAddTaskForm; Clomosy.DBSQLiteQuery.SQL.Text = 'SELECT * FROM MyTasks WHERE id = ' + selID; Clomosy.DBSQLiteQuery.OpenOrExecute; TaskNameEdt.Text = Clomosy.DBSQLiteQuery.FieldByName('task_name').AsString; TaskDescEdt.Text = Clomosy.DBSQLiteQuery.FieldByName('task_desc').AsString; TaskWorkerEdt.Text = Clomosy.DBSQLiteQuery.FieldByName('task_worker').AsString; TaskControlEdt.Text = Clomosy.DBSQLiteQuery.FieldByName('task_control').AsString; TaskDateEdt.Text = Clomosy.DBSQLiteQuery.FieldByName('task_date').AsString; AddForm.Run; } void BtnDeleteClick; var ClickedBtn: TclProButton; ParentLayout, ParentCard: TclProPanel; { ClickedBtn = TclProButton(MainForm.clSender); selID = ClickedBtn.clTagStr; try if (Clomosy.Ask('Görevi silmek istiyor musunuz?')) { Clomosy.DBSQLiteQuery.SQL.Text = 'DELETE FROM MyTasks WHERE id = ' + selID; Clomosy.DBSQLiteQuery.OpenOrExecute; Clomosy.DBSQLiteQuery.SQL.Text = 'DELETE FROM TaskSteps WHERE task_id = ' + selID; Clomosy.DBSQLiteQuery.OpenOrExecute; ParentLayout = TclProPanel(ClickedBtn.Parent); ParentCard = TclProPanel(ParentLayout.Parent); ParentCard.Height = 0; ParentCard.Visible = False; ShowMessage('Görev silindi.'); } except ShowMessage('Silinemedi: ' + LastExceptionMessage); } } void BtnDetailClick; var ClickedBtn: TclProButton; { ClickedBtn = TclProButton(MainForm.clSender); if (ClickedBtn <> nil) { selID = ClickedBtn.clTagStr; if (selID <> '') { OpenDetailForm; } else { ShowMessage('Hata: Görev ID bulunamadı.'); } } } void newTaskClick; { isEditMode = False; OpenAddTaskForm; AddForm.Run; } //ana ekrandaki void RefreshTaskList; var CardPnl, TopLayout, DateBandPnl, BottomLayout: TclProPanel; LblName, LblDateTxt, LblDaysLeft, LblWorker, LblPercent, LblDesc: TclProLabel; BtnEdit, BtnDel, BtnDet: TclProButton; ProgBarBack, ProgBarFront: TclProPanel; CurrentProg, DaysDiff: Integer; DaysText, BandColor, TextColor: String; { if (TaskScrollBox <> nil) { TaskScrollBox.Free; TaskScrollBox = nil; } TaskScrollBox = MainForm.AddNewVertScrollBox(FooterPnl, 'TaskScrollBox'); TaskScrollBox.Align = alClient; Clomosy.DBSQLiteQuery.Close; Clomosy.DBSQLiteQuery.SQL.Text = '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 ' + 'FROM MyTasks ORDER BY id DESC'; Clomosy.DBSQLiteQuery.OpenOrExecute; while (not Clomosy.DBSQLiteQuery.Eof) { CardPnl = MainForm.AddNewProPanel(TaskScrollBox, 'Card_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString); CardPnl.Align = alTop; CardPnl.Height = 280; CardPnl.Margins.Top = 20; CardPnl.Margins.Left = 15; CardPnl.Margins.Right = 15; CardPnl.clProSettings.BackgroundColor = clAlphaColor.clWhite; CardPnl.clProSettings.RoundHeight = 15; CardPnl.clProSettings.RoundWidth = 15; CardPnl.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E2E8F0'); CardPnl.clProSettings.BorderWidth = 1; CardPnl.SetclProSettings(CardPnl.clProSettings); TopLayout = MainForm.AddNewProPanel(CardPnl, 'Top_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString); TopLayout.Align = alTop; TopLayout.Height = 40; TopLayout.Margins.Top=20; TopLayout.clProSettings.BackgroundColor = clAlphaColor.clWhite; TopLayout.SetclProSettings(TopLayout.clProSettings); LblDesc = MainForm.AddNewProLabel(CardPnl, 'Desc_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString, Clomosy.DBSQLiteQuery.FieldByName('task_desc').AsString); LblDesc.Align = alTop; LblDesc.Height = 40; LblDesc.Margins.Left = 10; LblDesc.Margins.Right = 10; LblDesc.Margins.Top=10; clComponent.SetupComponent(LblDesc, '{"TextColor":"#64748B", "TextSize":13, "TextVerticalAlign":"top"}'); LblName = MainForm.AddNewProLabel(TopLayout, 'Lbl_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString, Clomosy.DBSQLiteQuery.FieldByName('task_name').AsString); LblName.Align = alLeft; LblName.Width = 200; LblName.Margins.Left = 10; LblName.clProSettings.FontSize = 18; LblName.clProSettings.FontColor = clAlphaColor.clHexToColor('#1E293B'); LblName.clProSettings.TextSettings.Font.Style = [fsBold]; LblName.SetclProSettings(LblName.clProSettings); DaysDiff = Clomosy.DBSQLiteQuery.FieldByName('days_left').AsInteger; if (DaysDiff < 3) { DaysText = IntToStr(DaysDiff) + ' gün kaldı!'; BandColor = '#FEE2E2'; TextColor = '#DC2626'; } else { DaysText = IntToStr(DaysDiff) + ' gün kaldı'; BandColor = '#DCFCE7'; TextColor = '#15803D'; } if (DaysDiff < 0) { DaysText = 'Süre Doldu'; BandColor = '#FECACA'; TextColor = '#B91C1C'; } DateBandPnl = MainForm.AddNewProPanel(CardPnl, 'DBand_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString); DateBandPnl.Align = alTop; DateBandPnl.Height = 30; DateBandPnl.Margins.Left = 10; DateBandPnl.Margins.Right = 10; DateBandPnl.Margins.Top = 0; DateBandPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor(BandColor); DateBandPnl.clProSettings.RoundHeight = 8; DateBandPnl.clProSettings.RoundWidth = 8; DateBandPnl.SetclProSettings(DateBandPnl.clProSettings); LblDateTxt = MainForm.AddNewProLabel(DateBandPnl, 'DtTxt_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString, '📅 ' + Clomosy.DBSQLiteQuery.FieldByName('task_date').AsString); LblDateTxt.Align = alLeft; LblDateTxt.Width = 120; LblDateTxt.Margins.Left = 10; LblDateTxt.Margins.Top=5; clComponent.SetupComponent(LblDateTxt, '{"TextColor":"'+TextColor+'", "TextSize":12, "TextBold":"yes"}'); LblDaysLeft = MainForm.AddNewProLabel(DateBandPnl, 'DLft_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString, DaysText); LblDaysLeft.Align = alRight; LblDaysLeft.Width = 100; LblDaysLeft.Margins.Right = 10; LblDaysLeft.Margins.Top=5; clComponent.SetupComponent(LblDaysLeft, '{"TextHorizontalAlign":"right", "TextColor":"'+TextColor+'", "TextSize":12, "TextBold":"yes"}'); LblWorker = MainForm.AddNewProLabel(CardPnl, 'Wrk_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString, 'Sorumlu: ' + Clomosy.DBSQLiteQuery.FieldByName('task_worker').AsString + ' | Kontrol: ' + Clomosy.DBSQLiteQuery.FieldByName('task_control').AsString); LblWorker.Align = alTop; LblWorker.Height=25; LblWorker.Margins.Left=10; LblWorker.Margins.Top=5; clComponent.SetupComponent(LblWorker, '{"TextColor":"#475569", "TextSize":11}'); ProgBarBack = MainForm.AddNewProPanel(CardPnl, 'PbBack_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString); ProgBarBack.Align = alTop; ProgBarBack.Height = 8; ProgBarBack.Margins.Top=5; ProgBarBack.Margins.Left=10; ProgBarBack.Margins.Right=10; ProgBarBack.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F1F5F9'); ProgBarBack.clProSettings.RoundHeight=4; ProgBarBack.clProSettings.RoundWidth=4; ProgBarBack.SetclProSettings(ProgBarBack.clProSettings); CurrentProg = Clomosy.DBSQLiteQuery.FieldByName('task_progress').AsInteger; ProgBarFront = MainForm.AddNewProPanel(ProgBarBack, 'PbFront_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString); ProgBarFront.Align = alLeft; ProgBarFront.Width = (CurrentProg * 3); ProgBarFront.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#e66700'); ProgBarFront.clProSettings.RoundHeight=4; ProgBarFront.clProSettings.RoundWidth=4; ProgBarFront.SetclProSettings(ProgBarFront.clProSettings); LblPercent = MainForm.AddNewProLabel(CardPnl, 'Prc_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString, '%'+IntToStr(CurrentProg)); LblPercent.Align = alTop; LblPercent.Height=15 LblPercent.Margins.Right=15; clComponent.SetupComponent(LblPercent, '{"TextHorizontalAlign":"right", "TextColor":"#2563EB", "TextSize":10, "TextBold":"yes"}'); BottomLayout = MainForm.AddNewProPanel(CardPnl, 'Btns_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString); BottomLayout.Align = alBottom; BottomLayout.Height = 45; BottomLayout.Margins.Bottom = 10; BottomLayout.clProSettings.BackgroundColor = clAlphaColor.clWhite; BottomLayout.SetclProSettings(BottomLayout.clProSettings); BtnDet = MainForm.AddNewProButton(BottomLayout, 'Det_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString, 'Detay'); BtnDet.Align = alLeft; BtnDet.Width = 70; BtnDet.Margins.Left = 10; BtnDet.clTagStr = Clomosy.DBSQLiteQuery.FieldByName('id').AsString; clComponent.SetupComponent(BtnDet, '{"BackgroundColor":"#cce2ff", "TextColor":"#006cfa", "RoundHeight":8, "RoundWidth":8, "TextSize":11, "TextBold":"yes"}'); MainForm.AddNewEvent(BtnDet, tbeOnClick, 'BtnDetailClick'); BtnDel = MainForm.AddNewProButton(BottomLayout, 'Del_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString, 'Sil'); BtnDel.Align = alRight; BtnDel.Width = 60; BtnDel.Margins.Right = 10; BtnDel.clTagStr = Clomosy.DBSQLiteQuery.FieldByName('id').AsString; clComponent.SetupComponent(BtnDel, '{"BackgroundColor":"#ffcccc", "TextColor":"#ff0000", "RoundHeight":8, "RoundWidth":8, "TextSize":11, "TextBold":"yes"}'); MainForm.AddNewEvent(BtnDel, tbeOnClick, 'BtnDeleteClick'); BtnEdit = MainForm.AddNewProButton(BottomLayout, 'Edt_' + Clomosy.DBSQLiteQuery.FieldByName('id').AsString, 'Düzenle'); BtnEdit.Align = alRight; BtnEdit.Width = 70; BtnEdit.Margins.Right = 5; BtnEdit.clTagStr = Clomosy.DBSQLiteQuery.FieldByName('id').AsString; clComponent.SetupComponent(BtnEdit, '{"BackgroundColor":"#ccffe5", "TextColor":"#00b859", "RoundHeight":8, "RoundWidth":8, "TextSize":11, "TextBold":"yes"}'); MainForm.AddNewEvent(BtnEdit, tbeOnClick, 'BtnEditClick'); Clomosy.DBSQLiteQuery.Next; } } { MainForm = TclForm.Create(Self); SetupDatabase; HeaderPnl = MainForm.AddNewProPanel(MainForm, 'HeaderPnl'); HeaderPnl.Align = alTop; HeaderPnl.Height = 80; HeaderPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF'); HeaderPnl.SetclProSettings(HeaderPnl.clProSettings); TitleIcon = MainForm.AddNewProImage(HeaderPnl, 'TitleIcon'); TitleIcon.Align = alLeft; TitleIcon.Width = 40; TitleIcon.Height = 40; TitleIcon.Margins.Left = 20; TitleIcon.Margins.Top = 20; MainForm.setImage(TitleIcon, 'https://static.vecteezy.com/system/resources/previews/056/952/041/non_2x/queue-simple-music-player-button-vector.jpg'); TitleLbl = MainForm.AddNewProLabel(HeaderPnl, 'TitleLbl', 'Görev Yöneticisi'); TitleLbl.Align = alLeft; TitleLbl.Margins.Left=10; TitleLbl.Margins.Top=25; TitleLbl.Width=150; TitleLbl.clProSettings.FontSize=18; TitleLbl.clProSettings.FontColor=clAlphaColor.clHexToColor('#111827'); TitleLbl.clProSettings.TextSettings.Font.Style=[fsBold]; TitleLbl.SetclProSettings(TitleLbl.clProSettings); AddTaskBtn = MainForm.AddNewProButton(HeaderPnl, 'AddTaskBtn', '+ Yeni'); AddTaskBtn.Align = alRight; AddTaskBtn.Width=80; AddTaskBtn.Height=40; AddTaskBtn.Margins.Right=40; AddTaskBtn.Margins.Top=20; clComponent.SetupComponent(AddTaskBtn, '{"BackgroundColor":"#f9fee1", "TextColor":"#c57d02", "RoundHeight":10}'); MainForm.AddNewEvent(AddTaskBtn, tbeOnClick, 'newTaskClick'); FooterPnl = MainForm.AddNewProPanel(MainForm, 'FooterPnl'); FooterPnl.Align = alClient; FooterPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F1F5F9'); FooterPnl.SetclProSettings(FooterPnl.clProSettings); RefreshTaskList; MainForm.Run; } https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
|
|
![]() |
|
Emr.Erkmn
Moderatör
Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Değil Puanlar: 672 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 17 Saat 28 Dakika Önce Saat 18:14 |
|
Merhaba,
Gelen hata masaüstü .exe de çalışırken mi geliyor https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous"> |
|
![]() |
|
Emr.Erkmn
Moderatör
Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Değil Puanlar: 672 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 3 Saat 48 Dakika Önce Saat 07:54 |
|
Merhaba Nevra,
Hata devam ediyor mu?https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous"> |
|
![]() |
|
Nevra Nur
Yeni Üye
Kayıt Tarihi: 09 Şubat 2026 Konum: konya Durum: Aktif Değil Puanlar: 34 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Nevra Nur
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 2 Saat 6 Dakika Önce Saat 09:36 |
|
Merhabalar https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
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 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 temizleyip yeniden oluşturmak sorunu tamamen çözdü. |
|
![]() |
|
Yanıt Yaz
|
|
| Tweet |
| Forum Atla | Forum İzinleri ![]() Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |