Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [delphi] modificare membri privati

    esiste una classe in free pascal (non so se c'è l'equivalente in borland delphi) che permette di scrivere un file PostScript come se si disegnasse su un TCanvas facendo tutte le conversioni del caso (per esempio le coordinate di partenza di un TCanvas sono in alto a sx, mentre in PostScript si parte dal basso a sx).
    Questa classe si chiama TPostScriptCanvas.
    Utilizzare questa classe permette di scrivere codice PostScript senza conoscerlo nel dettaglio.
    Ora però vorrei derivare da questa classe una nuova classe che abbia un metodo che permetta di introdurre del codice PostScript tal quale, in particolare dovrei scrivere su un membro privato fDocument che è un TstringList, che contiene il corpo del documento in PostScript.
    Mi chiedevo se questo fosse possibile senza riscrivere la classe di base (aggiungendo per esempio una proprietà che mi esponesse il TStringList del documento) in modo che un eventuale upgrade della libreria risultasse indolore.
    spero di essermi spiegato
    un saluto
    sergio

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Non so se ho ben capito il problema, quindi provo a ridirlo per verifica.

    Tu vorresti derivare una tua classe da quella che hai menzionato, facendo in modo che qualsiasi modifica nella classe base non influisca su quella che hai implementato tu?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    no, vorrei poter modificare alcuni membri privati della classe base.
    sergio

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Originariamente inviato da mondobimbi
    no, vorrei poter modificare alcuni membri privati della classe base.
    Non è possibile, per i principi OOP, modificare i membri privati della classe base.

    Non hai il sorgente della classe o della libreria a cui ti riferisci?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  5. #5
    si, ho i sorgenti con licenza gpl, e quindi posso modificarli.
    grazie del chiarimento
    sergio

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Originariamente inviato da mondobimbi
    si, ho i sorgenti con licenza gpl, e quindi posso modificarli.
    Beh, in tal caso, puoi tranquillamente spostare ciò che ha una visibilità private elevandola almeno a protected; non è un'operazione che andrebbe generalmente fatta, poiché significa esporre un membro ad una visibilità superiore rispetto a quella che era stata pensata dallo sviluppatore, ma se devi risolvere un'esigenza specifica e sei in possesso dei sorgenti, allora puoi "glissare" in questo modo.

    Dovrai spostare il campo che modifichi ogni volta che viene rilasciato un aggiornamento della libreria, però...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  7. #7
    si, ho fatto come hai suggerito.
    Che tu sappia esiste in Delphi una classe equivalente che genere un file PostScript utilizzando un derivato di TCanvas ?
    ciao
    sergio

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Originariamente inviato da mondobimbi
    Che tu sappia esiste in Delphi una classe equivalente che genere un file PostScript utilizzando un derivato di TCanvas?
    Non ne conosco, purtroppo. In genere, quando devo produrre un file PDF o PostScript, sfrutto le funzionalità messe a disposizione dai tool di reporting standard, come RAVE Reports, ad esempio.
    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.