Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568

    [DELPHI] Pagine di pagecontrol attive per gestire una rubrica

    Ciao raga sto facendo una rubrica e vorrei avere un chiarimento.
    Vorrei fare in modo che se ho aperto il tabsheet1(pagina1) del pagecontrol mi stampi il QuickReport2 se il tabsheet2 il QuickReport3.
    Come devo fare
    io avevo pensato così è giusto secondo voi, a me non funziona:

    if PageControl1.Pages[1]=tabsheet1 then
    begin
    Quickreport2.print;
    end;
    if PageControl1.Pages[2]=tabsheet2 then
    begin
    QuickReport3.print;
    end;

    Tutto questo alla pressione di un tasto, naturalmente
    Come si fa?
    Aiutatemi perfavore

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,290
    L'errore è ben evidente. La proprietà Pages del controllo TPageControl contiene le pagine in cui è stato suddiviso il controllo. Nel tuo codice, stai controllando se ciascuna pagina (rappresentata da un oggetto TTabSheet) è uguale a se stessa.
    Ovviamente, la condizione restituisce sempre un valore vero, quindi non mi stupirei se ti si avviassero tutte le stampe una dopo l'altra!

    Hai due modi per fare ciò che hai chiesto.

    Controlli qual è la pagina attiva (selezionata) confrontando il "controllo pagina" stesso (TabSheet1, TabSheet2, ecc.) con la proprietà ActivePage del TPageControl che contiene il riferimento alla pagina TabSheet attiva.
    codice:
    if MyPageControl.ActivePage = MyTabSheet1 then
    begin
      // Stampo il report 1
    end;
    if MyPageControl.ActivePage = MyTabSheet2 then
    begin
      // Stampo il report 2
    end;
    La seconda possibilità (forse la più comoda nel tuo caso) consiste nel controllare l'indice numerico della pagina selezionata, che varia da un minimo di 0 (che corrisponde alla prima pagina) ad un massimo di {totale pagine - 1}. La proprietà che ti indica questo valore è ActivePageIndex.
    codice:
    case MyPageControl.ActivePageIndex of
      0:
      begin
        // Stampo il report 1
      end;
      1:
      begin
        // Stampo il report 2
      end;
    end;
    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    grazie alka ora provo

  4. #4
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    funziona perfettamente grazie alka

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.