Domanda

In Delphi 2007, le immagini vengono caricate in una TImageList in fase di progettazione. Questo introduce il seguente problema:

  • Ho una cartella contenente la grafica che sto usando nella mia applicazione
  • Ogni volta che voglio cambiare, diciamo, l'icona per 'salva', devo farlo
    1. Modifica l'immagine nella cartella (per i miei scopi)
    2. Scorrere tutte le TImageList nell'applicazione
    3. Cambia l'immagine nella TImageList

Esiste un modo (componente, script di compilazione, ...) per eseguire automaticamente i passaggi 2 e 3, ovvero specificare solo i percorsi grafici in fase di progettazione, creando una dipendenza dai file grafici effettivi?

È stato utile?

Soluzione

Potresti creare un discendente di TImageList e aggiungere quel tipo di logica lì.

Dato che i componenti che fanno riferimento alle immagini all'interno di una TImageList lo fanno per indice, sarebbe più semplice avere il discendente in possesso di una proprietà ImagePaths di tipo TStrings formattata in questo modo:

#=Filename

E forse aggiungere anche una proprietà BasePath di tipo stringa.

Quindi, caricando quel componente, potrebbe ricaricare automagicamente quelle immagini in memoria.

Potresti persino renderlo un esperto in fase di progettazione che carica le immagini nel designer.

- Jeroen

Altri suggerimenti

Le classi non sono mai completamente compilate. Anche le classi di Designtime sono trasmesse in streaming da risorse.

Carico le immagini nella TImagelist in fase di esecuzione. Per questo motivo, non assegno alcuna immagine in fase di progettazione. Sono tutti aggiunti come risorsa all'exe e li carico in fase di esecuzione da lì. Questo significa anche che le immagini possono essere modificate senza ricompilare l'exe.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top