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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
// Lecture des propriétés de l'image de fond (TImage existant)
if ( GetTagValue(Data[-1],'BGIMAGE')<>'' ) then
begin
s:=dir + GetTagValue(Data[-1],'BGIMAGE');
if FileExists(s) then
begin
bgPicture.Picture.LoadFromFile(s);
bgPicture.top:=0;
bgPicture.left:=0;
bgPicture.Visible:=true;
end;
end;
// Création dynamique des boutons/images
while (ch <> '') do
begin
// Récupère les infos dans un fichier xml
s:=GetTagValue(ch,'BUTTON');
if (s <> '') then
begin
// Créer un nouveau bouton + un nouveau panel
try
BtnPict[j].free; // Libère d'abord l'ancienne image
Btn[j].free; // Puis le TPanle qui la contenait
finally
end;
// Créer le TPanel
Btn[j]:=TPanel.Create(Self);
Btn[j].BevelInner:=bvNone;
Btn[j].BevelOuter:=bvNone;
Btn[j].Autosize:=true;
// Créer la TImage
BtnPict[j]:=TImage.Create(Self);
// Défini l'action OnMouseDown
BtnPict[j].OnMouseDown:=MouseDownDrag;
// Renomme le controle TImage
Str(i,s2);
//Btn[j].Name:='Panelcat'+ s2;
BtnPict[j].Name:='cat'+ s2;
// Défini le curseur (ce sont des éléments libre, on peut les bouger)
BtnPict[j].Cursor:=crSizeAll;
// Positionne les controles(juste le panel vu que la TImage est DANS le panel
Val(GetTagValue(s,'TOP'),k,code);
Btn[j].Top:=k+2;
Val(GetTagValue(s,'LEFT'),k,code);
Btn[j].Left:=k+2;
BtnPict[j].AutoSize:=true;
// Charge un bmp dans la TImage
s2:=dir+AnsiDequotedStr(GetTagValue(s,'BITMAP'),'"');
if not FileExists(s2) then
begin
s2:='"'+s2+'" not found';
Application.MessageBox(PChar(s2), 'File error', MB_OK + MB_ICONHAND);
Application.Terminate;
end
else begin
BtnPict[j].Picture.LoadFromFile(s2);
BtnPict[j].Parent:=Btn[j];
Btn[j].Parent:=Self;
end;
// Affiche les controles
Btn[j].Visible:=true;
BtnPict[j].Visible:=true;
end; |
Partager