Composants transparents ??

cs_costello Messages postés 136 Date d'inscription lundi 2 septembre 2002 Statut Membre Dernière intervention 15 février 2006 - 3 févr. 2003 à 12:50
cs_pepitto Messages postés 22 Date d'inscription jeudi 13 novembre 2003 Statut Membre Dernière intervention 25 juin 2008 - 27 janv. 2006 à 23:09
Comment rendre un composant transparent ?
J'ai une StringGrid qui prend toute la Form, mé je voudrais mettre 1 arrière plan (d'une couleur pas unie quoi).

comment on fait ?

2 réponses

cs_Bestiol Messages postés 833 Date d'inscription dimanche 6 janvier 2002 Statut Membre Dernière intervention 3 novembre 2005 1
4 févr. 2003 à 19:10
Pour rendre un composant standard transparent, c'est pas vraiment possible !! A moins de bidouiller un peu... A la limite, si tu peux dessiner sur ton composant... Mais sinon, il faudrait que tu crées ta propre StringGrid, qui gérerait la mise en place d'un fond !!

C'est a mon avis, pas simple !!
Bonne prog' quand même !
[mailto:bestiol@cario.fr Bestiol.]
0
cs_pepitto Messages postés 22 Date d'inscription jeudi 13 novembre 2003 Statut Membre Dernière intervention 25 juin 2008
27 janv. 2006 à 23:09
J'ai une petite bidouille utilise l'evenement OnDrawCellcrées pour commence une image dans ta form (Align alclien - Visible False)
Name = image1 pour l'exemple.
Charge une image
!!!! Attention , j'ai eu des Problèmes en chargent un JPEG, utilise donc de préférense un BMP !!!!

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
Var R : TRect;
begin
// on évite de dessiner dans les Lignes et clolones fixes // (FixedCols 1 - FixedRows 1)
if (Acol > 0) and (ARow > 0) then
begin
R := Rect;
R.Left := rect.Left + 1; // pour garder les lignes dessinées
R.Top := rect.Top + 1;
StringGrid1.Canvas.Brush.Style := bsSolid;
StringGrid1.Canvas.CopyRect(R,Image1.Canvas,R); // dessine le fond de la case
StringGrid1.Canvas.Brush.Style := bsClear; // permet d'avoir le fond transparent
// quand on réécrit le texte

StringGrid1.Canvas.Font.Color := $FFFFFF; // nodification de la couleur du texte (option)
StringGrid1.Canvas.Font.Style := [fsBold];

// on dessine le texte dans le cadre <<R>> pour ne pas sortir de la cellule
StringGrid1.Canvas.TextRect(R,R.Left,R.Top,StringGrid1.Cells[ACol,ARow]);
end;
end;

Voila !!
j'espère que l'astuce te suffira;

(:-o) salut à toi
0
Rejoignez-nous