Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Borland Builder TreeView - selekcija noda DESNIM klikom

  • 4 odgovora
  • 3.375 pregleda

Najnovija ↓

Borland Builder TreeView - selekcija noda DESNIM klikom 29.09.2007. u 21:11 · pre 232 meseca #1
Koristim klasican Borlandov TTreeView.
Kreiram nekoliko Node-ova. Pustim aplikaciju i dobijam sledece:

Levim klikom lepo mogu da oznachim zeljeni Node, ALI desnim klikom to nije izvodljivo (nakon pustanja misha selekcija preskoci na prethodno selektovani Node?!).

Hocu da mi se prilikom klika desnim tasterom na neki od Node-ova otvori pop-up meni, pa bi mi zato znachilo da selekcija bude odgovarajuca.


Ovim kodom mi se pojavljuje pop-up na odgovarajucem mestu:

Code:

void __fastcall TForm1::TreeView1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
   TTreeNode *tempTreeNode =TreeView1->GetNodeAt(X,Y);

   if ((tempTreeNode!=NULL)&&(Button==mbRight))
       PopupMenu1->Popup(Mouse->CursorPos.x,Mouse->CursorPos.y);
}


Na slican nacin sam probao da reshim i problem selekcije ali za sada bezuspesno.

Hvala unapred na pomoci!


Pozdrav!
Re: Borland Builder TreeView - selekcija noda DESNIM klikom 29.09.2007. u 21:31 · pre 232 meseca #4
Pogledao sam sad neki svoj kod od ranije:

OI: RightClickSelect = false // <--- dakle, nisam dirao

U TreeView properties (PopupMenu) postavi taj Popup meni ( ne pozivaj eksplicitno PopupMenu1->Popup() ), a ovako vrsi selekciju...

Code:

void __fastcall TForm1::TreeView1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
   if ( Button == mbRight )
   {
      TTreeView *pTreeView = static_cast<TTreeView*>( Sender );
      if ( pTreeView )
      {
          THitTests HT;
          HT = pTreeView->GetHitTestInfoAt( X,Y );
          if ( HT.Contains( htOnItem ) )
             pTreeView->GetNodeAt( X,Y )->Selected = true;
      }
   }        
}


(sad kad gledam ovaj kod, moglo bi i krace, ali nije bitno... proveri da li radi)
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme