Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    389

    [delphi] - Avvio Programmi TreeView

    Ho inserito in una treeview tutte le voci di menu contenenti i programmi.
    Su di una form ho la MDI - Form ove è presente il MainMenu Principale dove si avviano i programmi.
    In Un altra Form ho prelevato tutte le voci di menu e ho inserito il tutto in una TreeView. es. nel nodo File ho il sottonodo Archivi.

    Come faccio ad avviare i programmi da questa form, semplicemente cliccando sulla TreeView.

    Grazie Claudio

    P.S. sei un grande Alka.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    389

    aiutooo

    Aiuto

  3. #3
    Non ho capito!

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288

    Re: [delphi] - Avvio Programmi TreeView

    Originariamente inviato da cla80
    Ho inserito in una treeview tutte le voci di menu contenenti i programmi. Su di una form ho la MDI - Form ove è presente il MainMenu Principale dove si avviano i programmi.
    A quali programmi ti riferisci?
    La frase "su una form ho la MDI" è un po' criptica: MDI (Multiple Document Interface) è un tipo di interfaccia in cui una finestra principale (MDI Form) ospita tante finestre "figlie" (MDI Child).

    Nel tuo messaggio, non si capisce se ti riferisci alla prima o alla seconda, a quali programmi ti riferisci nel MainMenu e cosa significa, per te, "avviare i programmi".

    In definitiva, devi porre maggiore attenzione e precisione nel formulare la tua domanda perchè altrimenti non è possibile aiutarti.

    Originariamente inviato da cla80
    In Un altra Form ho prelevato tutte le voci di menu e ho inserito il tutto in una TreeView. es. nel nodo File ho il sottonodo Archivi.
    Come faccio ad avviare i programmi da questa form, semplicemente cliccando sulla TreeView.
    Pur non avendo ben compreso la tua situazione, provo a darti un'indicazione sperando sia proprio quella che ti serva.

    Quando un elemento della TreeView viene selezionato, l'evento OnChange esegue il suo codice passando come parametro il nuovo nodo selezionato (Node di tipo TTreeNode); attraverso quel riferimento, è possibile ispezionare tutte le proprietà del nodo (Caption, ecc.) e quindi intraprendere l'azione specifica che si desidera.

    P.S.: ti suggerisco caldamente di munirti di un buon testo che spieghi i concetti fondamentali e i rudimenti della programmazione in Delphi, altrimenti sei sempre fermo e costretto a chiedere aiuto, magari introducendo poi errori difficili da individuare nei tuoi programmi.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288

    Re: aiutooo

    Originariamente inviato da cla80
    Aiuto
    Dovresti avere almeno la pazienza di aspettare una giornata prima di sollecitare, poichè non è detto che i frequentatori abituali del forum (e non) abbiano il tempo immediato di rispondere alle tue richieste o che siano effettivamente in grado di farlo, soprattutto quando la domanda che hai scritto, come ti ho già segnalato, non è decisamente chiara.

    Per chiuderla con uno slogan: "aiutaci ad aiutarti"
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    389

    chiedo scusa...

    Chiedo scusa, ma credo che questo si un problema un po complicato.

    Il problema è il seguente:

    Dispongo di una Main Form di tipo MDI (fsMDIForm) - nella quale ho posizionato il mio MainMenu con le rispettive icone collegate:

    in un altra form secondaria, popolo la mia treeview di tutti gli elementi corrispondenti nella MainMenu della FormMain.

    Il problema è il seguente: poiche sulla MainForm quando clicco dal Menu per attivare una form secondaria eseguo il seguente codice:

    codice:
    with TFormCom.Create(Application) do
    begin
      AccessMode:= userdata.GetAccessMode;
      formStyle := fsMDIChild;
    end;
    Come faccio a richiamare tale operazione dalla form secondaria???

    Ossia sulla TreeView??

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Il tuo messaggio era molto più chiaro questa volta.

    Posso chiederti il perchè di questa soluzione? Secondo me, ti stai complicando la vita cercando di realizzare un meccanismo che può comodamente essere sostituito adottando qualche altra soluzione altrettanto valida.

    Cosa stai cercando di ottenere? Non potresti inserire la TreeView nella form MDI principale allineando il controllo al bordo sinistro e facendo in modo che le finestre figlie occupino lo spazio rimanente?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    389

    soluzione

    Certo può essere una soluzione ma credo sia anche valida la forma di attivare un menu ad albero alternativo rispetto al solito menu.
    Puoi aiutarmi indicativamente???

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288

    Re: soluzione

    Originariamente inviato da cla80
    Certo può essere una soluzione ma credo sia anche valida la forma di attivare un menu ad albero alternativo rispetto al solito menu.
    Puoi aiutarmi indicativamente???
    Non sto contestando l'idea di usare una TreeView per accedere alle funzionalità, quando il fatto di ripeterlo per ogni singola form figlia: ne basterebbe uno solo, presente nella form principale.

    A parte questo, credo che la soluzione più immediata per eseguire l'azione giusta in base al nodo selezionato, che corrisponde poi al menu, sia quella di memorizzare il riferimento al MenuItem nella proprietà Data del singolo nodo della TreeView.

    La proprietà Data di ciascun TTreeNode è adatta a contenere riferimenti ad oggetti e strutture dati esterne in quanto è un "puntatore" (Pointer).

    In fase di creazione dell'albero, si potrebbe memorizzare nella proprietà Data di ciascun nodo il riferimento al MenuItem che rappresenta, qualcosa come
    codice:
      CurrentNode.Data := MainMenu.Items[i];
    Quando un nodo viene selezionato, è possibile utilizzare la proprietà Data per risalire alla voce di menu corrispondente e richiamare così l'evento OnClick attraverso il metodo Click fornito dalla classe TMenuItem:
    codice:
      ...
      MenuItem := TMenuItem(SelectedTreeNode.Data);
      if MenuItem <> nil then
        MenuItem.Click;
      ...
    Il codice è a puro titolo esemplificativo e non è verificato, ma serve solo a dare l'idea.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.