BITMAP 32BITS INTÉGRÉ À LA VCL (TIMAGE, TPICTURE, TBITMAP, TOPENPICTUREDIALOG)

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 18 avril 2009 à 15:09
jeantentou Messages postés 10 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 22 avril 2009 - 22 avril 2009 à 06:46
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/49861-bitmap-32bits-integre-a-la-vcl-timage-tpicture-tbitmap-topenpicturedialog

jeantentou Messages postés 10 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 22 avril 2009
22 avril 2009 à 06:46
sauf erreur de ma part, ta remarque

************************************
en revanche ceci ne pose aucun problème:
var aBMP : TBitmap;
begin
aBMP := TBitmap.Create;
aBMP.Opacity := 180;
...
end;
************************************

n'est valable que dans une procedure, mais pas en variable globale
JP
jeantentou Messages postés 10 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 22 avril 2009
20 avril 2009 à 11:41
merci à Cirec
cette source est bien plus "globale" que tout ce que j'ai pu trouver ou faire sur ce sujet. Et en plus, c'est rapide!
JP
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
20 avril 2009 à 10:29
Salut Cirec,

Merci pour cette source très intéressante. Pourrais-tu m'expliquer un peu plus en détail où se trouve la surcharge du TBitmap ?
J'avais vu, il y a déjà un bout de temps, une source très utile de DelphiProg qui permet de "dériver" des composants en déclarant un type sur une unité TComboBox = Class(MonCombo.TComboBox).
Du coup, j'ai fait quelques unités pour ajouter des fonctions à certains composants (CheckListBox, DateTimePicker, IDFTP...). Mais je suis obligé d'appeler cette dérivation sur chaque unité où je pose ces composants.
Ta méthode me semble permettre d'enregistrer définitivement les modifications de la classe. J'aimerais donc bien comprendre comment tu fais pour essayer de l'appliquer à mes modifs de composants.

Pour illustrer (et éclairer ?) ma question, je joins un exemple de modif du IDFTP

unit UMdf_IDFTP;

interface
uses IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP;
type
TIdFTP = class(IdFTP.TIdFTP)
Published
procedure LockDir(ADir : String);
procedure UnlockDir(ADir : String);
end;

implementation
procedure TIdFTP.LockDir(ADir : String);
begin
Site('CHMOD 555 '+ ADir);
end;

procedure TIdFTP.UnlockDir(ADir : String);
begin
Site('CHMOD 755 '+ ADir);
end;
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
19 avril 2009 à 16:43
c'est donc de ça que tu me parlais Cirec ...
en effet , c'est bien différent ^^

j'ai pas delphi ici mais je garde sous la main ;)

Nico
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
18 avril 2009 à 23:50
Bon voilà je me suis rattrapé sur une autre source concoctée pendant le reste de l'après-midi et ce soir ! Plus de bitmaps, je pense être en terrain à peu près connu sur ce coup-là ... quand-est-ce que ce bug va être réparé ?
Bon j'espère que cette source sera plus intéressante :)

Cordialement, Bacterius !
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
18 avril 2009 à 22:52
Merci Cirec pour la suppression :)

Cordialement, Bacterius !
Utilisateur anonyme
18 avril 2009 à 19:25
Bon je l'ai activé mais c'est pas trop dans la ligné ...

quand on reprend un code c'est pour l'améliorer ... pas l'inverse ... non !!!
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
18 avril 2009 à 18:13
J'ai mis une source qui est supposée s'inscrire dans la continuité de ta source Cirec. Le bug du code desactivé sans raison semble se poursuivre ...

Cordialement, Bacterius !
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
18 avril 2009 à 17:49
pou la ZLib, utilise la ZLibEx
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
18 avril 2009 à 15:54
Bizarre j'ai eu la même idée il y a quelques jours, mais sous la forme d'un composant non-visuel qui enveloppait un fichier bitmap 32 bits ... pas pensé àsurcharger la classe TBitmap ... enfin bref ça marchait (pas très ergonomique dans l'utilisation), mais je ne m'était pas attardé sur la compression. Bref j'avais abandonné ce projet.
Je crois bien que je vais essayer de le reprendre, en utilisant les techniques que j'aurai apprises dans ce source ... je la mets en favoris pour une lecture ultérieure, pas vraiment le temps maintenant ... Mais ça a l'air très intéressant (tout ce qui est image est cool).

Cordialement, Bacterius !

PS : tu as posté cette source graçe à un thread de forum vieux de plusieurs mois ? ^^
Utilisateur anonyme
18 avril 2009 à 15:18
mdr
oui c'est vrai ... j'avais la compression mais un problème lors de la lecture (décompression) du flux sous D7 .. à cause de la ZLib :( j'ai donc retiré cette option mais
avec D2009 ça fonctionne très bien par contre. et la compression est meilleur qu'en PNG

content que ça te plaise ... Merci pour l'appréciation.
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
18 avril 2009 à 15:09
Felicitation, tu viens de reinventer le PNG sans compression :D
hahaha

en tout cas c'est pas mal, code propre et utile.
Rejoignez-nous