Dein Code hat ein paar Schwachstellen:
1.)
SQL - Anweisungen kann man doch schon im Objektinspektor zuweisen.
Es ist nicht nötig dies immer wieder im Code zu tun.
2.) du verwendest keinerlei
Unterfunktionen
Dabei kann das so nützlich sein:
Delphi-Quellcode:
//Liefert den Namen der Kategorie
function Tf_treeview.GetCategoryName(cat_id:integer):string;
begin
q4.Close;
// q4.SQL.Clear;
// q4.SQL.Add('select category_name from jos_vm_category ');
// q4.SQL.Add('where category_id = :category_id');
q4.parambyname('category_id').AsInteger := cat_id;
q4.Open;
if not q4.IsEmpty then
Result := q4.FieldByName('category_name').AsString
else
Result := '';
end;
3.) schlechte Namensgebung (q1, q2, q3,q4, MyTreenode1)