Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: - 30 Marzo 2008, 17:38:40

Titolo: FileView
Inserito da: - 30 Marzo 2008, 17:38:40
Mi trovo un pò in difficoltà :

Posso fare un FOR EACH ?      se metto IN fileview mi dice che non è enumerabile....


Poi ho bisogno di visualizzare i collegamenti con l'arrow .... è possibile sovrapporre due Picture ????
Titolo: Re: FileView
Inserito da: fsurfing - 30 Marzo 2008, 17:41:14
non ho capito bene le tue richiste!

cmq. le picture si possono sovrapporre
Titolo: Re: FileView
Inserito da: - 30 Marzo 2008, 17:50:16
Mi spiego meglio :

Ho un fileview con il contenuto della directory.
Il mio problema attualmente è che mi mostra tutti i files ( quasi tutti, tranne directory e file di testo ) con la stessa icona ( compresi i link) .

Volevo fare un FOR EACH ?file? IN ?fileview? e analizzarmi l'estensione e magari fare uno stat() in maniera tale da assegnare l'icona corretta.

Il problema è che fileview non è enumerabile ( così mi vien detto ). :muro:

Spero di esser stato più chiaro.  :aiuto:


Per quanto riguarda la sovrapposizione delle picture mi posti un esempio ? Altrimenti ci passo delle ore sopra  :-D    

Grazie Ciao
Titolo: Re: FileView
Inserito da: fsurfing - 30 Marzo 2008, 18:12:49
strano ... a me sembra che sia filewiew che filechoser visualizzino correttamente le icone.


Citazione
Per quanto riguarda la sovrapposizione delle picture mi posti un esempio ? Altrimenti ci passo delle ore sopra


dipende dove vuoi sovrapporre le picture.


ps. ti sei aggiornato a gambas 2.4.1? o sei ancora a 1.9.45?
Titolo: Re: FileView
Inserito da: - 30 Marzo 2008, 18:27:23
Sono riuscito as aggiornarmi alla 2.2 .... non ho trovato i pacchetti 2.4 slackware e compilare per me è una tragedia ....

Forse è perchè utilizzo gambas compilato in un altra piattaforma ... quindi non mi trova le icone.... boh ....

Le picture ho bisogno di sovrapporle proprio in questa applicazione : icona A + arrows del link.

A questo punto penso che aggirerò il problema facendo FOR EACH file IN dir(xxx,"*") e andando a riempire una iconview. (funziona ma diventa tutto + lungo e difficile)
Titolo: Re: FileView
Inserito da: fsurfing - 30 Marzo 2008, 19:36:16
Codice: [Seleziona]
PUBLIC SUB Button1_Click()

DIM img1 AS Image
DIM img2 AS Image
DIM pict AS Picture
DIM pict_tmp AS Picture


img1 = Image.Load("percorso mmagine 1")
img2 = Image.Load("percorso immagine 2")

pict = img1.copy().Picture
Draw.Begin(pict)
  pict_tmp = img2.copy().Picture
  Draw.Picture(pict_tmp, 0, 0)
Draw.End

'nella picture pict ora hai la sovrapposizione di img2 su img1
' logicamente img2 deve essere un immagine trasparente

END


questo per la sovrapposizione di due picture
Titolo: Re: FileView
Inserito da: giulio - 30 Marzo 2008, 20:45:57
Su slacky.eu, trovi i pacchetti 2.2.1. Non è l'ultima versione di Gambas, ma almeno è compilata per il tuo sistema. Ciao.
Titolo: Re: FileView
Inserito da: - 31 Marzo 2008, 20:00:29
fsurfing I LOVE YOU  :-) ......
ci avrei messo tipo una settimana a trovar fuori questa cosa della sovrapposizione .....

Giulio, io ho scaricato proprio quella , solo che utilizzo un linux (PuppyLinux) che è slackware compatibile quindi è possibile trovare qualche problemuzzino tipo quello delle icone ... poco male ....

Grazie, è veramente raro trovare gente così disponibile  :coccole:
Titolo: Re: FileView
Inserito da: fsurfing - 31 Marzo 2008, 20:20:26
di nulla! :ehm:


volendo la pictura sovrapposta la puoi anche salvare con

pict.save("percorso")
Titolo: Re: FileView
Inserito da: - 05 Aprile 2008, 16:28:16
Sto proseguendo con il mio progetto :

Faccio una cosa di questo tipo:

SUB immagine(immagine AS String, nome AS String, big AS Boolean)
  DIM img AS Image
  DIM pictureData AS String
  DIM scale AS Float
 
  DIM pict AS Picture
  DIM temporary AS Image
  img = Image.Load(immagine)
 
   IF img.Width > thumbSize OR img.Height > thumbSize THEN
     scale = Min(ThumbSize / img.Width, ThumbSize / img.Height)
     img = img.Stretch(img.Width * scale, img.Height * scale, TRUE)
     END IF
     
 
   pict = img.copy().Picture
   fmain.dir1.Add(NOME, NOME, pict)
   img.Clear

  IF big = TRUE THEN WAIT 1
END
'------ thumbsize lo setto in base alle esigenze

In sostanza mi prendo le immagini e le ridimensiono in base a ciò che mi serve.

Il problema è che se sono 5-6 mi si satura la RAM , se sono 20-30 mi si freeza il PC .....
Suppongo bisognerebbe scaricarle dalla memoria una volta aggiunte , l'unica cosa mi sembrava adeguata è img.clear ma ovviamente non funziona.(non posterei altrimenti)....
Titolo: Re: FileView
Inserito da: fsurfing - 05 Aprile 2008, 16:37:13
ma nel tuo programma usi gtk o qt?
Titolo: Re: FileView
Inserito da: - 05 Aprile 2008, 16:40:08
GTK ...
Titolo: Re: FileView
Inserito da: fsurfing - 05 Aprile 2008, 16:44:43
prova anche così:


Codice: [Seleziona]
SUB immagine(immagine AS String, nome AS String, big AS Boolean)
DIM img AS Image
DIM pictureData AS String
DIM scale AS Float

DIM pict AS Picture
DIM temporary AS Image
img = NEW Image
img = Image.Load(immagine)

IF img.Width > thumbSize OR img.Height > thumbSize THEN

img = img.Stretch(thumbSize, thumbSize, TRUE)
END IF


pict = img.copy().Picture
fmain.dir1.Add(NOME, NOME, pict)


IF big = TRUE THEN WAIT 1


io di solito le immagini le carico tutte in memoria all' avvio gia nelle dimensioni che mi occorrono e poi le utilizzo all' occorenza.

mi è capitato di usate più di 100 immagini senza alcun problema.

ps. prima ti  ho chiesto se usavi gtk o qt perchè fino a qualche tempo fa ho riscontrato consumi enormi di memoria in progetti che usavano immagini , con le librerie gtk.
non ho verificato se la cosa sia ancora cosi per le nuive versioni di gambas ..se puoi usa le qt.
Titolo: Re: FileView
Inserito da: fsurfing - 05 Aprile 2008, 16:51:24
mi sa che sono proprio le gtk!!
Titolo: Re: FileView
Inserito da: - 05 Aprile 2008, 16:54:17
Anche con la tua modifica si sovraccarica tutto...

Salvo passare alle QT e il problema sparisce ......  :evil: Uso le QT e ho un ploblema da una parte ( oltre alla grafica che non mi gusta più di tanto ) uso GTK e ho un problema dall'altra parte ....
Titolo: Re: FileView
Inserito da: fsurfing - 05 Aprile 2008, 16:56:11
gia scommetto che usavi le gtk per il trayicon..

non ti resta che sacrificare qualcosa ..... :-o

per curiosità quanta ram  e swap hai?
Titolo: Re: FileView
Inserito da: - 05 Aprile 2008, 17:02:01
Si, anche per il trayicon ma comunque scelgo quasi sempre il GTK xkè mi piace di più la grafica.

Ho un pc vecchiotto, ho 512 di ram e 256 di swap...
Titolo: Re: FileView
Inserito da: fsurfing - 05 Aprile 2008, 17:07:25
ha ecco a me con 1gb di ram e 1gb di swap c'è ne metteva un bel pò a bloccarmi tutto ...infatti cio messo un secolo a capire il problema..


in alternativa potresti fare una cosa:


utilizzando il minimo indispensabile di variabili immagine e picture (1o 2)

ti creila tua picture poi la salvi in una caretella  e poi per visualizzarla usi una picturbox in questo modo

picturbox1.picture=(percorso dove l'hai salvata)

non so se mi sono spiegato
Titolo: Re: FileView
Inserito da: fsurfing - 05 Aprile 2008, 17:10:19
in un mio programma che trovi in area download (led-monitor)

4 piccole immagini in memoria non danno alcun problema usando gtk
Titolo: Re: FileView
Inserito da: - 05 Aprile 2008, 17:11:19
Si ho capito, ma dalle prove che ho fatto sembra non riuscire a scaricarsi dalla ram ciò che ha elaborato precedentemente ..... non è tanto che ho un pc vecchio; anche se poi faccio un .clear alla iconwiev dove ho caricato le immagini la ram resta piena fino a che non stoppo il progetto .....

Comunque con le QT funziona perfettamente, manco mi accorgo ( per qunto riguarda la ram, il processore essendo un 2ghz se ne accorge eccome :-)  ) di esser a fare l'operazione
Titolo: Re: FileView
Inserito da: giulio - 05 Aprile 2008, 18:04:11
ciao. così, per scrupolo. hai provato img.Flush anziché img.clear ?

ciao.
Titolo: Re: FileView
Inserito da: - 05 Aprile 2008, 18:24:08
img.flush non è contemplato nel linguaggio

picture.flush non dà esiti ...

ciao
Titolo: Re: FileView
Inserito da: - 13 Luglio 2008, 01:06:04
.... E' possibile secondo voi fare la preview di un filmato nello stesso modo in cui si caricano le immagini ( come fà windows, l'icona diventa il 1° frame del filmato ) senza mettere moviebox ( dovrei caricare la preview su una iconview )

come si potrebbero caricare le icone ( file *.ico ), che non sono contemplate e che danno errore se si tenta di caricarle  ?
Titolo: Re: FileView
Inserito da: leo72 - 14 Luglio 2008, 22:54:35
Per la questione dei filmati non so...
Forse per le icone potresti provare ad appoggiarti ad un programma esterno che trasformi i file .ico in, esempio, .png od altro (ImageMagik, per esempio?)
Titolo: Re: FileView
Inserito da: - 15 Luglio 2008, 18:55:07
Oky, il problema con le *.ico è che sto facendo un filemanager quindi mi piaceva visualizzare anche quelle come immagine

Grazie lo stesso !