Treeview i podmenu

0

powiedzmy, że mamy taką strukturę
+Menu
|
+Podmenu
|
Kolejnepodmenu

I jak można zrobić zależność aby każde "Kolejnepodmenu" było wstawiane do edita z dodatkowym tekstem "XXX", jak na razie zastosowałem instrukcję warunkową dla każdego "Kolejnepodmenu" ma wstawic jego nazwe+XXX, ale problem pojawia się gdy podmenu rozrasta się do kilkuset słów, a każde dopisywanie or jest trochę nie zbyt rewelacyjnym rozwiązaniem.

0
x4er0 napisał(a)

jak na razie zastosowałem instrukcję warunkową dla każdego "Kolejnepodmenu" ma wstawic jego nazwe+XXX, ale problem pojawia się gdy podmenu rozrasta się do kilkuset słów, a każde dopisywanie or jest trochę nie zbyt rewelacyjnym rozwiązaniem.

nie wiem jak inni ale ja pojecia nie mam o co Ci chodzi, opisz dokladnie... a z tym warunkiem "or" to juz totalnie nie lapie... wklej kod.

0

Ale ja nie kumam po co jakieś ory i ify?

procedure TForm1.TreeView1Click(Sender: TObject);
begin
         Edit1.Text:=Treeview1.Selected.text + ' XXX';
end;
0

Chodzi o to, że kliknięcie dwukrotnie w główną kategorię wkleja jej zawartość do edit, a dwukrotne kliknięcie w podmenu ma wkleić jej treść + zdefiniowany tekst
a jeśli chodzi o to or to mam na razie instrukcje warunkową zastosowaną:

 if (treeSelekcje.Selected.Text='get') or (treeSelekcje.Selected.Text='scope') or (treeSelekcje.Selected.Text='compact')
 then
     EditPor.text:=treeSelekcje.Selected.Text+'(" ")'

czyli na sztywno wklepane podmenu, a chciałbym skrócić kod tak aby każde kliknięcie w podmenu dodawało zaznaczony tekst + zdefiniowaną treść

0

proszę o poprawienie wyżej kodu

 if (treeSelekcje.Selected.Text='get') or (treeSelekcje.Selected.Text='scope') or (treeSelekcje.Selected.Text='compact')
 then
     EditPor.text:=treeSelekcje.Selected.Text+'(" ")'
else
    Edit1.seltext:='treeSelekcje.Selected.Text'; // Czyli wkleja pozostałem czyli z glownego menu

czyli na sztywno wklepane podmenu, a chciałbym skrócić kod tak aby każde kliknięcie w podmenu dodawało zaznaczony tekst + zdefiniowaną treść

0

Wypróbuj ten kod i ewentualnie popraw lub dostosuj do swoich potrzeb, bo nie jest doskonały. Przy zmianie poziomu pierwszy odczyt jest błędny, ale następne na danym poziomie już są poprawne

procedure TForm1.TreeView1GetSelectedIndex(Sender: TObject; Node: TTreeNode);
begin
  case Node.Level of
    0: Edit1.Text:= TreeView1.Selected.Text + 'Zero';  // Menu główne
    1: Edit1.Text:= TreeView1.Selected.Text + 'Jeden'; // Podmenu
    2: Edit1.Text:= TreeView1.Selected.Text + 'Dwa';   // KolejnePodmenu
    // Ew. następne poziomy
  end;
end;
0
procedure TForm1.TreeView1DblClick(Sender: TObject);
begin
if TreeView1.Selected.Level > 0 then
Edit1.Text:= TreeView1.Selected.Text + 'XXX'
else
Edit1.Text:= TreeView1.Selected.Text;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1