()
Newbie
Messaggi:
Iscritto:
|
Salve ,
sto cercando di settare un immagine come sfondo, io avevo pensato di scaricare direttamente su un tmemorystream per poi caricarlo direttamente sul desktop.
La prima fase č facile ,peccato che non riesco a trovare un modo per poter settare direttamente sulla memoria dell ' immagine del desktop tutto il contenuto della tmemorystream senza passare per file .
Qualcuno di voi mi sa dare una mano ?
ho provato con questo codice ma non ha funzionato :
Codice sorgente - presumibilmente Delphi |
var Desktop: HDC; MyCanvas: TCanvas; MyRect: TRect; bitmap:Timage; begin Desktop := GetDC(GetDesktopWindow); MyCanvas:= TCanvas.Create; MyCanvas.Handle := Desktop; MyCanvas.Draw(0,0,form1.Image1.Picture.Graphic); MyCanvas.Refresh;
|
Premetto ho gia cercato su google!
|
|
systemgvp (Normal User)
Expert
Messaggi: 296
Iscritto: 14/04/2008
|
non ho capito bene dove lo vuoi caricare poi lo sfondo, o meglio dove lo devi impostare se come sfondo del desktop e del form o di altro?
|
|
()
Newbie
Messaggi:
Iscritto:
|
allora :
c'e un immagine su internet ... la carico in memoria .
Dopodiche io vorrei settare quell' immagine che risiede in memoria come sfondo del desktop senza dover per forza salvarla su file . Come posso fare?
|
|
Irvine (Normal User)
Pro
Messaggi: 86
Iscritto: 27/03/2010
|
prova con questa, al posto del percorso passa come paramentro l'immagine che hai creato ( che devi mettere in una varivile bitmap)
Codice sorgente - presumibilmente Delphi |
uses Windows, SysUtils; procedure SetWallpaper(const Filename: TFilename; Tiled: boolean); var sTiled: string; begin if Filename <> '' then begin if tiled then sTiled := '1' else sTiled := '0'; SetRegistryData(HKEY_CURRENT_USER, '\Control Panel\Desktop', 'TileWallpaper', rdString, sTiled); end; SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, Pointer(Filename), SPIF_UPDATEINIFILE); end;
|
e alla fine richiama con questa:
Codice sorgente - presumibilmente Plain Text |
SetWallpaper('percorso immagine bitmap', true);
|
per dichiare la variabile bitmap:
Codice sorgente - presumibilmente Delphi |
var nomevariabile : bitmap;
|
|
|
()
Newbie
Messaggi:
Iscritto:
|
Postato originariamente da Irvine:
prova con questa, al posto del percorso passa come paramentro l'immagine che hai creato ( che devi mettere in una varivile bitmap)
Codice sorgente - presumibilmente Delphi |
uses Windows, SysUtils; procedure SetWallpaper(const Filename: TFilename; Tiled: boolean); var sTiled: string; begin if Filename <> '' then begin if tiled then sTiled := '1' else sTiled := '0'; SetRegistryData(HKEY_CURRENT_USER, '\Control Panel\Desktop', 'TileWallpaper', rdString, sTiled); end; SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, Pointer(Filename), SPIF_UPDATEINIFILE); end;
|
e alla fine richiama con questa:
Codice sorgente - presumibilmente Plain Text |
SetWallpaper('percorso immagine bitmap', true);
|
per dichiare la variabile bitmap:
Codice sorgente - presumibilmente Delphi |
var nomevariabile : bitmap;
|
|
-.- ho detto senza salvare su file! ma parlo arabo? O.o |
|
Irvine (Normal User)
Pro
Messaggi: 86
Iscritto: 27/03/2010
|
infatti, basta che quando richiami la procedura al posto di passargli il percorso passi l'immagine direttamente, a me funziona bene
|
|
()
Newbie
Messaggi:
Iscritto:
|
puoi postare il tuo codice plz ?
|
|