<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Forum du club des développeurs et IT Pro - Composants FMX</title>
		<link>https://www.developpez.net/forums/</link>
		<description>Utilisation des différents composants FMX (FireMonkey Framework)</description>
		<language>fr</language>
		<lastBuildDate>Wed, 03 Jun 2026 17:09:34 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>15</ttl>
		<image>
			<url>https://forum.developpez.be/images/misc/rss.png</url>
			<title>Forum du club des développeurs et IT Pro - Composants FMX</title>
			<link>https://www.developpez.net/forums/</link>
		</image>
		<item>
			<title>Analyser une image contenant un gradient (dégradé de couleurs)</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2183864&amp;goto=newpost</link>
			<pubDate>Mon, 25 May 2026 07:47:30 GMT</pubDate>
			<description>Bonjour, 
 
Je cherche des...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Je cherche des pistes pour mieux définir mon analyse de gradient.<br />
<br />
Mon programme test est basique. Au design je créé un rectangle avec un gradient.<br />
<br />
puis via le onclick j'utilise ce code <br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">procedure</span> TForm3.Rectangle2Click<span class="br0">&#40;</span>Sender: <span style="color: #0080ff;">TObject</span><span class="br0">&#41;</span>;
<span style="color: #0000ff;">var</span> bmp : Tbitmap;
    dbmp : TBitmapData;
    dobreak : <span style="color: #0080ff;">boolean</span>;
    x,y :<span style="color: #0080ff;">integer</span>;
<span style="color: #0000ff;">begin</span>
 bmp:=Rectangle2.MakeScreenshot;
 bmp.Map<span class="br0">&#40;</span>TMapAccess.read,dbmp<span class="br0">&#41;</span>;
 <span style="color: #0000ff;">var</span> tcolor:=dbmp.GetPixel<span class="br0">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span class="br0">&#41;</span>;   <span style="color: #808080;">// topleft</span>
 <span style="color: #0000ff;">var</span> cColor:=dbmp.GetPixel<span class="br0">&#40;</span>dbmp.width <span style="color: #0000ff;">div</span> <span style="color: #cc66cc;">2</span>, dbmp.height <span style="color: #0000ff;">div</span> <span style="color: #cc66cc;">2</span><span class="br0">&#41;</span>;   <span style="color: #808080;">// center</span>
 radiant.text:=format<span class="br0">&#40;</span><span style="color: #FF0000;">'%s %s'</span>,<span class="br0">&#91;</span>AlphaColorToString<span class="br0">&#40;</span>tcolor<span class="br0">&#41;</span>, AlphaColorToString<span class="br0">&#40;</span>ccolor<span class="br0">&#41;</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;
 bmp.Unmap<span class="br0">&#40;</span>dbmp<span class="br0">&#41;</span>;
 freeandnil<span class="br0">&#40;</span>bmp<span class="br0">&#41;</span>;
<span style="color: #0000ff;">end</span>;</pre></td></tr></table></code><hr />
</div><img src="https://www.developpez.net/forums/attachments/p676494d1779693391/environnements-developpement/delphi/composants-fmx/analyser-image-contenant-gradient-degrade-couleurs/capture.png/" border="0" alt="Nom : Capture.png
Affichages : 101
Taille : 24,8 Ko"  style="float: CONFIG" /><br />
<br />
Facile, oui, mais, ce n'est qu'un exemple particulier !  <br />
Comment détecter le type (radial dans cet exemple) et surtout le centre ? <br />
Dans le cas d'un gradient linéaire cela devient encore plus compliqué puisque l'angle va jouer !<br />
<br />
Et enfin, je ne me suis arrêté qu'à deux couleurs or les possibilités des gradients (même si je trouve que le designer est plutôt bogué) sont énormes.<br />
<br />
Il y a déjà un bail, j'avais fait un truc par code  pour un <a href="https://www.developpez.net/forums/d2130365-2/environnements-developpement/delphi/composants-fmx/centre-gradient-utilisation-globalusegpucanvas-skia/" target="_blank">composant led<br />
</a> . Cet aparté me fait penser que depuis 2022 les choses ont peut-être changé :roll:<br />
<br />
Vous vous poserez peut-être la question du pourquoi je me casse la tête. Ma réponse : cela concerne toujours les styles firemonkey  <br />
<img src="https://www.developpez.net/forums/attachments/p676495d1779694928/environnements-developpement/delphi/composants-fmx/analyser-image-contenant-gradient-degrade-couleurs/capture.png/" border="0" alt="Nom : Capture.png
Affichages : 104
Taille : 155,0 Ko"  style="float: CONFIG" /><br />
Comment extraire le gradient du style Calypso complexe puisqu'il me semble qu'il est impossible à réaliser avec Delphi, il doit manquer les gradients de type conique et mesh (encore que pour ce dernier je pense que ce n'est qu'un problème de centre)</div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p676494d1779693391/environnements-developpement/delphi/composants-fmx/analyser-image-contenant-gradient-degrade-couleurs/capture.png/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p676495d1779694928/environnements-developpement/delphi/composants-fmx/analyser-image-contenant-gradient-degrade-couleurs/capture.png/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1683/environnements-developpement/delphi/composants-fmx/">Composants FMX</category>
			<dc:creator>SergioMaster</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2183864/environnements-developpement/delphi/composants-fmx/analyser-image-contenant-gradient-degrade-couleurs/</guid>
		</item>
		<item>
			<title><![CDATA[[Windows] Les styles Metroplis*.style]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2183533&amp;goto=newpost</link>
			<pubDate>Sat, 02 May 2026 08:54:39 GMT</pubDate>
			<description>Bonjour, 
Toujours dans ma...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
Toujours dans ma future unité permettant un dialogue d'ouverture de fichier je suis &quot;tombé&quot; sur un cas étrange voilà deux images. <br />
<br />
Déjà que les styles W10Modern*.style ne respectent pas les hauteurs des composants lors du design (je pense en connaitre la raison).<br />
<br />
<img src="https://www.developpez.net/forums/attachments/p676094d1777711389/environnements-developpement/delphi/composants-fmx/styles-metroplis-style/capture.png/" border="0" alt="Nom : Capture.png
Affichages : 106
Taille : 83,7 Ko"  style="float: CONFIG" /><br />
<br />
C'est surtout la seconde image qui m'interpelle.<br />
<br />
<img src="https://www.developpez.net/forums/attachments/p676095d1777711420/environnements-developpement/delphi/composants-fmx/styles-metroplis-style/capture_3.png/" border="0" alt="Nom : Capture_3.PNG
Affichages : 98
Taille : 70,4 Ko"  style="float: CONFIG" /> <br />
<br />
Comme vous le constatez l'arborescence est boguée (pour ne pas dire de gros mots).<br />
<br />
Questions : Pourquoi ? Comment m'en sortir ? C'est quoi metropolis de Microsoft (j'ai complètement oublié) ? <br />
<br />
Aucune urgence, je vais simplement enlever ces Metropolisxxx de ma boite de choix, mais quand même, c'est étrange et c'est le genre de chose qui surprend.</div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p676094d1777711389/environnements-developpement/delphi/composants-fmx/styles-metroplis-style/capture.png/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p676095d1777711420/environnements-developpement/delphi/composants-fmx/styles-metroplis-style/capture_3.png/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1683/environnements-developpement/delphi/composants-fmx/">Composants FMX</category>
			<dc:creator>SergioMaster</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2183533/environnements-developpement/delphi/composants-fmx/styles-metroplis-style/</guid>
		</item>
		<item>
			<title><![CDATA[[Windows] Faire une arborescence de répertoires (Delphi 12+)]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2183322&amp;goto=newpost</link>
			<pubDate>Tue, 21 Apr 2026 08:17:07 GMT</pubDate>
			<description>Bonjour, 
 
Je me suis lancé...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Je me suis lancé dans une sorte de défi : Faire l'équivalent d'un TOpendialog mais avec &quot;style&quot;. Pour l'instant je m'occupe de la partie répertoires<br />
<img src="https://www.developpez.net/forums/attachments/p675777d1776758322/environnements-developpement/delphi/composants-fmx/faire-arborescence-repertoires-delphi-12p/capture.png/" border="0" alt="Nom : Capture.png
Affichages : 174
Taille : 29,3 Ko"  style="float: CONFIG" /><br />
Mais je tombe sur un os :   <br />
 EDirectoryNotFoundException 'Impossible de trouver le chemin spécifié [C:\Documents and Settings]'.<br />
<br />
Qu'est-ce que ce c:\Documents and Settings ? Un lien symbolique<br />
<br />
Si je sais comment ne plus afficher ce &quot;Documents and settings&quot; simplement en déplaçant  les lignes  <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block"><span style="color: #0000ff;">try</span>  HasChildren := Length<span class="br0">&#40;</span>TDirectory.GetDirectories<span class="br0">&#40;</span>SubDir<span class="br0">&#41;</span><span class="br0">&#41;</span> &gt; <span style="color: #cc66cc;">0</span>;</span> comme marqué ici en rouge,  <br />
je ne voudrai pas passé à coté d'un lien particulier.<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br /></div></td><td valign="top"><pre style="margin: 0">procedure TForm1.AddDirectories(ParentNode: TTreeviewItem; const Path: string);
var
  SubDirs: TStringDynArray;
  SubDir: string;
  NewNode: TTreeviewItem;
  HasChildren: Boolean;
begin
  // Récupère tous les sous-répertoires en une seule ligne
  if DirectoryExists(Path) then
  begin
    SubDirs := TDirectory.GetDirectories(Path, '*',
      TSearchOption.soTopDirectoryOnly);
    for SubDir in SubDirs do
    begin
<font color="#FF0000"> //      try
 //        HasChildren := Length(TDirectory.GetDirectories(SubDir)) &gt; 0;
</font>        NewNode := TTreeViewItem.Create(ParentNode);
        NewNode.Parent := ParentNode;
        NewNode.Text := TPath.GetFileName(SubDir); // Nom seul, sans le chemin
        NewNode.ImageIndex := 0;
        NewNode.TagString := StrNew(PChar(SubDir)); // Chemin complet stocké
        NewNode.OnClick := TreeViewItemClick;
        // Vérifie si ce sous-dossier a lui-même des enfants
        // pour afficher ou non le bouton [+]
        try
          HasChildren := Length(TDirectory.GetDirectories(SubDir)) &gt; 0;
        except
          HasChildren := False;
        end;

        if HasChildren then
          // Nœud fantôme : déclenche l'affichage du bouton [+]
          NoeudFantome(NewNode);
    end;
  end;
end;</pre></td></tr></table></code><hr />
</div>utilisation <br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">procedure</span> TForm3.AddSystemPath;
<span style="color: #0000ff;">var</span>
  SystemItem, DiskItem: TTreeViewItem;
<span style="color: #0000ff;">begin</span>
  SystemItem := TTreeViewItem.Create<span class="br0">&#40;</span><span style="color: #0000ff;">Self</span><span class="br0">&#41;</span>;
  SystemItem.Text := <span style="color: #FF0000;">'Ce PC'</span>;
  SystemItem.ImageIndex := <span style="color: #cc66cc;">2</span>;
  SystemItem.TagString := <span style="color: #FF0000;">''</span>;
  SystemItem.OnClick := TreeViewItemClick;
  SystemItem.Parent := TreeView1;
  <span style="color: #0000ff;">for</span> <span style="color: #0000ff;">var</span> s <span style="color: #0000ff;">in</span> TDirectory.GetLogicalDrives <span style="color: #0000ff;">do</span>
  <span style="color: #0000ff;">begin</span>
    DiskItem := TTreeViewItem.Create<span class="br0">&#40;</span><span style="color: #0000ff;">Self</span><span class="br0">&#41;</span>;
    DiskItem.Parent := SystemItem;
    DiskItem.Text := s;
    DiskItem.ImageIndex := <span style="color: #cc66cc;">3</span>;
    DiskItem.TagString := S;
    DiskItem.OnClick := TreeViewItemClick;
    AddDirectories<span class="br0">&#40;</span>DiskItem, S<span class="br0">&#41;</span>;
  <span style="color: #0000ff;">end</span>;
<span style="color: #0000ff;">end</span>;</pre></td></tr></table></code><hr />
</div>En bref, GetDirectories est rapide mais est-ce la meilleure solution ?<br />
<br />
En attendant, je vais continuer en codant la partie onExpand</div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p675777d1776758322/environnements-developpement/delphi/composants-fmx/faire-arborescence-repertoires-delphi-12p/capture.png/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1683/environnements-developpement/delphi/composants-fmx/">Composants FMX</category>
			<dc:creator>SergioMaster</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2183322/environnements-developpement/delphi/composants-fmx/faire-arborescence-repertoires-delphi-12p/</guid>
		</item>
		<item>
			<title><![CDATA[[Windows] Fusion de menu]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2183196&amp;goto=newpost</link>
			<pubDate>Tue, 14 Apr 2026 06:32:10 GMT</pubDate>
			<description>Bonjour, 
 
Si en VCL la...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Si en VCL la fusion de menu est simple, je n'ai pas trouvé son équivalent. A moins que ce soit moi ?<br />
<br />
Ajouter des éléments de menu est semble t-il assez simple, j'ai fait un truc de ce genre :<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">procedure</span> Tcomparateur.RefreshWindowsMnu;
<span style="color: #0000ff;">var</span> amnuItem : TMenuItem;
<span style="color: #0000ff;">begin</span>
<span style="color: #0000ff;">for</span> <span style="color: #0000ff;">var</span> F  <span style="color: #0000ff;">in</span> Datas.Childforms <span style="color: #0000ff;">do</span>     <span style="color: #808080;">//  Childforms  est TDictionary&lt;String,PForm&gt;, PForm : un pointeur de TForm</span>
  <span style="color: #0000ff;">begin</span>
    amnuitem:=TmenuItem.Create<span class="br0">&#40;</span>Fenetres<span class="br0">&#41;</span>;   <span style="color: #808080;">// fenetres est un TMenuItem</span>
    amnuItem.Parent:=Fenetres;
    amnuItem.Text:=F.Key;
    amnuItem.name:=StringReplace<span class="br0">&#40;</span>F.key,<span style="color: #FF0000;">'.'</span>,<span style="color: #FF0000;">''</span>,<span class="br0">&#91;</span>rfReplaceAll<span class="br0">&#93;</span><span class="br0">&#41;</span>;
    amnuItem.OnClick:=ShowChildWindow;
  <span style="color: #0000ff;">end</span>;
<span style="color: #0000ff;">end</span>;</pre></td></tr></table></code><hr />
</div>Mais qu'en est-il de la suppression d'un élément ainsi créé ?<br />
<br />
Question subsidiaire : comment faire en sorte d'insérer les items créés au dessus des options &quot;fixe&quot; (par exemple Fermer tout, Réduire tout) ?</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1683/environnements-developpement/delphi/composants-fmx/">Composants FMX</category>
			<dc:creator>SergioMaster</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2183196/environnements-developpement/delphi/composants-fmx/fusion-menu/</guid>
		</item>
		<item>
			<title>Utilisation de TImageViewer</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182991&amp;goto=newpost</link>
			<pubDate>Thu, 02 Apr 2026 10:05:34 GMT</pubDate>
			<description>Bonjour, 
Je veux visualiser...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
Je veux visualiser une image dans un <b>TImageviewer</b> et pouvoir adresser les pixels à l'aide la souris.<br />
Par défaut, qu'elle que soit la taille du composant définie à la création, la taille de l'image visualisée est adaptée à la fenêtre du composant (option &quot;bestfit&quot;). <br />
Le niveau de zoom peut alors être changé en utilisant la molette centrale de la souris, et le centrage de l'image ajusté avec les curseurs latéraux (option &quot;scroll&quot;). C'est parfait.<br />
Maintenant, en promenant la souris (option &quot;hittest'' et utilisation de l'événement &quot;mousemove&quot;), j'obtiens des coordonnées X et Y pour chaque pixel, qui semblent être des coordonnées ''écran''. <br />
J'ai bien trouvé la méthode &quot;screentolocal&quot; mais elle donne des coordonnées dans le composant (donc après centrage et zoom).<br />
Quelle est la méthode pour les transformer en coordonnées dans l'image initiale ?<br />
Merci, d'avance.</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1683/environnements-developpement/delphi/composants-fmx/">Composants FMX</category>
			<dc:creator>_alx_</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182991/environnements-developpement/delphi/composants-fmx/utilisation-timageviewer/</guid>
		</item>
		<item>
			<title><![CDATA[[Windows] TFlowLayout questions de manipulations]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182989&amp;goto=newpost</link>
			<pubDate>Thu, 02 Apr 2026 09:08:40 GMT</pubDate>
			<description>Bonjour, 
 
Dans mon...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Dans mon programme de comparateur de style (cf. <a href="https://www.developpez.net/forums/d2182909/environnements-developpement/delphi/composants-fmx/tableau-tframes-perte-focus-l-application/" target="_blank">discussion 1</a>, <a href="https://www.developpez.net/forums/d2182914/environnements-developpement/delphi/composants-fmx/obtenir-style-cours/" target="_blank">discusion 2</a>)<br />
j'utilise un TFlowLayout pour pour stocker des cadres (TFrame) tous identiques.<br />
<br />
Ma première question concerne le premier cadre posé. <b>Comment faire en sorte que le cadre montrant le style de référence soit toujours le premier dans le TFlowlayout ? </b><br />
Je m'explique, quand je démarre mon application (obligatoirement sous windows) j'obtiens mon &quot;style par défaut&quot; (selon la version de windows).<br />
J'ai une option de programme qui me permet de changer ce style (que je nomme mon style de référence) <br />
<img src="https://www.developpez.net/forums/attachments/p675358d1775120327/environnements-developpement/delphi/composants-fmx/tflowlayout-questions-manipulations/capture.png/" border="0" alt="Nom : Capture.png
Affichages : 85
Taille : 47,7 Ko"  style="float: CONFIG" /><br />
Seulement je voudrais que ce style de référence (dans cette image UbuntuClearFantasy) soit le premier cadre dans mon TLayout<br />
<br />
Deuxième question, beaucoup plus subsidiaire, j'ai mis ce TFlowLayout au sein d'un TScrollbox pour tenter d'obtenir un défilement, seulement, la plupart du temps je ne vois absolument pas les barres de défilement.<br />
Si, pour la barre horizontale, j'arrive à comprendre la cause autant pour la barre verticale j'ai de réels soucis l'affichage de cette barre étant vraiment trop aléatoire ! <br />
Je pense que mon souci vient essentiellement du calcul de la taille du TFlowLayout. <b>Comment calculer correctement ses hauteurs et largeurs et dans quel évènement ? </b></div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p675358d1775120327/environnements-developpement/delphi/composants-fmx/tflowlayout-questions-manipulations/capture.png/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1683/environnements-developpement/delphi/composants-fmx/">Composants FMX</category>
			<dc:creator>SergioMaster</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182989/environnements-developpement/delphi/composants-fmx/tflowlayout-questions-manipulations/</guid>
		</item>
		<item>
			<title>Obtenir le style en cours / Faire un comparateur</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182914&amp;goto=newpost</link>
			<pubDate>Sun, 29 Mar 2026 09:10:28 GMT</pubDate>
			<description>Bonjour, 
 
Il y a déjà un...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Il y a déjà un bail, que je sais comment obtenir le style d'un TControl en utilisant sa &quot;scene&quot; <br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #0000ff;">var</span> sb : TFMXObject;
<span style="color: #0000ff;">begin</span>
  <span style="color: #0000ff;">if</span> assigned<span class="br0">&#40;</span>btnStyle.Scene<span class="br0">&#41;</span> <span style="color: #0000ff;">then</span>
   <span style="color: #0000ff;">begin</span>
   <span style="color: #0000ff;">if</span> <span style="color: #0000ff;">not</span> Assigned<span class="br0">&#40;</span>btnStyle.Scene.StyleBook<span class="br0">&#41;</span> <span style="color: #0000ff;">then</span>
      sb := TStyleManager.ActiveStyleForScene<span class="br0">&#40;</span>btnstyle.Scene<span class="br0">&#41;</span>
    <span style="color: #0000ff;">else</span>
      sb := btnStyle.Scene.StyleBook.Style;</pre></td></tr></table></code><hr />
</div>seulement il ne s'agit pas du style de la fiche et j'ai un gros doute sur le résultat si je teste ce code dans le onCreate de la fiche<br />
<img src="https://www.developpez.net/forums/attachments/p675295d1774774127/environnements-developpement/delphi/composants-fmx/obtenir-style-cours-faire-comparateur/capture.png/" border="0" alt="Nom : Capture.png
Affichages : 267
Taille : 11,0 Ko"  style="float: CONFIG" /><br />
<br />
Mais voilà, un TForm n'est pas un TControl et donc, n'a pas de scene.<br />
<br />
Comment alors obtenir le style utilisé à la création de la forme si StyleBook est vide ?</div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p675295d1774774127/environnements-developpement/delphi/composants-fmx/obtenir-style-cours-faire-comparateur/capture.png/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1683/environnements-developpement/delphi/composants-fmx/">Composants FMX</category>
			<dc:creator>SergioMaster</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182914/environnements-developpement/delphi/composants-fmx/obtenir-style-cours-faire-comparateur/</guid>
		</item>
		<item>
			<title><![CDATA[Tableau de Tframes - perte de focus sur l'application]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182909&amp;goto=newpost</link>
			<pubDate>Sat, 28 Mar 2026 09:12:46 GMT</pubDate>
			<description>Bonjour, 
 
En fait, je tente...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
En fait, je tente de créer un comparateur de style. Pour cela dans ma fiche principale j'ai un TFlowlayout (ce qui ressemble beaucoup à un tableau d'où le titre).<br />
Voilà ce que cela donne (ceci n'est, pour l'instant, qu'un brouillon)<br />
<img src="https://www.developpez.net/forums/attachments/p675290d1774688138/environnements-developpement/delphi/composants-fmx/tableau-tframes-perte-focus-l-application/capture.png/" border="0" alt="Nom : Capture.png
Affichages : 105
Taille : 14,3 Ko"  style="float: CONFIG" /><br />
Comme vous le constaterez, il est possible de supprimer un élément du tableau et c'est peut-être de là que viens le souci.<br />
Si je ferme l'une de ces cadres, j'ai l'impression de perdre le focus. C'est à dire que je ne peux pas fermer la fenêtre principale. Il faut que je clique sur le bouton (même en annulant ensuite le dialogue) pour &quot;ré-avoir&quot; la main.<br />
Maintenant que j'y pense, j'ai déjà  eu ce cas lors de clôture d'onglet mais avec des Fiches &quot;dockées&quot;, je vais fouiller cette piste mais, en attendant, voici le code    <br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">type</span>
  TForm3 = <span style="color: #0000ff;">class</span><span class="br0">&#40;</span>TForm<span class="br0">&#41;</span>
    StyleBook1: TStyleBook;
    Button1: TButton;
    FlowLayout1: TFlowLayout;
    OpenDialog1: TOpenDialog;
    <span style="color: #0000ff;">procedure</span> Button1Click<span class="br0">&#40;</span>Sender: <span style="color: #0080ff;">TObject</span><span class="br0">&#41;</span>;
    <span style="color: #0000ff;">procedure</span> FormCreate<span class="br0">&#40;</span>Sender: <span style="color: #0080ff;">TObject</span><span class="br0">&#41;</span>;
    <span style="color: #0000ff;">procedure</span> FormClose<span class="br0">&#40;</span>Sender: <span style="color: #0080ff;">TObject</span>; <span style="color: #0000ff;">var</span> Action: TCloseAction<span class="br0">&#41;</span>;
  <span style="color: #0000ff;">private</span>
    <span style="color: #808080;">{ D&eacute;clarations priv&eacute;es }</span>
       FFrames : TDictionary&lt;<span style="color: #0080ff;">String</span>,TFrame&gt;;
       <span style="color: #0000ff;">procedure</span> CloseFrame<span class="br0">&#40;</span>Sender : <span style="color: #0080ff;">TObject</span><span class="br0">&#41;</span>;
  <span style="color: #0000ff;">public</span>
    <span style="color: #808080;">{ D&eacute;clarations publiques }</span>
  <span style="color: #0000ff;">end</span>;
&nbsp;
<span style="color: #0000ff;">var</span>
  Form3: TForm3;
&nbsp;
<span style="color: #0000ff;">implementation</span>
&nbsp;
<span style="color: #808080;">{$R *.fmx}</span>
&nbsp;
<span style="color: #0000ff;">procedure</span> TForm3.Button1Click<span class="br0">&#40;</span>Sender: <span style="color: #0080ff;">TObject</span><span class="br0">&#41;</span>;
<span style="color: #0000ff;">var</span> F : TFrame1;
<span style="color: #0000ff;">begin</span>
<span style="color: #0000ff;">if</span> opendialog1.execute <span style="color: #0000ff;">then</span>
<span style="color: #0000ff;">begin</span>
 <span style="color: #808080;">// pas de doublon possible</span>
 <span style="color: #0000ff;">if</span> <span style="color: #0000ff;">not</span> FFrames.ContainsKey<span class="br0">&#40;</span>ExtractFileName<span class="br0">&#40;</span>Opendialog1.FileName<span class="br0">&#41;</span><span class="br0">&#41;</span> <span style="color: #0000ff;">then</span>
 <span style="color: #0000ff;">begin</span>
   <span style="color: #808080;">// cr&eacute;ation du cadre</span>
   F:=TFrame1.Create<span class="br0">&#40;</span><span style="color: #0000ff;">Self</span><span class="br0">&#41;</span>;
   F.Parent:=FlowLayout1;
   <span style="color: #0000ff;">var</span> t:=StringReplace<span class="br0">&#40;</span>ExtractFileName<span class="br0">&#40;</span>Opendialog1.FileName<span class="br0">&#41;</span>,<span style="color: #FF0000;">'.'</span>,<span style="color: #FF0000;">''</span>,<span class="br0">&#91;</span>TReplaceFlag.rfReplaceAll<span class="br0">&#93;</span><span class="br0">&#41;</span>;
   F.Name:=T;
   F.Label1.Text:=ExtractFileName<span class="br0">&#40;</span>Opendialog1.FileName<span class="br0">&#41;</span>;
   F.SpeedButton1.TagObject:=F;  <span style="color: #808080;">// bouton de fermeture du cadre</span>
   F.SpeedButton1.OnClick:=CloseFrame;
   F.LoadStyle<span class="br0">&#40;</span>Opendialog1.FileName<span class="br0">&#41;</span>;   <span style="color: #808080;">// permet de charger le fond </span>
   FFrames.Add<span class="br0">&#40;</span>F.Label1.Text,F<span class="br0">&#41;</span>;
 <span style="color: #0000ff;">end</span>;
<span style="color: #0000ff;">end</span>;
<span style="color: #0000ff;">end</span>;
&nbsp;
<span style="color: #0000ff;">procedure</span> TForm3.CloseFrame<span class="br0">&#40;</span>Sender: <span style="color: #0080ff;">TObject</span><span class="br0">&#41;</span>;
<span style="color: #0000ff;">begin</span>
<span style="color: #808080;">// supprimer un cadre</span>
<span style="color: #0000ff;">var</span> F :=TSpeedButton<span class="br0">&#40;</span>Sender<span class="br0">&#41;</span>.TagObject <span style="color: #0000ff;">as</span> TFrame1;
FFrames.Remove<span class="br0">&#40;</span>F.Label1.Text<span class="br0">&#41;</span>;
FreeAndNil<span class="br0">&#40;</span>TSpeedButton<span class="br0">&#40;</span>Sender<span class="br0">&#41;</span>.TagObject<span class="br0">&#41;</span>;
<span style="color: #808080;">// Button1.SetFocus; fonctionne pas !?</span>
<span style="color: #0000ff;">end</span>;
&nbsp;
<span style="color: #0000ff;">procedure</span> TForm3.FormClose<span class="br0">&#40;</span>Sender: <span style="color: #0080ff;">TObject</span>; <span style="color: #0000ff;">var</span> Action: TCloseAction<span class="br0">&#41;</span>;
<span style="color: #0000ff;">var</span> F : TFrame;
<span style="color: #0000ff;">begin</span>
<span style="color: #808080;">// supprimer les cadres restant</span>
<span style="color: #0000ff;">for</span> <span style="color: #0000ff;">var</span> cle <span style="color: #0000ff;">in</span> FFrames.Keys <span style="color: #0000ff;">do</span>
 <span style="color: #0000ff;">begin</span>
  <span style="color: #0000ff;">if</span> FFrames.TryGetValue<span class="br0">&#40;</span>cle,F<span class="br0">&#41;</span> <span style="color: #0000ff;">then</span> F.Free;
  FFrames.Remove<span class="br0">&#40;</span>cle<span class="br0">&#41;</span>;
 <span style="color: #0000ff;">end</span>;
<span style="color: #808080;">// supprimer le dictionnaire</span>
FreeAndNil<span class="br0">&#40;</span>FFrames<span class="br0">&#41;</span>;
<span style="color: #0000ff;">end</span>;
&nbsp;
<span style="color: #0000ff;">procedure</span> TForm3.FormCreate<span class="br0">&#40;</span>Sender: <span style="color: #0080ff;">TObject</span><span class="br0">&#41;</span>;
<span style="color: #0000ff;">begin</span>
<span style="color: #808080;">// cr&eacute;er de dictionnaire</span>
FFrames:=TDictionary&lt;<span style="color: #0080ff;">String</span>,TFrame&gt;.Create;
<span style="color: #0000ff;">end</span>;</pre></td></tr></table></code><hr />
</div><div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">constructor</span> TFrame1.Create<span class="br0">&#40;</span>AOwner: TComponent<span class="br0">&#41;</span>;
<span style="color: #0000ff;">begin</span>
<span style="color: #0000ff;">inherited</span>;
StyleBook:=TStyleBook.Create<span class="br0">&#40;</span><span style="color: #0000ff;">self</span><span class="br0">&#41;</span>;
<span style="color: #0000ff;">end</span>;
&nbsp;
<span style="color: #0000ff;">destructor</span> TFrame1.Destroy;
<span style="color: #0000ff;">begin</span>
StyleBook.Free;
<span style="color: #0000ff;">inherited</span>;
<span style="color: #0000ff;">end</span>;
&nbsp;
<span style="color: #0000ff;">procedure</span> TFrame1.LoadStyle<span class="br0">&#40;</span><span style="color: #0000ff;">const</span> filename: <span style="color: #0080ff;">String</span><span class="br0">&#41;</span>;
<span style="color: #0000ff;">var</span> aStream : TMemoryStream;
    Back: TControl;
<span style="color: #0000ff;">begin</span>
aStream:=TMemoryStream.Create;
<span style="color: #0000ff;">try</span>
  aStream.LoadFromFile<span class="br0">&#40;</span>FileName<span class="br0">&#41;</span>;
  aStream.Position:=<span style="color: #cc66cc;">0</span>;
  StyleBook.LoadFromStream<span class="br0">&#40;</span>aStream<span class="br0">&#41;</span>;
<span style="color: #0000ff;">finally</span>
  aStream.Free;
<span style="color: #0000ff;">end</span>;
<span style="color: #0000ff;">var</span> Style := StyleBook.Styles<span class="br0">&#91;</span><span style="color: #cc66cc;">0</span><span class="br0">&#93;</span>.Style;
<span style="color: #0000ff;">var</span> Backg := Style.FindStyleResource<span class="br0">&#40;</span><span style="color: #FF0000;">'backgroundstyle'</span><span class="br0">&#41;</span>;
       <span style="color: #0000ff;">if</span> Assigned<span class="br0">&#40;</span>Backg<span class="br0">&#41;</span> <span style="color: #0000ff;">then</span>
        <span style="color: #0000ff;">begin</span>
          Back := Backg.Clone<span class="br0">&#40;</span>LayoutView<span class="br0">&#41;</span> <span style="color: #0000ff;">as</span> TControl;
          Back.Parent := LayoutView;
          Back.Align := TAlignLayout.Client;
          Back.HitTest := <span style="color: #0000ff;">false</span>;
          Back.Visible := <span style="color: #0000ff;">True</span>;
        <span style="color: #0000ff;">end</span>;
&nbsp;
<span style="color: #0000ff;">end</span>;</pre></td></tr></table></code><hr />
</div></div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p675290d1774688138/environnements-developpement/delphi/composants-fmx/tableau-tframes-perte-focus-l-application/capture.png/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1683/environnements-developpement/delphi/composants-fmx/">Composants FMX</category>
			<dc:creator>SergioMaster</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182909/environnements-developpement/delphi/composants-fmx/tableau-tframes-perte-focus-l-application/</guid>
		</item>
		<item>
			<title><![CDATA[[Android] Quelle mémoire allouée et quelle mémoire utilisée par une app?]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182569&amp;goto=newpost</link>
			<pubDate>Wed, 11 Mar 2026 09:55:32 GMT</pubDate>
			<description>Petit préambule: Je poste...</description>
			<content:encoded><![CDATA[<div>Petit préambule: Je poste cette discussion sous &quot;Composants FMX&quot; bien que cela ne concerne pas vraiment un composant FMX mais plus précisément une problématique posée par Android et comme il n'y a pas un chapitre Delphi/Android, je poste la discussion sous FMX (parce que le plus souvent FMX = app multi-plateforme = Android)<br />
<br />
Mon problème: Afficher dans une app, la mémoire allouée à l'app par Android et la mémoire vraiment utilisée à l'instant t...<br />
<br />
J'ai beau eu cherché, j'ai pas trouvé la solution:<br />
<br />
1. Je peux afficher la mémoire totale de l'appareil et la mémoire encore disponible à l'instant t, mais cela ne dit rien puisque par une soustraction on va obtenir la mémoire utilisée par la totalité des app qui tournent sur l'appareil Android et pas spécifiquement pour une app donnée<br />
<br />
2. On peut vérifier dans les options de développement de l'appareil Android, l'utilisation moyenne de la mémoire faite par l'app sur une durée prédéfinie du genre 1 jour, 3 jours, 1 semaine  &gt;&gt;&gt; Ce n'est pas ce que je veux!<br />
<br />
3. On peut visualiser l'utilisation de la mémoire via Android Studio  &gt;&gt;&gt; Ce n'est pas ce que je veux!<br />
<br />
<br />
Est-ce que quelqu'un connait un moyen d'obtenir la mémoire max allouée à une app et la mémoire vraiment utilisée pas une app Android via du code Delphi?</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1683/environnements-developpement/delphi/composants-fmx/">Composants FMX</category>
			<dc:creator>Anselme45</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182569/environnements-developpement/delphi/composants-fmx/memoire-allouee-memoire-utilisee-app/</guid>
		</item>
		<item>
			<title>Un bouton avec un TSKSVG</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182374&amp;goto=newpost</link>
			<pubDate>Sat, 28 Feb 2026 08:06:52 GMT</pubDate>
			<description>---Citation (Envoyé par...</description>
			<content:encoded><![CDATA[<div><div class="bbcode_container">
	<div class="bbcode_description">Citation:</div>
	<div class="bbcode_quote printable">
		<hr />
		
			<div>
				Envoyé par <strong>SergioMaster</strong>
				<a href="d2182249-m12115934/environnements-developpement/delphi/composants-fmx/modifier-style-runtime-suite-analyse/#post12115934" rel="nofollow"><img class="inlineimg" src="https://forum.developpez.be/images/buttons/viewpost.gif" alt="Voir le message" /></a>
			</div>
			<div class="message">Qui n'est pas frustré par la taille des glyphes dans un FMX.TButton, sans parler du fait que l'on retombe dans l'utilisation d'un TImageList (avec 3 tailles par icones), impossible à agrandir sans passer par du code ! Un de mes projets est de créer un nouveau composant utilisant un SVG à la place du glyphe histoire de m'affranchir de la TimageList et de gérer la taille ou du moins d'en faire quelque chose de plus &quot;visible&quot;.</div>
			
		<hr />
	</div>
</div>Une première ébauche avant de passer au stade composant.<br />
<br />
Au design <br />
<img src="https://www.developpez.net/forums/attachments/p674624d1772264450/environnements-developpement/delphi/composants-fmx/bouton-tsksvg/capture.png/" border="0" alt="Nom : Capture.png
Affichages : 105
Taille : 6,3 Ko"  style="float: CONFIG" /><br />
<br />
Comme vous le constaterez, pas de TStyleBook.<br />
Le style est en fait inclus dans une ressource &quot;indépendante&quot;<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #808080;">{$R svgbuttonstyle.res svgbuttonstyle.rc}</span>
&nbsp;
<span style="color: #0000ff;">procedure</span> TForm1.Button2Click<span class="br0">&#40;</span>Sender: <span style="color: #0080ff;">TObject</span><span class="br0">&#41;</span>;
<span style="color: #0000ff;">begin</span>
button1.IsPressed:=<span style="color: #0000ff;">not</span> button1.IsPressed;
<span style="color: #0000ff;">var</span> t:=button1.FindStyleResource<span class="br0">&#40;</span><span style="color: #FF0000;">'pressedstyle'</span><span class="br0">&#41;</span>;
<span style="color: #0000ff;">if</span> assigned<span class="br0">&#40;</span>t<span class="br0">&#41;</span> <span style="color: #0000ff;">then</span> TColorAnimation<span class="br0">&#40;</span>t<span class="br0">&#41;</span>.Enabled:=button1.IsPressed;
<span style="color: #0000ff;">end</span>;
&nbsp;
<span style="color: #0000ff;">procedure</span> TForm1.FormCreate<span class="br0">&#40;</span>Sender: <span style="color: #0080ff;">TObject</span><span class="br0">&#41;</span>;
<span style="color: #0000ff;">begin</span>
button1.ApplyStyleLookup;
<span style="color: #0000ff;">end</span>;
&nbsp;
<span style="color: #0000ff;">initialization</span>
 TStyleStreaming.LoadFromResource<span class="br0">&#40;</span>HInstance,<span style="color: #FF0000;">'fmxsvgbuttonstyle'</span>,RT_RCDATA<span class="br0">&#41;</span>;</pre></td></tr></table></code><hr />
</div>et voilà un premier résultat<br />
<img src="https://www.developpez.net/forums/attachments/p674625d1772264995/environnements-developpement/delphi/composants-fmx/bouton-tsksvg/fmxsvgbuttonstyle.gif/" border="0" alt="Nom : fmxsvgbuttonstyle.gif
Affichages : 114
Taille : 364,1 Ko"  style="float: CONFIG" /><br />
<br />
Mais tout n'est pas rose, j'ai un problème avec le ispressed  : si je repasse avec la souris je perd la couleur définie par le trigger ispressed :weird:<br />
<br />
<br />
contenu du fichier .rc ?<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">fmxsvgbuttonstyle RCDATA <span style="color: #FF0000;">&quot;FMX.svgbuttonstyle.fsf&quot;</span></code><hr />
</div>le &quot;source&quot; du style ?<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">object</span> TStyleContainer
  <span style="color: #0000ff;">object</span> TLayout
    StyleName = <span style="color: #FF0000;">'svgbuttonstyle'</span>
    Align = Center
    Size.Width = <span style="color: #cc66cc;">177.666687011718800000</span>
    Size.Height = <span style="color: #cc66cc;">38.000000000000000000</span>
    Size.PlatformDefault = <span style="color: #0000ff;">False</span>
    Visible = <span style="color: #0000ff;">False</span>
    TabOrder = <span style="color: #cc66cc;">0</span>
    <span style="color: #0000ff;">object</span> TRectangle
      StyleName = <span style="color: #FF0000;">'background'</span>
      Align = Contents
      Fill.Color = claSilver
      Size.Width = <span style="color: #cc66cc;">177.666687011718800000</span>
      Size.Height = <span style="color: #cc66cc;">38.000000000000000000</span>
      Size.PlatformDefault = <span style="color: #0000ff;">False</span>
      Stroke.Kind = None
      <span style="color: #0000ff;">object</span> TRectangle
        StyleName = <span style="color: #FF0000;">'buttoncontent'</span>
        Align = Client
        Fill.Kind = None
        HitTest = <span style="color: #0000ff;">False</span>
        Size.Width = <span style="color: #cc66cc;">177.666687011718800000</span>
        Size.Height = <span style="color: #cc66cc;">38.000000000000000000</span>
        Size.PlatformDefault = <span style="color: #0000ff;">False</span>
        Stroke.Kind = None
        <span style="color: #0000ff;">object</span> TSkSvg
          StyleName = <span style="color: #FF0000;">'svg'</span>
          Align = Left
          Anchors = <span class="br0">&#91;</span>akLeft, akTop, akRight, akBottom<span class="br0">&#93;</span>
          Margins.Left = <span style="color: #cc66cc;">2.000000000000000000</span>
          Margins.Top = <span style="color: #cc66cc;">2.000000000000000000</span>
          Margins.Right = <span style="color: #cc66cc;">2.000000000000000000</span>
          Margins.Bottom = <span style="color: #cc66cc;">2.000000000000000000</span>
          Position.X = <span style="color: #cc66cc;">2.000000000000000000</span>
          Position.Y = <span style="color: #cc66cc;">2.000000000000000000</span>
          Size.Width = <span style="color: #cc66cc;">36.000000000000000000</span>
          Size.Height = <span style="color: #cc66cc;">34.000000000000000000</span>
          Size.PlatformDefault = <span style="color: #0000ff;">False</span>
          Svg.Source = 
            <span style="color: #FF0000;">'&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;1200&quot; height=&quot;800'</span> +
            <span style="color: #FF0000;">'&quot;&gt;'</span><span style="color: #cc66cc;">#13</span><span style="color: #cc66cc;">#10</span><span style="color: #FF0000;">'&lt;rect width=&quot;1200&quot; height=&quot;800&quot; fill=&quot;#0057B7&quot;/&gt;'</span><span style="color: #cc66cc;">#13</span><span style="color: #cc66cc;">#10</span><span style="color: #FF0000;">'&lt;rect widt'</span> +
            <span style="color: #FF0000;">'h=&quot;1200&quot; height=&quot;400&quot; y=&quot;400&quot; fill=&quot;#FFD700&quot;/&gt;'</span><span style="color: #cc66cc;">#13</span><span style="color: #cc66cc;">#10</span><span style="color: #FF0000;">'&lt;/svg&gt;'</span>
        <span style="color: #0000ff;">end</span>
        <span style="color: #0000ff;">object</span> TLabel
          StyleName = <span style="color: #FF0000;">'text'</span>
          Align = Client
          Size.Width = <span style="color: #cc66cc;">137.666687011718800000</span>
          Size.Height = <span style="color: #cc66cc;">38.000000000000000000</span>
          Size.PlatformDefault = <span style="color: #0000ff;">False</span>
          Text = <span style="color: #FF0000;">'Texte'</span>
          TabOrder = <span style="color: #cc66cc;">1</span>
        <span style="color: #0000ff;">end</span>
      <span style="color: #0000ff;">end</span>
      <span style="color: #0000ff;">object</span> TColorAnimation
        StyleName = <span style="color: #FF0000;">'mouseoverstyle'</span>
        Enabled = <span style="color: #0000ff;">True</span>
        Duration = <span style="color: #cc66cc;">0.200000002980232200</span>
        Inverse = <span style="color: #0000ff;">True</span>
        PropertyName = <span style="color: #FF0000;">'Fill.Color'</span>
        StartValue = claSilver
        StopValue = claTurquoise
        Trigger = <span style="color: #FF0000;">'IsMouseOver=true'</span>
        TriggerInverse = <span style="color: #FF0000;">'IsMouseOver=false'</span>
      <span style="color: #0000ff;">end</span>
      <span style="color: #0000ff;">object</span> TColorAnimation
        StyleName = <span style="color: #FF0000;">'pressedstyle'</span>
        Duration = <span style="color: #cc66cc;">0.200000002980232200</span>
        PropertyName = <span style="color: #FF0000;">'Fill.Color'</span>
        StartValue = claSilver
        StopValue = claYellowgreen
        Trigger = <span style="color: #FF0000;">'IsPressed=true'</span>
        TriggerInverse = <span style="color: #FF0000;">'IsPressed=false'</span>
      <span style="color: #0000ff;">end</span>
    <span style="color: #0000ff;">end</span>
  <span style="color: #0000ff;">end</span>
<span style="color: #0000ff;">end</span></pre></td></tr></table></code><hr />
</div>comment je me suis débrouillé pour obtenir le style ?<br />
J'ai posé un TStylebook, créé mon style (cf le source ci-dessus) et sauvegardé en .fsf vant de supprimer le TStyleBook. <br />
<br />
Inconvénient de cette méthode : au design on a un bouton &quot;standard&quot; ce n'est qu'à l'éxecution que l'on voit le résultat d'où l'idée de créer un composant. <br />
Inconnue actuelle : ce style, évidemment, devra se trouver dans l'unité mais surtout être chargé autrement que par l'instruction que j'ai utilisée<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"> TStyleStreaming.LoadFromResource<span class="br0">&#40;</span>HInstance,<span style="color: #FF0000;">'fmxsvgbuttonstyle'</span>,RT_RCDATA<span class="br0">&#41;</span>;</code><hr />
</div></div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p674624d1772264450/environnements-developpement/delphi/composants-fmx/bouton-tsksvg/capture.png/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p674625d1772264995/environnements-developpement/delphi/composants-fmx/bouton-tsksvg/fmxsvgbuttonstyle.gif/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1683/environnements-developpement/delphi/composants-fmx/">Composants FMX</category>
			<dc:creator>SergioMaster</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182374/environnements-developpement/delphi/composants-fmx/bouton-tsksvg/</guid>
		</item>
		<item>
			<title>Modifier un style au runtime - Suite à son analyse</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182249&amp;goto=newpost</link>
			<pubDate>Sat, 21 Feb 2026 08:33:48 GMT</pubDate>
			<description><![CDATA[Bonjour, 
 
je n'en suis...]]></description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
je n'en suis qu'aux prémisses (donc testé uniquement avec le style windows11) mais je pense bientôt pouvoir le faire pour tous (background inclus) <br />
<img src="https://www.developpez.net/forums/attachments/p674439d1771661434/environnements-developpement/delphi/composants-fmx/modifier-style-runtime-suite-analyse/modifierunstyle-1.gif/" border="0" alt="Nom : modifierunstyle-1.gif
Affichages : 155
Taille : 1,58 Mo"  style="float: CONFIG" /><br />
<br />
J'ai cependant quelques soucis. <br />
Je me suis seulement attaché à deux cas : des composants ayant des textes (TLabel, TButton) ou des glyphes (TButton)<br />
Dans mon <a href="https://www.developpez.net/forums/d2182148/environnements-developpement/delphi/composants-fmx/remplir-modifier-timagelist-runtime/" target="_blank">précédent post</a>, j'ai donné la possibilité de charger un icone, mais si j'ai un menu option qui permet ou non d'indiquer l'affichage d'un glyph <br />
<b>Question</b> Comment réagir à ces options ?    <br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="40"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #808080;">// Changement d'un &eacute;l&eacute;ment</span>
<span style="color: #0000ff;">procedure</span> TMainForm_modif.ListBox1Click<span class="br0">&#40;</span>Sender: <span style="color: #0080ff;">TObject</span><span class="br0">&#41;</span>;
<span style="color: #0000ff;">var</span>
  DicProperties: TOrderedDictionary&lt;<span style="color: #0080ff;">string</span>, TFmxObject&gt;;
  Back: TControl;
  compoparent: TFmxObject;
  aFmxObj : TFmxObject;
&nbsp;
  <span style="color: #0000ff;">procedure</span> Props<span class="br0">&#40;</span><span style="color: #0000ff;">const</span> C: TFMXObject; inDicList: TOrderedDictionary&lt;<span style="color: #0080ff;">string</span>,
    TFMXObject&gt;<span class="br0">&#41;</span>;
<span style="color: #0000ff;">var</span>
  ctx: TRttiContext;
  typ: TRttiType;
  prop : TArray&lt;TRttiProperty&gt;;
  valeur : <span style="color: #0080ff;">string</span>;
<span style="color: #0000ff;">begin</span>
  <span style="color: #0000ff;">if</span> C.ChildrenCount = <span style="color: #cc66cc;">0</span> <span style="color: #0000ff;">then</span> exit;
  <span style="color: #0000ff;">for</span> <span style="color: #0000ff;">var</span> ccomp <span style="color: #0000ff;">in</span> C.Children <span style="color: #0000ff;">do</span>
  <span style="color: #0000ff;">begin</span>
    ctx := TRttiContext.Create;
   <span style="color: #0000ff;">try</span>
    typ := ctx.GetType<span class="br0">&#40;</span>ccomp.ClassType<span class="br0">&#41;</span>;
    <span style="color: #0000ff;">if</span> Assigned<span class="br0">&#40;</span>typ<span class="br0">&#41;</span> <span style="color: #0000ff;">then</span>
      <span style="color: #0000ff;">begin</span>
        prop := typ.GetProperties;
        SortRttiPropertiesByNameIgnoreCase<span class="br0">&#40;</span>prop<span class="br0">&#41;</span>;
        <span style="color: #0000ff;">for</span> <span style="color: #0000ff;">var</span> S <span style="color: #0000ff;">in</span> prop <span style="color: #0000ff;">do</span>
          <span style="color: #0000ff;">begin</span>
            <span style="color: #0000ff;">if</span> S.HasName<span class="br0">&#40;</span><span style="color: #FF0000;">'stylename'</span><span class="br0">&#41;</span>
            <span style="color: #808080;">//AND  S.IsReadable and S.IsWritable</span>
            <span style="color: #808080;">// AND (S.Visibility in [TMemberVisibility.mvPublic,TMemberVisibility.mvPublished])</span>
            <span style="color: #0000ff;">then</span>
            <span style="color: #0000ff;">begin</span>
              valeur := <span style="color: #cc66cc;">#9</span> + S.GetValue<span class="br0">&#40;</span>Ccomp<span class="br0">&#41;</span>.ToString;
              <span style="color: #0000ff;">if</span> <span style="color: #0000ff;">Not</span> valeur.Trim.IsEmpty <span style="color: #0000ff;">then</span> inDicList.add<span class="br0">&#40;</span>S.GetValue<span class="br0">&#40;</span>Ccomp<span class="br0">&#41;</span>.ToString ,ccomp<span class="br0">&#41;</span>;
            <span style="color: #0000ff;">end</span>;
          <span style="color: #0000ff;">end</span>;
        <span style="color: #0000ff;">end</span>;
    <span style="color: #0000ff;">finally</span>
      ctx.free;
    <span style="color: #0000ff;">end</span>;
  <span style="color: #0000ff;">end</span>;
<span style="color: #0000ff;">end</span>;
&nbsp;
&nbsp;
<span style="color: #0000ff;">begin</span>
  <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>Listbox1.ItemIndex &lt; <span style="color: #cc66cc;">0</span><span class="br0">&#41;</span> <span style="color: #0000ff;">then</span> exit;
  <span style="color: #0000ff;">var</span> item := Listbox1.ItemByIndex<span class="br0">&#40;</span>Listbox1.ItemIndex<span class="br0">&#41;</span>;
  <span style="color: #0000ff;">if</span> SameText<span class="br0">&#40;</span>item.StyleLookup, <span style="color: #FF0000;">'headeritemstyle'</span><span class="br0">&#41;</span> <span style="color: #0000ff;">then</span> exit;
  <span style="color: #808080;">//</span>
  LayoutView.DeleteChildren;
  <span style="color: #0000ff;">var</span> Style := DMModifyer.StyleToAnalyse.Styles<span class="br0">&#91;</span><span style="color: #cc66cc;">0</span><span class="br0">&#93;</span>.Style;
  <span style="color: #0000ff;">var</span> Backg := Style.FindStyleResource<span class="br0">&#40;</span><span style="color: #FF0000;">'backgroundstyle'</span><span class="br0">&#41;</span>;
  <span style="color: #0000ff;">var</span> Compo := Style.FindStyleResource<span class="br0">&#40;</span>Item.Text.trim<span class="br0">&#41;</span>;
&nbsp;
  <span style="color: #0000ff;">var</span> c := Style.Components<span class="br0">&#91;</span>Item.Tag<span class="br0">&#93;</span>;
  DicProperties := TOrderedDictionary&lt;<span style="color: #0080ff;">string</span>, TFmxObject&gt;.Create;
  <span style="color: #0000ff;">try</span>
    props<span class="br0">&#40;</span>TFmxObject<span class="br0">&#40;</span>C<span class="br0">&#41;</span>, DicProperties<span class="br0">&#41;</span>;
<span style="color: #808080;">//    for var v in DicProperties do Memo1.Lines.add(V.Key);</span>
    <span style="color: #0000ff;">if</span> DicProperties.ContainsKey<span class="br0">&#40;</span><span style="color: #FF0000;">'text'</span><span class="br0">&#41;</span> <span style="color: #0000ff;">then</span>
      <span style="color: #0000ff;">begin</span>
         DicProperties.TryGetValue<span class="br0">&#40;</span><span style="color: #FF0000;">'text'</span>,aFmxObj<span class="br0">&#41;</span>;
         TStyleTextObject<span class="br0">&#40;</span>aFmxObj<span class="br0">&#41;</span>.Text:=<span style="color: #FF0000;">'Hello'</span>;
      <span style="color: #0000ff;">end</span>;
    <span style="color: #0000ff;">if</span> DicProperties.ContainsKey<span class="br0">&#40;</span><span style="color: #FF0000;">'glyphstyle'</span><span class="br0">&#41;</span> <span style="color: #0000ff;">then</span>
      <span style="color: #0000ff;">begin</span>
         DicProperties.TryGetValue<span class="br0">&#40;</span><span style="color: #FF0000;">'glyphstyle'</span>,aFmxObj<span class="br0">&#41;</span>;
         TGlyph<span class="br0">&#40;</span>aFmxObj<span class="br0">&#41;</span>.Images:=mesimages;
         <span style="color: #0000ff;">if</span> mishowglyph.IsChecked <span style="color: #0000ff;">then</span> TGlyph<span class="br0">&#40;</span>aFmxObj<span class="br0">&#41;</span>.ImageIndex:=<span style="color: #cc66cc;">0</span>;
      <span style="color: #0000ff;">end</span>;
&nbsp;
    compoparent := LayoutView;
    <span style="color: #0000ff;">if</span> c <span style="color: #0000ff;">is</span> TControl <span style="color: #0000ff;">then</span> <span style="color: #808080;">// TControl</span>
    <span style="color: #0000ff;">begin</span>
      compoparent := LayoutView;
      <span style="color: #0000ff;">var</span> <span style="color: #0080ff;">Comp</span> := Compo.Clone<span class="br0">&#40;</span>compoparent<span class="br0">&#41;</span> <span style="color: #0000ff;">as</span> TControl;
      <span style="color: #0080ff;">comp</span>.BeginUpdate;
&nbsp;
      <span style="color: #0080ff;">comp</span>.Parent := compoparent;
      <span style="color: #0080ff;">Comp</span>.Align := TAlignLayout.Center;
              <span style="color: #0080ff;">comp</span>.Visible := <span style="color: #0000ff;">true</span>;
              <span style="color: #0080ff;">comp</span>.HitTest := <span style="color: #0000ff;">False</span>;
              <span style="color: #0000ff;">if</span> <span style="color: #0080ff;">comp</span>.FixedSize&lt;&gt;TSize.Zero <span style="color: #0000ff;">then</span>
               <span style="color: #0000ff;">begin</span>
                <span style="color: #0080ff;">comp</span>.Size.width:=<span style="color: #0080ff;">Comp</span>.FixedSize.Width;
                <span style="color: #0080ff;">comp</span>.Size.Height:=<span style="color: #0080ff;">Comp</span>.FixedSize.Height;
              <span style="color: #808080;">// set FixedHeight and FixedWidth of the item to 0</span>
                <span style="color: #0080ff;">Comp</span>.FixedSize := TSize.Zero;
               <span style="color: #0000ff;">end</span>
              <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">begin</span>
              <span style="color: #0080ff;">Comp</span>.Size.Width:=LayoutView.width/<span style="color: #cc66cc;">2</span>;
              <span style="color: #0080ff;">Comp</span>.Size.Height:=<span style="color: #cc66cc;">50</span>;
              <span style="color: #0000ff;">end</span>;
      <span style="color: #0080ff;">Comp</span>.Anchors:=<span class="br0">&#91;</span>TAnchorKind.akLeft,TAnchorKind.akRight,TAnchorKind.akTop,TAnchorKind.akBottom<span class="br0">&#93;</span>;
      <span style="color: #0000ff;">if</span> DicProperties.ContainsKey<span class="br0">&#40;</span><span style="color: #FF0000;">'text'</span><span class="br0">&#41;</span> <span style="color: #0000ff;">then</span>
      <span style="color: #0000ff;">begin</span>
         DicProperties.TryGetValue<span class="br0">&#40;</span><span style="color: #FF0000;">'text'</span>,aFmxObj<span class="br0">&#41;</span>;
         TStyleTextObject<span class="br0">&#40;</span>aFmxObj<span class="br0">&#41;</span>.Text:=<span style="color: #FF0000;">'Hello'</span>;
      <span style="color: #0000ff;">end</span>;
&nbsp;
      <span style="color: #0080ff;">Comp</span>.EndUpdate;
    <span style="color: #0000ff;">end</span>;
  <span style="color: #0000ff;">finally</span>
    FreeAndNil<span class="br0">&#40;</span>DicProperties<span class="br0">&#41;</span>;
  <span style="color: #0000ff;">end</span>;
&nbsp;
<span style="color: #0000ff;">end</span>;</pre></td></tr></table></code><hr />
</div>Pour l'instant, ce que je considère comme bogues majeurs : <br />
<ol class="decimal"><li style="">Le texte est changé mais identique pour tous les styles créés</li><li style="">L'icone est toujours affiché (et le texte aussi) que ce soit pour tbuttonstyle, toolbutton ou tspeedbutton</li><li style="">Tous les éléments ne sont pas affiché dans mon panneau d'analyse :calim2: je dois avoir une différence de code quelque part entre <a href="https://www.developpez.net/forums/d2181520/environnements-developpement/delphi/composants-fmx/analyse-d-style-firemonkey/#post12114422" target="_blank">mon programme qui liste les éléments</a> et celui-ci</li></ol></div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p674439d1771661434/environnements-developpement/delphi/composants-fmx/modifier-style-runtime-suite-analyse/modifierunstyle-1.gif/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1683/environnements-developpement/delphi/composants-fmx/">Composants FMX</category>
			<dc:creator>SergioMaster</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182249/environnements-developpement/delphi/composants-fmx/modifier-style-runtime-suite-analyse/</guid>
		</item>
		<item>
			<title>Remplir/modifier un TImageList au runtime</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182148&amp;goto=newpost</link>
			<pubDate>Tue, 17 Feb 2026 10:44:03 GMT</pubDate>
			<description><![CDATA[Bonjour, 
 
J'ai voulu faire...]]></description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
J'ai voulu faire le malin en me proposant de changer un TImageList au runtime. Et là je sèche. <br />
J'ai tenté plusieurs approches dont <a rel="nofollow" href="https://docwiki.embarcadero.com/Libraries/Alexandria/en/FMX.ImgList.TCustomImageList.AddOrSet" target="_blank">TCustomImageList(ImageLIst).AddOrSet</a> mais cela semble remplir la source pas la destination<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br /></div></td><td valign="top"><pre style="margin: 0">   Opendialog1.DefaultExt := <span style="color: #FF0000;">'*.png'</span>;
    Opendialog1.Filter:=<span style="color: #FF0000;">'Fichier d'</span><span style="color: #FF0000;">'images en png|*.png|Fichier d'</span><span style="color: #FF0000;">'images en bmp|*.bmp'</span>;
    Opendialog1.InitialDir :=<span style="color: #FF0000;">''</span>;
    Opendialog1.Title := <span style="color: #FF0000;">'Charger une liste d'</span><span style="color: #FF0000;">'images'</span>;
    <span style="color: #0000ff;">if</span> Opendialog1.Execute <span style="color: #0000ff;">then</span>
    <span style="color: #0000ff;">begin</span>
     imagelist1.BeginUpdate;
     newindex:=ImageList1.AddOrSet<span class="br0">&#40;</span><span style="color: #FF0000;">'ico1'</span>,<span class="br0">&#91;</span><span style="color: #cc66cc;">1</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span>opendialog1.FileName<span class="br0">&#93;</span>,TColors.SysNone<span class="br0">&#41;</span>;
     showmessage<span class="br0">&#40;</span>newindex.tostring<span class="br0">&#41;</span>;
     imagelist1.EndUpdate;
     Glyph1.imageindex:=newindex;
    <span style="color: #0000ff;">end</span>;</pre></td></tr></table></code><hr />
</div>étrangement newindex=7 alors que je n'ai rien au départ :koi:</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1683/environnements-developpement/delphi/composants-fmx/">Composants FMX</category>
			<dc:creator>SergioMaster</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182148/environnements-developpement/delphi/composants-fmx/remplir-modifier-timagelist-runtime/</guid>
		</item>
		<item>
			<title><![CDATA[Bug d'affichage pour certains styles analysés.]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182115&amp;goto=newpost</link>
			<pubDate>Sun, 15 Feb 2026 08:37:16 GMT</pubDate>
			<description>Suite à cette discussion...</description>
			<content:encoded><![CDATA[<div>Suite à <a href="https://www.developpez.net/forums/d2181520/environnements-developpement/delphi/composants-fmx/analyse-d-style-firemonkey/" target="_blank">cette discussion</a> je me retrouve avec quelques problèmes d'affichage :weird:<br />
J'ai voulu amélioré la présentation en proposant de choisir entre différents fonds et pas seulement celui du style ou aucun <br />
<img src="https://www.developpez.net/forums/attachments/p674249d1771144022/environnements-developpement/delphi/composants-fmx/bug-d-affichage-certains-styles-analyses/capture.png/" border="0" alt="Nom : Capture.png
Affichages : 83
Taille : 48,9 Ko"  style="float: CONFIG" /><br />
et cela m'a fait découvrir le souci.<br />
<img src="https://www.developpez.net/forums/attachments/p674248d1771143821/environnements-developpement/delphi/composants-fmx/bug-d-affichage-certains-styles-analyses/capture.png/" border="0" alt="Nom : Capture.png
Affichages : 80
Taille : 64,8 Ko"  style="float: CONFIG" /><br />
Si vous faites bien attention à cette dernière image c'est comme si le composant utilisant buttonstyle était soit plus grand soit pas contenu soit :koi: dans le layout de visualisation.<br />
<br />
mon code coupable <br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br /></div></td><td valign="top"><pre style="margin: 0">  
LayoutView.DeleteChildren;
var Style := StyleBook1.Styles[0].Style;
var Backg := Style.FindStyleResource('backgroundstyle');

var c := Style.Components[Item.Tag];  
  try
    if Assigned(C) then
    begin
      Back := nil;
      if c is TControl then // TControl
      begin
        compoparent:=LayoutView;

        if cbBackgroud.IsChecked AND Assigned(Backg) then
        begin
          Back := Backg.Clone(LayoutView) as TControl;
          Back.Parent := LayoutView;
          Back.Align := TAlignLayout.Client;
          Back.HitTest := false;
          Back.Visible := True;
          compoparent :=Back;
        end;

        if cbcustom.IsChecked then
        begin
           Back:=TRectangle.Create(LayoutView);
           Back.parent:=Layoutview;
           TRectangle(Back).Fill.Color:=BackGroundColor.Color;
           TRectangle(Back).Stroke.Kind:=TBrushKind.None;
           Back.Align:=TAlignLayout.Client;
           compoparent :=Back;
        end;

        var Comp := Compo.Clone(LayoutView) as TControl;  <font color="#FF0000">// Layout ou compoparent ?</font>
        comp.Visible := true;
        Comp.Align := TAlignLayout.Center;
        comp.HitTest := False;
        // set FixedHeight and FixedWidth of the item to 0
        Comp.FixedSize := TSize.Zero;  <font color="#FF0000">// Bug possible ?</font>
        comp.Parent := compoparent;
       end;
    ... 
    
    end;
  except
  end;
  LayoutView.Repaint;</pre></td></tr></table></code><hr />
</div><br />
[Edit] j'ai modifié l'ordre du code et mis des valeurs pour les largeur et hauteur du composant <br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td valign="top"><pre style="margin: 0">        <span style="color: #0000ff;">var</span> <span style="color: #0080ff;">Comp</span> := Compo.Clone<span class="br0">&#40;</span>compoparent<span class="br0">&#41;</span> <span style="color: #0000ff;">as</span> TControl;
        <span style="color: #0080ff;">comp</span>.Parent := compoparent;
        <span style="color: #808080;">// set FixedHeight and FixedWidth of the item to 0</span>
        <span style="color: #0080ff;">Comp</span>.FixedSize := TSize.Zero;
        <span style="color: #0080ff;">Comp</span>.Align := TAlignLayout.Center;
        <span style="color: #0080ff;">comp</span>.Visible := <span style="color: #0000ff;">true</span>;
        <span style="color: #0080ff;">comp</span>.HitTest := <span style="color: #0000ff;">False</span>;
        <span style="color: #0080ff;">Comp</span>.Size.Width:=<span style="color: #cc66cc;">50</span>;
        <span style="color: #0080ff;">Comp</span>.Size.Height:=<span style="color: #cc66cc;">50</span>;</pre></td></tr></table></code><hr />
</div>le hic c'est que, si ça s'affiche bien, les valeurs fixes ça me gêne.</div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p674248d1771143821/environnements-developpement/delphi/composants-fmx/bug-d-affichage-certains-styles-analyses/capture.png/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p674249d1771144022/environnements-developpement/delphi/composants-fmx/bug-d-affichage-certains-styles-analyses/capture.png/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1683/environnements-developpement/delphi/composants-fmx/">Composants FMX</category>
			<dc:creator>SergioMaster</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182115/environnements-developpement/delphi/composants-fmx/bug-d-affichage-certains-styles-analyses/</guid>
		</item>
		<item>
			<title><![CDATA[FastReport FMX avec moins d'objets que pour VCL?]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2181817&amp;goto=newpost</link>
			<pubDate>Fri, 30 Jan 2026 11:18:33 GMT</pubDate>
			<description>Bonjour, 
 
Sur Delphi12,...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Sur Delphi12, j'installe via GetIt le composant intitulé &quot;FastReport VCL &amp; FMX&quot;.<br />
<br />
Je constate que le composant FastReport placé dans un projet multiPlateforme possède beaucoup MOINS de fonctionnalités que pour une application purement VCL.<br />
<br />
Je le vois immédiatement en regardant la liste des objets disponibles pour créer le rapport avec uniquement un objet texte et un objet image pour un projet MultiPlateforme alors que pour un projet VCL FastReport fournit toute une série d'objets allant jusqu'à la possibilité de gérer des objets de type &quot;code-barres&quot;.<br />
<br />
Est-ce que mon diagnostic est correct?<br />
<br />
Et est-ce que la version 2025 de FastReport qui est sensé s'installer sur Delphi13 (mais l'installation ne fonctionne pas, cf. mon autre billet sur Delphi-EDI) a été complété et est-ce qu'il fournit l'objet code-barre?<br />
<br />
Question subsidiaire: Si FastReport 2025 fournit l'objet &quot;code-barres&quot; pour les projets multiPlateforme, est-il possible d'installer la version FastReport2025 sur Delphi12?<br />
<br />
Merci d'avance pour votre aide</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1683/environnements-developpement/delphi/composants-fmx/">Composants FMX</category>
			<dc:creator>Anselme45</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2181817/environnements-developpement/delphi/composants-fmx/fastreport-fmx-d-objets-vcl/</guid>
		</item>
		<item>
			<title><![CDATA[Analyse d'un style Firemonkey]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2181520&amp;goto=newpost</link>
			<pubDate>Fri, 16 Jan 2026 08:01:24 GMT</pubDate>
			<description>Bonjour, 
 
Suite à la...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Suite à la <a href="https://www.developpez.net/forums/d1991518/environnements-developpement/delphi/composants-fmx/style-defaut-cache/" target="_blank">discussion précédente</a><br />
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.<br />
<br />
ici, le style Gnome (oui, il existe, je l'ai &quot;récupéré&quot; avec le programme de la discussion précédente) et pourtant le programme est Windows32 <br />
<img src="https://www.developpez.net/forums/attachments/p673327d1768547936/environnements-developpement/delphi/composants-fmx/analyse-d-style-firemonkey/capture.png/" border="0" alt="Nom : Capture.png
Affichages : 313
Taille : 156,5 Ko"  style="float: CONFIG" /><br />
<br />
Comme vous le constatez sur cette image, je suis capable d'afficher les images utilisées.<br />
<br />
Pour certains styles je suis même capable de visualiser, plus ou moins correctement, quelques uns des éléments <br />
<img src="https://www.developpez.net/forums/attachments/p673328d1768548310/environnements-developpement/delphi/composants-fmx/analyse-d-style-firemonkey/capture.png/" border="0" alt="Nom : Capture.png
Affichages : 323
Taille : 42,1 Ko"  style="float: CONFIG" /><br />
<br />
Malheureusement ce n'est pas le cas de tous les éléments listés. Logique, ce ne sont pas que des contrôles visuels. <br />
<br />
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<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br /></div></td><td valign="top"><pre style="margin: 0">    <span style="color: #0000ff;">if</span> Assigned<span class="br0">&#40;</span>Compo<span class="br0">&#41;</span> <span style="color: #0000ff;">then</span>
    <span style="color: #0000ff;">begin</span>
      <span style="color: #0000ff;">if</span> compo <span style="color: #0000ff;">is</span> Tcontrol <span style="color: #0000ff;">then</span>
      <span style="color: #0000ff;">begin</span>
        <span style="color: #0000ff;">if</span> Assigned<span class="br0">&#40;</span>Backg<span class="br0">&#41;</span> <span style="color: #0000ff;">then</span>
        <span style="color: #0000ff;">begin</span>
          Back := Backg.Clone<span class="br0">&#40;</span>Layout1<span class="br0">&#41;</span> <span style="color: #0000ff;">as</span> TControl;
          Back.Align := TAlignLayout.Client;
          Back.Parent := Layout1;
          Back.HitTest:=<span style="color: #0000ff;">false</span>;
        <span style="color: #0000ff;">end</span>
        <span style="color: #0000ff;">else</span>
          Back := <span style="color: #0000ff;">nil</span>;
&nbsp;
        <span style="color: #0000ff;">var</span> <span style="color: #0080ff;">Comp</span> := Compo.Clone<span class="br0">&#40;</span>Layout1<span class="br0">&#41;</span> <span style="color: #0000ff;">as</span> TControl;
        <span style="color: #0080ff;">comp</span>.Visible := <span style="color: #0000ff;">true</span>;
        <span style="color: #0080ff;">Comp</span>.Align := TAlignLayout.Center;
        <span style="color: #0080ff;">comp</span>.HitTest:=<span style="color: #0000ff;">False</span>;
        <span style="color: #0000ff;">if</span> Assigned<span class="br0">&#40;</span>Backg<span class="br0">&#41;</span> <span style="color: #0000ff;">then</span>
          <span style="color: #0080ff;">comp</span>.Parent := Back
        <span style="color: #0000ff;">else</span>
          <span style="color: #0080ff;">Comp</span>.Parent := Layout1;
      <span style="color: #0000ff;">end</span>;
&nbsp;
    <span style="color: #0000ff;">if</span> compo <span style="color: #0000ff;">is</span> TText <span style="color: #0000ff;">then</span>
    <span style="color: #0000ff;">begin</span>
      <span style="color: #0000ff;">var</span> <span style="color: #0080ff;">Comp</span> := Compo.Clone<span class="br0">&#40;</span>Layout1<span class="br0">&#41;</span> <span style="color: #0000ff;">as</span> TText;
      <span style="color: #0080ff;">comp</span>.Visible := <span style="color: #0000ff;">true</span>;
      <span style="color: #0080ff;">comp</span>.Text := <span style="color: #FF0000;">'Hello World'</span>;
      <span style="color: #0080ff;">comp</span>.AutoSize := <span style="color: #0000ff;">true</span>;
      <span style="color: #0080ff;">Comp</span>.Align := TAlignLayout.Center;
      <span style="color: #0080ff;">Comp</span>.HitTest:=<span style="color: #0000ff;">False</span>;
      <span style="color: #0000ff;">if</span> Assigned<span class="br0">&#40;</span>Backg<span class="br0">&#41;</span> <span style="color: #0000ff;">then</span>
        <span style="color: #0080ff;">comp</span>.Parent := Back
      <span style="color: #0000ff;">else</span>
        <span style="color: #0080ff;">Comp</span>.Parent := Layout1;
    <span style="color: #0000ff;">end</span>;
&nbsp;
    <span style="color: #0000ff;">if</span> compo <span style="color: #0000ff;">is</span> TImage <span style="color: #0000ff;">then</span>
    <span style="color: #0000ff;">begin</span>
      <span style="color: #0000ff;">var</span> <span style="color: #0080ff;">comp</span> := Compo.Clone<span class="br0">&#40;</span>Layout1<span class="br0">&#41;</span> <span style="color: #0000ff;">as</span> TImage;
      <span style="color: #0080ff;">comp</span>.Bitmap := <span style="color: #0080ff;">comp</span>.MultiResBitmap.Items<span class="br0">&#91;</span><span style="color: #cc66cc;">0</span><span class="br0">&#93;</span>.Bitmap;
      <span style="color: #0080ff;">comp</span>.Parent := Layout1;
      <span style="color: #0080ff;">comp</span>.Align := TalignLayout.Client;
      <span style="color: #0080ff;">comp</span>.Margins.Rect := TRect.Create<span class="br0">&#40;</span><span style="color: #cc66cc;">3</span>, <span style="color: #cc66cc;">3</span>, <span style="color: #cc66cc;">3</span>, <span style="color: #cc66cc;">3</span><span class="br0">&#41;</span>;
      <span style="color: #0080ff;">comp</span>.wrapmode := Timagewrapmode.Stretch;
      <span style="color: #0080ff;">comp</span>.HitTest:=<span style="color: #0000ff;">False</span>;
      <span style="color: #0080ff;">comp</span>.Visible := <span style="color: #0000ff;">true</span>; <span style="color: #808080;">// je me suis fait avoir par d&eacute;faut c'est false ! Du coup j'ai reproduit sur les autres types</span>
    <span style="color: #0000ff;">end</span>;</pre></td></tr></table></code><hr />
</div>Mais du coup, j'ai un certaine frustration, si je dois essayer de retrouver tous les types, quelle galère ! <br />
N.B. La plupart des éléments des styles Linux ne se dessine pas je ne sais pour quelle raison<br />
<br />
Cela étant, j'obtiens bien le dessin mais pas vraiment <b>ce que je cherche : le composant qui utilise l'élément de style.</b> <br />
Prenons l'exemple du bouton de l'image #2, elle a certainement un texte mais je suis incapable de le représenter.<br />
<br />
Toute idée sera bienvenue.</div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p673327d1768547936/environnements-developpement/delphi/composants-fmx/analyse-d-style-firemonkey/capture.png/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p673328d1768548310/environnements-developpement/delphi/composants-fmx/analyse-d-style-firemonkey/capture.png/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1683/environnements-developpement/delphi/composants-fmx/">Composants FMX</category>
			<dc:creator>SergioMaster</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2181520/environnements-developpement/delphi/composants-fmx/analyse-d-style-firemonkey/</guid>
		</item>
	</channel>
</rss>
