2 pièce(s) jointe(s)
TPath, utilisation de LookupStyle
Bonjour,
Ce week-end mon addiction au TPath s'est confirmée :mrgreen:
J'ai voulu pousser le bouchon le plus loin possible et, entre autres, ajouter des dessins à des dessins et ce à l'exécution (attention jouer à ça est très très addictif)
Pièce jointe 480242
Bref, j'ai voulu aussi tester la propriété Data.StyleLookup. Pour ce faire, j'ai ajouté un stylebook et dans celui-ci ajouté un Tpath contenant donc un dessin tout prêt
Pièce jointe 480243
Sources dans ce post
Seulement voilà, deux problèmes surgissent si l'on utilise un stylelookup
1 - on ne peut pas l'ajouter à des données existante (par exemple j'aurais voulu ajouter le casque (contenu dans le style) au coeur (un data défini dans une constante)
2 - impossible d'effacer le stylebook une fois défini. J'ai isolé ce test dans un petit programme qui permet de vérifier que changer le stylelookup d'un bouton fonctionne
mais que changer le StyleLookup du TPath.Data ne fonctionne pas
Code:
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 50 51
| unit Unit44;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.ListBox,
FMX.Controls.Presentation, FMX.StdCtrls, FMX.Objects;
type
TForm44 = class(TForm)
Button1: TButton;
ComboBox1: TComboBox;
Path1: TPath;
StyleBook1: TStyleBook;
Button2: TButton;
Panel1: TPanel;
procedure ComboBox1ClosePopup(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form44: TForm44;
implementation
{$R *.fmx}
procedure TForm44.Button2Click(Sender: TObject);
begin
if Panel1.StyleLookup.IsEmpty
then Panel1.StyleLookup:='droid'
else Panel1.StyleLookup:='';
if Path1.data.StyleLookup.IsEmpty
then Path1.Data.StyleLookup:='droid'
else begin
Path1.Data.StyleLookup:=''; // ????
end;
end;
procedure TForm44.ComboBox1ClosePopup(Sender: TObject);
begin
Button1.StyleLookup:=ComboBox1.Items[Combobox1.ItemIndex];
end;
end. |
Vous remarquerez que c'est peut-être un bug Delphi car au design si l'on met un stylelookup cela fonctionne mais on ne peut plus l'effacer :roll: même si ensuite à l'exécution le stylelookup n'est pas pris en compte s'il est effacé :weird:
Bref, si quelqu'un à une idée, je suis preneur