Söylediğiniz değişikliği yaptığımda aynı hatayı verdi. Ama sorunu ProListView yerine ListView kullanarak çözdüm sanırım ProListView'a clLoadListViewDataFromDataset() ile veri çekerken bir hata var, aşağıda verdiğim kod çalışıyor fakat başka hiçbir şeyi değiştirmeden ListView yerine ProListView kullanınca (13, 46 ve 102. satırları değiştirerek) EAccessViolation hatası veriyor.
var MyForm: TclForm; addNewTaskButton: TClProButton;
bottomPanel: TCLPanel; middlePanel: TCLPanel; topPanel: TCLPanel;
toDoIcon: TCLImage;
insertQuery: TclSqlQuery;
ToDoListView: TCLListView; retrieveButton: TCLButton;
void onAddButtonClick; { Clomosy.RunUnit('uCreateToDo'); } void onIconClick; { Clomosy.RunUnit('uToDoList'); }
void retrieveCurrentDayItems; var Qry : TClSQLiteQuery; dayNow: String; { dayNow = FormatDateTime('dd.mm.yyyy',Now); try Qry = Clomosy.DBSQLiteQueryWith( 'SELECT id as RECORD_GUID, ' + 'item_text as MAIN_TEXT, ' + 'due_date as FOOTER_TEXT ' + 'FROM todo_items ' + 'WHERE due_date = '+QuotedStr(dayNow)+ 'ORDER BY substr(due_date,7,4) || "-" || substr(due_date,4,2) || "-" || substr(due_date,1,2) ASC, ' + 'CAST(item_order AS INTEGER) ASC;' ); //Qry = Clomosy.DBSQLiteQueryWith('SELECT * FROM todo_items WHERE due_date = '+QuotedStr(dayNow)+' ORDER BY CAST(item_order AS INTEGER) ASC;'); Qry.OpenOrExecute; while (not Qry.EOF) { toDoListView.clLoadListViewDataFromDataset(Qry); } except ShowMessage('Exception Class: '+LastExceptionClassName+' Exception GetData Message: '+LastExceptionMessage); } }
void SqLiteConnection; var TableExists: Boolean; { try Clomosy.DBSQLiteConnect(Clomosy.AppFilesPath + 'DBToDoApp.db3', '');
Clomosy.DBSQLiteQuery.Sql.Text = 'SELECT name FROM sqlite_master WHERE type="table" AND name="todo_items";'; Clomosy.DBSQLiteQuery.OpenOrExecute; TableExists = not Clomosy.DBSQLiteQuery.Eof; if not (TableExists) { ToDoListView.clearList; ShowMessage('Table does not exist'); } else { ShowMessage('Dddatabase connected and table exists'); } except ShowMessage('connectionfunc Exception Class: '+LastExceptionClassName+' Exception Message: '+LastExceptionMessage); } }
{ MyForm=TclForm.Create(self); MyForm.LytTopBar.Visible = False; topPanel=MyForm.AddNewPanel(MyForm,'topPanel'); topPanel.Align=alMostTop; topPanel.Height=110; middlePanel=MyForm.AddNewPanel(MyForm, 'middlePanel'); middlePanel.Align=alCenter; middlePanel.Height=350; bottomPanel=MyForm.AddNewPanel(MyForm,'bottomPanel'); bottomPanel.Height=110; bottomPanel.Align=alMostBottom; bottomPanel.StyleLookup='pushpanel';
ToDoListView = MyForm.AddNewListView(middlePanel,'ToDoListView'); /*ToDoListView.Align = alCenter; ToDoListView.Width = MyForm.clWidth/2; ToDoListView.Margins.Right = 10; ToDoListView.Margins.Bottom = 10; ToDoListView.Margins.Left = 10; */ toDoListView.Align = alClient; toDoListView.Margins.Left = 40; toDoListView.Margins.Bottom = 10; toDoListView.Margins.Right = 30; toDoListView.Margins.Top = 10; /* ToDoListView.clProSettings.ViewType = lvWaterFall; ToDoListView.clProSettings.IsRound = True; ToDoListView.clProSettings.IsFill = True; ToDoListView.clProSettings.ColCount = 1; ToDoListView.clProSettings.ItemHeight = 150; ToDoListView.clProSettings.ItemSpace = 5; ToDoListView.clProSettings.BorderColor = clAlphaColor.clHexToColor('#20B2AA'); ToDoListView.clProSettings.BorderWidth = 1; ToDoListView.clProSettings.RoundWidth = 3; ToDoListView.clProSettings.RoundHeight = 3; ToDoListView.SetclProSettings(ToDoListView.clProSettings); */ retrieveButton=MyForm.AddNewButton(MyForm,'retrieveButton', 'Retrieve'); toDoIcon=MyForm.AddNewImage(topPanel,'toDoIcon'); MyForm.SetImage(toDoIcon,'https://w7.pngwing.com/pngs/32/64/png-transparent-to-do-list-notebook-computer-icons-action-item-task-android-to-do-list-icon-miscellaneous-angle-text-thumbnail.png'); toDoIcon.Align=alMostRight; toDoIcon.Width=40; toDoIcon.Height=40; toDoIcon.Margins.Top=0; toDoIcon.Margins.Right=30; addNewTaskButton=MyForm.AddNewProButton(bottomPanel, 'addNewTaskButton', '+'); addNewTaskButton.Align = alMostRight; addNewTaskButton.Margins.Right=30; addNewTaskButton.Margins.Bottom=30; addNewTaskButton.Width=80; addNewTaskButton.Height=80; addNewTaskButton.clProSettings.FontSize=60; addNewTaskButton.clProSettings.BackgroundColor=clAlphaColor.clHexToColor('#4fa5ab'); addNewTaskButton.clProSettings.RoundHeight=40; addNewTaskButton.clProSettings.RoundWidth=40; addNewTaskButton.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); addNewTaskButton.clProSettings.FontVertAlign=palCenter; addNewTaskButton.SetclProSettings(addNewTaskButton.clProSettings); MyForm.AddNewEvent(addNewTaskButton,tbeOnClick,'onAddButtonClick'); MyForm.AddNewEvent(toDoIcon,tbeOnClick,'onIconClick'); MyForm.AddNewEvent(retrieveButton,tbeOnClick,'retrieveCurrentDayItems');
SqLiteConnection; retrieveCurrentDayItems; MyForm.Run; }
|