Arsip: Penggunaan Virtual Tree View

more 18 years ago
eena
[color=blue:5bf35900c3][/color:5bf35900c3]
Gimana cara nambah node pake virtual tree view???

more 18 years ago
deLogic
maksudnya VirtualTreeView buatan Mike Lischke itu yah.. yang ada di SoftGems..?? heheh emang dibalik kecepatannya, VST itu 'nyleneh' .
di Root:
VST.RootNodeCount := VST.RootNodeCount + JumlahNodeTambahan;
di Child:
VST.ChildCount := VST.ChildCount + JumlahNodeTambahan;
VST.Expanded := True;
VST.InvalidateToBottom(VST.FocusedNode);
jangan lupa berikan nilai pada method InitNode dan GetText. Untuk lebih jelasnya coba lihat contoh yg disertakan, terutama dalam folder Minimal.
more 18 years ago
eena
Ya, VirtualTreeView yg dari SoftGems. Klo gak salah yg difolder minimal, waktu aplikasi dijalankan pertama kali, ada 20 node. Klo ditambah node-nya untuk root atau sebagai child, baru jumlahnya nambah. Tapi klo aplikasi ditutup dan dijalankan lagi node2 tsb gak ada(alias hilang). Lalu bagaimana cara ngasih node untuk level 2 atau 3 dan ngasih text untuk level tersebut, yang langsung muncul waktu awal aplikasi dijalankan???

more 18 years ago
deLogic
Tapi klo aplikasi ditutup dan dijalankan lagi node2 tsb gak ada(alias hilang).hem.. ini aneh, saya tidak pernah menemuinya, setiap saya tutup dan jalankan kembali exe-nya, pasti yg node muncul adalah jumlah default, yaitu 20node pada root.
Lalu bagaimana cara ngasih node untuk level 2 atau 3 dan ngasih text untuk level tersebut, yang langsung muncul waktu awal aplikasi dijalankan???intinya ada di InitChildren. untuk ngasih text, tergantung dari struktur VirtualNode Anda dan pada method GetText. Coba Anda pelajari example yg disertakan... memang butuh kesabaran, saya aja pas pertama kali coba, juga 'bingung' kok. :) ini ada contoh pada salah satu aplikasi saya. saya sertakan tiga method, yaitu InitNode, InitChildren dan GetText.
procedure TfrmMain.vstCodeSnippetInitNode(Sender: TBaseVirtualTree;
ParentNode, Node: PVirtualNode;
var InitialStates: TVirtualNodeInitStates);
var
RecStruct : PNavigationStruct;
Image : TBitmap;
begin
RecStruct := Sender.GetNodeData(Node);
if (ParentNode = nil) then
begin
with dmMain.IBTableLanguage do
begin
RecStruct.ID := Fields[DB_INDEX_LANG_ID].AsInteger;
RecStruct.Highlighter := TAvailableHighlighter(
Fields[DB_INDEX_LANG_HIGHLIGHT].AsInteger - 1);
RecStruct.Name := Fields[DB_INDEX_LANG_NAME].AsString;
if not Fields[DB_INDEX_LANG_ICON].IsNull then
begin
Image := TBitmap.Create;
Image.Assign(Fields[DB_INDEX_LANG_ICON]);
RecStruct.ImgIndex := imglstNavigation.Add(Image, nil);
Image.Free;
end;
if not Eof then Next;
end;
end;
Include(InitialStates, ivsHasChildren);
end;
procedure TfrmMain.vstCodeSnippetGetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString);
var
RecStruct : PNavigationStruct;
begin
RecStruct := Sender.GetNodeData(Node);
CellText := RecStruct.Name;
end;
procedure TfrmMain.vstCodeSnippetInitChildren(Sender: TBaseVirtualTree;
Node: PVirtualNode; var ChildCount: Cardinal);
var
ParentStruct : PNavigationStruct;
ChildStruct : PNavigationStruct;
ChildNode : PVirtualNode;
Level : Integer;
begin
Level := Sender.GetNodeLevel(Node);
ParentStruct := Sender.GetNodeData(Node);
case Level of
0 : begin
with dmMain.IBQuery do
begin
SQL.Text := 'SELECT FROM V_BROWSE_CATEGORY_LITE'
+ ' WHERE (CAT_LANGUAGE = ' + IntToStr(ParentStruct.ID)
+ ') AND (CAT_PARENT = 0)';
Open;
First;
while not EOF do
begin
ChildNode := Sender.AddChild(Node);
ChildStruct := Sender.GetNodeData(ChildNode);
ChildStruct.ID := Fields[DB_INDEX_VBROWSECAT_ID].AsInteger;
ChildStruct.Highlighter := ParentStruct.Highlighter;
ChildStruct.Name := Fields[DB_INDEX_VBROWSECAT_NAME].AsString;
ChildStruct.StructType := STRUCT_CATEGORY;
Sender.ValidateNode(Node, False);
Next;
end;
Close;
end;
ChildCount := Sender.ChildCount[Node];
end;
else
begin
with dmMain.IBQuery do
begin
if (ParentStruct.StructType = STRUCT_CATEGORY) then
begin
// look for available categories
SQL.Text := 'SELECT FROM V_BROWSE_CATEGORY_LITE'
+ ' WHERE CAT_PARENT = ' + IntToStr(ParentStruct.ID);
Open;
First;
while not EOF do
begin
ChildNode := Sender.AddChild(Node);
ChildStruct := Sender.GetNodeData(ChildNode);
ChildStruct.ID := Fields[DB_INDEX_VBROWSECAT_ID].AsInteger;
ChildStruct.Highlighter := ParentStruct.Highlighter;
ChildStruct.Name := Fields[DB_INDEX_VBROWSECAT_NAME].AsString;
ChildStruct.StructType := STRUCT_CATEGORY;
Sender.ValidateNode(Node, False);
Next;
end;
Close;
// look for available code snippets
SQL.Text := 'SELECT * FROM V_BROWSE_CODE_LITE'
+ ' WHERE COD_CATEGORY = ' + IntToStr(ParentStruct.ID);
Open;
First;
while not EOF do
begin
ChildNode := Sender.AddChild(Node);
ChildStruct := Sender.GetNodeData(ChildNode);
ChildStruct.ID := Fields[DB_INDEX_VBROWSECOD_ID].AsInteger;
ChildStruct.Highlighter := ParentStruct.Highlighter;
ChildStruct.Name := Fields[DB_INDEX_VBROWSECOD_NAME].AsString;
ChildStruct.StructType := STRUCT_SNIPPET;
Sender.ValidateNode(Node, False);
Next;
end;
Close;
end;
end;
ChildCount := Sender.ChildCount[Node];
end;
end;
if ChildCount > 0 then
Sender.Sort(Node, 0, sdAscending, True);
end;

more 14 years ago
babypigs
saya sangat tertarik dengan komponen virtual treeview ini, setelah saya lihat banyak sekali kemampuan dari komponen ini dan yang penting gratis.
saya sudah mulai mempelajari komponen virtual treeview ini. pertamanya saya kira tidak jauh berbeda dari treeview standar bawaan delphi, tapi makin lama semakin banyak perbeda, dan setelah saya perhatikan dari contoh2 di google yang saya dapat, ternyata kita perlu membuat beberapa prosedur bantu untuk menjalankan virtual treeview ini.
untuk membuat node parent dan node child sudah saya kuasai, nah yang menjadi sedikit masalah mungkin buat yang lain ini terlihat simple dan mudah cuma untuk saya yang pemula menggunakan virtual treeview ini salah satu masalah yang bikin program saya mentok tidak bisa maju dalam beberapa hari ini.
masalah yang ingin saya tanyakan bagaimana memberi atau menganti nama node-node (dalam bentuk text atau string) pada virtual treeview, saya sudah pelajari dari contoh di atas tapi terlalu rumit untuk dimengerti dan terlihat kurang lengkap karena ada variabel yang tipe tidak diketahui. referensi dari hasil pencarian di google juga sama saja terlalu rumit untuk dimengerti.
sebelumnya saya ucapkan terimakasih ...
more ...
- Pages:
- 1
reply |
Report Obsolete
AI Forward

🚀 We're thrilled to partner with Alibaba Cloud for "AI Forward - Alibaba Cloud Global Developer Summit 2025" in Jakarta! Join us and explore the future of AI. Register now:
https://int.alibabacloud.com/m/1000400772/
#AlibabaCloud #DeveloperSummit #Jakarta #AIFORWARD
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 4 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 5 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 12 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 12 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 12 years ago
Random Topic
- Membaca data di SMDBGRID yg di centang
by onsir in MySQL more 18 years ago - Download QuickReport
by n3o_cybertech in Tip n Trik Pemrograman more 17 years ago - help masalah bit button
by putukaca in Tip n Trik Pemrograman more 18 years ago - Manipulasi data menggunakan parameter
by asepolin in Hal umum tentang Pascal Indonesia more 16 years ago - pilihan kombinasi tool untuk development
by simba in Hal umum tentang Pascal Indonesia more 17 years ago - About Printer
by krishy in Tip n Trik Pemrograman more 17 years ago - style text (bold,italic,underline)
by ianhade in Tip n Trik Pemrograman more 16 years ago - cari buku!!!
by banja in Lain-lain more 15 years ago - Deteksi Program
by tAtA in Tip n Trik Pemrograman more 17 years ago - sebaiknya file gambar atau database field gambar?
by barcodebima in MySQL more 17 years ago