Bonjour,
Suite à la discussion précédente
j'arrive désormais à explorer les styles (cachés ou non) que ce soit en tant que fichier .style, .fsf ou même en .res.
ici, le style Gnome (oui, il existe, je l'ai "récupéré" avec le programme de la discussion précédente) et pourtant le programme est Windows32
Comme vous le constatez sur cette image, je suis capable d'afficher les images utilisées.
Pour certains styles je suis même capable de visualiser, plus ou moins correctement, quelques uns des éléments
Malheureusement ce n'est pas le cas de tous les éléments listés. Logique, ce ne sont pas que des contrôles visuels.
Ma première question du jour : comment savoir si un élément est un contrôle visuel . J'ai déjà distingué 3 cas TControl, TText, TImage
Mais du coup, j'ai un certaine frustration, si je dois essayer de retrouver tous les types, quelle galère !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 if Assigned(Compo) then begin if compo is Tcontrol then begin if Assigned(Backg) then begin Back := Backg.Clone(Layout1) as TControl; Back.Align := TAlignLayout.Client; Back.Parent := Layout1; Back.HitTest:=false; end else Back := nil; var Comp := Compo.Clone(Layout1) as TControl; comp.Visible := true; Comp.Align := TAlignLayout.Center; comp.HitTest:=False; if Assigned(Backg) then comp.Parent := Back else Comp.Parent := Layout1; end; if compo is TText then begin var Comp := Compo.Clone(Layout1) as TText; comp.Visible := true; comp.Text := 'Hello World'; comp.AutoSize := true; Comp.Align := TAlignLayout.Center; Comp.HitTest:=False; if Assigned(Backg) then comp.Parent := Back else Comp.Parent := Layout1; end; if compo is TImage then begin var comp := Compo.Clone(Layout1) as TImage; comp.Bitmap := comp.MultiResBitmap.Items[0].Bitmap; comp.Parent := Layout1; comp.Align := TalignLayout.Client; comp.Margins.Rect := TRect.Create(3, 3, 3, 3); comp.wrapmode := Timagewrapmode.Stretch; comp.HitTest:=False; comp.Visible := true; // je me suis fait avoir par défaut c'est false ! Du coup j'ai reproduit sur les autres types end;
N.B. La plupart des éléments des styles Linux ne se dessine pas je ne sais pour quelle raison
Cela étant, j'obtiens bien le dessin mais pas vraiment ce que je cherche : le composant qui utilise l'élément de style.
Prenons l'exemple du bouton de l'image #2, elle a certainement un texte mais je suis incapable de le représenter.
Toute idée sera bienvenue.









Répondre avec citation

. 

















Partager