* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Novembre 28, 2024, 10:45:44 am

Inserisci il nome utente, la password e la durata della sessione.

28 Visitatori, 0 Utenti

Autore Topic: [Risolto] creare un pacchetto utility  (Letto 6569 volte)

petrusic

  • Hero Member
  • *****
  • Post: 629
  • Karma: +0/-0
[Risolto] creare un pacchetto utility
« il: Aprile 22, 2020, 06:02:08 pm »
Vorrei creare un pacchetto destinato a contenere classi di utility in formato sorgente da richiamare di volta in volta nei progetti per l'utilizzo.
Mi servirebbe un piccolo ragguaglio per la scrittura del codice e la successiva compilazione e salvataggio.
Dall'IDE Lazarus, cliccando su Pacchetto -> Nuovo pacchetto ->nomePacchetto.lpk

Ecco il nomePacchetto è il primo problema, perchè non ho capito se scrivere nomePacchetto o NomePacchetto o ...

poi dovrei preparare il suo salvataggio in una directory che, penso, potrebbe essere quella mia usuale per il salvataggio di tutti i miei progetti.

A questo punto si apre la finestra seguente dove dovrei scrivere, penso, il nome di una procedura o funzione

E così? C'è una guida che ne faccia la descrizione, anche per il successivo utilizzo all'interno di un progetto?
 :)
« Ultima modifica: Aprile 25, 2020, 07:10:35 pm da petrusic »
ciao ciao

Otto

  • Jr. Member
  • **
  • Post: 58
  • Karma: +0/-0

bonmario

  • Hero Member
  • *****
  • Post: 1364
  • Karma: +11/-1
Re:creare un pacchetto utility
« Risposta #2 il: Aprile 22, 2020, 06:37:25 pm »
Vorrei creare un pacchetto destinato a contenere classi di utility in formato sorgente da richiamare di volta in volta nei progetti per l'utilizzo.

Tanto per essere sicuri, vuoi veramente creare un "pacchetto", oppure una "unit"?
Da quello che scrivi, credo che vada bene una unit.

Ciao, Mario

petrusic

  • Hero Member
  • *****
  • Post: 629
  • Karma: +0/-0
Re:creare un pacchetto utility
« Risposta #3 il: Aprile 22, 2020, 09:56:39 pm »
Tanto per essere sicuri, vuoi veramente creare un "pacchetto", oppure una "unit"?
Da quello che scrivi, credo che vada bene una unit.
Ho capito che unit  = class, quindi, scrivendo la mia utility in una unit  all'interno del progetto corrente, potrei richiamarla in qualsiasi altra unit dello stesso progetto.
Se, invece inserissi l'utility in una unit di un pacchetto esterno al progetto, potrei richiamarla in qualsiasi altro prossimo progetto.
Ecco perchè penso ad un pacchetto utilmie da salvare, credo e spero, nella stessa directory madre dei miei progetti.
ciao ciao

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3282
  • Karma: +12/-0
Re:creare un pacchetto utility
« Risposta #4 il: Aprile 22, 2020, 10:12:27 pm »
Se crei una unit puoi usarla in qualsiasi progetto. Basta che la metti nella stessa cartella delle unit del singolo progetto e poi richiami la unit come fai sempre.
Ieri è passato, domani è futuro, oggi è un dono...

bonmario

  • Hero Member
  • *****
  • Post: 1364
  • Karma: +11/-1
Re:creare un pacchetto utility
« Risposta #5 il: Aprile 23, 2020, 08:04:34 am »
Basta che la metti nella stessa cartella delle unit del singolo progetto e poi richiami la unit come fai sempre.

Non è indispensabile: io ho tutte le unit "generiche" nella stessa directory, poi, quando apro un nuovo progetto, aggiungo quella directory nelle opzioni del progetto.
L'unica cosa particolare, è che metto il percorso relativo, e non quello assoluto. In questo modo, lo stesso progetto vede la unit sia su Linux, che su Windows

Ciao, Mario

petrusic

  • Hero Member
  • *****
  • Post: 629
  • Karma: +0/-0
Re:creare un pacchetto utility
« Risposta #6 il: Aprile 23, 2020, 12:44:24 pm »
Quindi, se non ho capito male, dovrei:
- aggiungere una nuova Unit con File -> Nuova Unit
  e rinominare la Unit con un nome identificatore;
- da Progetto -> Opzioni Progetto -> Percorsi:
   >  Altri File Unit (-FU):
                    inserire il percorso che porta alla directory contenente la nuova Unit
   >  Cartella di Output delle Unit (-FU):
                     inserire il percorso fino alla alla directory destinataria di nuove Unit

Tutto ciò però credo che valga per tutte le nuove Unit, non soltanto per le Unit, diciamo, di uso generale.

ciao ciao

bonmario

  • Hero Member
  • *****
  • Post: 1364
  • Karma: +11/-1
Re:creare un pacchetto utility
« Risposta #7 il: Aprile 23, 2020, 12:53:50 pm »
- da Progetto -> Opzioni Progetto -> Percorsi:
   >  Altri File Unit (-FU):
                    inserire il percorso che porta alla directory contenente la nuova Unit

Io di solito faccio solo questa. Dopo averlo fatto e dato l'ok, aggiungo la unit alla "uses"

Ciao, Mario

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3282
  • Karma: +12/-0
Re:creare un pacchetto utility
« Risposta #8 il: Aprile 23, 2020, 01:32:10 pm »
Basta che la metti nella stessa cartella delle unit del singolo progetto e poi richiami la unit come fai sempre.

Non è indispensabile: io ho tutte le unit "generiche" nella stessa directory, poi, quando apro un nuovo progetto, aggiungo quella directory nelle opzioni del progetto.
L'unica cosa particolare, è che metto il percorso relativo, e non quello assoluto. In questo modo, lo stesso progetto vede la unit sia su Linux, che su Windows

Ciao, Mario
Ovviamente, era solo per semplificargli la cosa visto che è all'inizio
Ieri è passato, domani è futuro, oggi è un dono...

petrusic

  • Hero Member
  • *****
  • Post: 629
  • Karma: +0/-0
Re:creare un pacchetto utility
« Risposta #9 il: Aprile 23, 2020, 04:56:11 pm »
Ovviamente, era solo per semplificargli la cosa visto che è all'inizio
Grazie xinyiman, però credo sia meglio che mi abitui sin da subito ad affrontare i procedimenti corretti, anche se è più facile cadere.
ciao ciao

petrusic

  • Hero Member
  • *****
  • Post: 629
  • Karma: +0/-0
Re:creare un pacchetto utility
« Risposta #10 il: Aprile 23, 2020, 05:03:35 pm »
- da Progetto -> Opzioni Progetto -> Percorsi:
   >  Altri File Unit (-FU):
                    inserire il percorso che porta alla directory contenente la nuova Unit
Io di solito faccio solo questa.
Dopo averlo fatto e dato l'ok, aggiungo la unit alla "uses"
Non capisco però come fai a trasferire poi solo la Unit nuova e funzionante nella directory di tutte le unit generiche.
Copi e incolla?
ciao ciao

bonmario

  • Hero Member
  • *****
  • Post: 1364
  • Karma: +11/-1
Re:creare un pacchetto utility
« Risposta #11 il: Aprile 23, 2020, 06:02:01 pm »
Non sono sicuro di aver capito la domanda, comunque, se ho capito bene, le possibilità sono 2:
- o la sviluppo direttamente nel posto giusto
- o la sposto con "Esplora risorse", o simili

Ciao, Mario

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2389
  • Karma: +10/-0
Re:creare un pacchetto utility
« Risposta #12 il: Aprile 23, 2020, 06:25:15 pm »
Ciao petrusic.

Il pacchetto, per sua natura, va nella direzione che ti interessa (se ho capito correttamente).

Crei il pacchetto e poi lo rendi "visibile" all'ide, in modo che nei tuoi progetti devi solo indicare la dipendenza verso quel pacchetto.

Il pacchetto può contenere una o più unit che ti puoi scrivere.

Quando hai bisogno di una di queste unit, però, il progetto deve dichiarare che dipende dal pacchetto.

In altra parole.
Nel tuo progetto deve comparire
Codice: [Seleziona]

 <RequiredPackages Count="1">
      <Item1>
        <PackageName Value="il_fantasmagorico_pacchetto_di_petrusic"/>
      </Item1>
    </RequiredPackages>

Questo lo fa direttamente l'ide.


La rottura di scatole del preparare i pacchetti, consiste nel fatto che per compilarli devi utilizzare la finestrella farlocca che resta aperta.


Suggerimento.
Ti fai un progetto di sviluppo di queste unit che non dipende dal pacchetto ma include la tua/tue unit, così da poter viaggiare più speditamente nella codifica e debug.
Solo in una seconda fase crei il pacchetto.


Poi se vuoi giocare con i path per ogni progetto, puoi fare un progetto "tipo" e sistemate le cose (come il path) puoi dire l'ide che vuoi rendere di "default" per i progetti successivi quelle impostazioni.


Spero di averti reso le idee più chiare.


Stilgar


OT:
Una unit è un contenitore di cose.

La class è un modo per rappresentare la memoria e la gestione di questa.
Il record/tipo è un modo per mappare la memoria.


Il resto è codice quindi smandruppamento della memoria:)




Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

petrusic

  • Hero Member
  • *****
  • Post: 629
  • Karma: +0/-0
Re:creare un pacchetto utility
« Risposta #13 il: Aprile 25, 2020, 10:35:33 am »
Dopo i vostri ultimi post le mie idee sono un pò confuse. Vorrei perciò procedere per gradi.
Da quanto capito qui
non è necessario creare un pacchetto. Basta creare una nuova Unit per ciascuna nuova propria utility, salvandola in una directory apposita.

Se ho capito bene come organizzare l'allocazione delle utility ed il sistema del richiamo in nuovi progetti successivi, mi resta ora da capire soltanto come procedere per il salvataggio della neo utility fuori dal progetto attuale, in modo da richiamarla anche in questo con le modalità dette sopra.

Allora, come prima cosa potrei impostare le opzioni del progetto nell'IDE. Nel progetto corrente creo una nuova unit dove trasferisco la procedurina di utility. Dovrei a questo punto salvare soltanto questo nuovo file nella directory preparata per le utilility. Fatto questo posso chiudere la Unit con la utyility appena creata ed aggiungerla fra le uses del progetto corrente.

Ho capito bene?
« Ultima modifica: Aprile 25, 2020, 12:31:42 pm da petrusic »
ciao ciao

petrusic

  • Hero Member
  • *****
  • Post: 629
  • Karma: +0/-0
Re:creare un pacchetto utility
« Risposta #14 il: Aprile 25, 2020, 12:29:33 pm »
Ho fatto come ho detto prima, anzi avevo dimenticato di inserire il percorso della Unit nelle opzioni del progetto ed è stata la stessa procedura di salvataggio della Unit che me lo ha suggerito, pertanto ora mi trovo la seguente impostazione:
- Progetto -> Opzioni Progetto -> Percorsi:
   >  Altri File Unit (-FU): ../util_mie

Tuttavia, pur avendo aggiunto nelle uses del progetto progetto il nome della utility
Codice: [Seleziona]
unit cofamtrasf;   {Classe: tipo Form_Main}

{$mode objfpc}{$H+}

interface

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes, SysUtils, db, Forms, Controls, Graphics, Dialogs, StdCtrls, EditBtn,
  ExtCtrls, DBGrids, DBCtrls, ZConnection, ZDataset, Types, EditaCoVoce;

type
  { TForm1 }

  TForm1 = class(TForm)       
--- bla --- bla ---
coVoceEdt:=EditaCoVoce.EdtCoVo(coVoSeCor);
--- bla --- bla ---
il compilatore non riesce a trovare la funzione contenuta all'interno della Unit:
Citazione
cofamtrasf.pas(199,30)Error: identifier not found "EdtCoVo"

ciao ciao

 

Recenti

How To

Utenti
  • Utenti in totale: 802
  • Latest: maXim.FI
Stats
  • Post in totale: 19218
  • Topic in totale: 2291
  • Online Today: 33
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 28
Total: 28

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.