Ven 10/02/2012 - Actualités
-
- Administrateur du site
- Messages : 817
- Enregistré le : mer. 22 juin 2011 18:25
Ven 10/02/2012 - Actualités
Ven 10/02/2012 - Actualités
14:30
Correction de bug : le seul moyen de permettre un coupage ou une copie, suivis de multiples collages et en fait de procéder à la copie de la donnée lors de l'opération de collage, l'opération de copie ne devant en fait rien faire que "marquer" la donnée.
14:30
Correction de bug : le seul moyen de permettre un coupage ou une copie, suivis de multiples collages et en fait de procéder à la copie de la donnée lors de l'opération de collage, l'opération de copie ne devant en fait rien faire que "marquer" la donnée.
-
- Administrateur du site
- Messages : 817
- Enregistré le : mer. 22 juin 2011 18:25
Ven 10/02/2012 - Actualités
15:30
Copier la donnée lors de l'opération de collage n'est pas mieux car du coup les opérations de coupage créent des données orphelines qui s'accumulent.
Retour à la case départ avec une astuce :
Copier la donnée lors de l'opération de collage n'est pas mieux car du coup les opérations de coupage créent des données orphelines qui s'accumulent.
Retour à la case départ avec une astuce :
- Couper : détache la donnée de son parent, et met à jour la fenêtre. La donnée est conservée à l'ombre.
- Copier : crée une nouvelle donnée par duplication. La donnée est conservée à l'ombre.
- Coller : colle la donnée conservée à l'ombre. Et en refait immédiatement une autre copie pour pouvoir faire un autre collage si besoin.
-
- Administrateur du site
- Messages : 817
- Enregistré le : mer. 22 juin 2011 18:25
Ven 10/02/2012 - Actualités
16:30
Toute la puissance des Booleans illustrée par la méthode chargée de contexter le menu et les boutons.
Toute la puissance des Booleans illustrée par la méthode chargée de contexter le menu et les boutons.
Code : Tout sélectionner
//------------------------------------------------------------------------------
// Contacts_UpdateContext : met à jour les contextualisations
// 10/02/2012 - XT400
//------------------------------------------------------------------------------
procedure TContacts_Form.Contacts_UpdateContext(Sender: TObject);
var
Tree: Boolean;
List: Boolean;
Node: TTreeNode;
Item: TListItem;
begin
// Gestion des logs
XSK_Log('Code', 'XContacts', 'Contacts_UpdateContext');
// Préparations
Tree := (Self.ActiveControl = Contacts_Tree);
List := (Self.ActiveControl = Contacts_List);
Node := Contacts_Tree.Selected;
Item := Contacts_List.Selected;
// Contextualisation du menu
Contacts_NewFolder_Item.Visible := Tree;
Contacts_NewFolder_Item.Enabled := True;
Contacts_NewContact_Item.Visible := List;
Contacts_NewContact_Item.Enabled := True;
Contacts_NewInfo_Item.Visible := List;
Contacts_NewInfo_Item.Enabled := (List and (Item <> Nil));
Contacts_Rename_Item.Visible := True;
Contacts_Rename_Item.Enabled := ((Tree and (Node.Level > 0)) or (List and (Item <> Nil)));
Contacts_Edit_Item.Visible := List;
Contacts_Edit_Item.Enabled := (List and (Item <> Nil) and (Item.SubItems[1] = 'Information'));
Contacts_Up_Item.Visible := True;
Contacts_Up_Item.Enabled := ((Tree and (Node.Level > 0)) or (List and (Item <> Nil)));
Contacts_Down_Item.Visible := True;
Contacts_Down_Item.Enabled := ((Tree and (Node.Level > 0)) or (List and (Item <> Nil)));
Contacts_Delete_Item.Visible := True;
Contacts_Delete_Item.Enabled := ((Tree and (Node.Level > 0)) or (List and (Item <> Nil)));
Contacts_Cut_Item.Visible := True;
Contacts_Cut_Item.Enabled := ((Tree and (Node.Level > 0)) or (List and (Item <> Nil) and (Item.SubItems[1] = 'Contact')));
Contacts_Copy_Item.Visible := True;
Contacts_Copy_Item.Enabled := ((Tree and (Node.Level > 0)) or (List and (Item <> Nil) and (Item.SubItems[1] = 'Contact')));
Contacts_Paste_Item.Visible := True;
Contacts_Paste_Item.Enabled := (LV_Data <> Nil);
// Contextualisation des boutons
Contacts_Rename_Button.Enabled := Contacts_Rename_Item.Enabled;
Contacts_Up_Button.Enabled := Contacts_Up_Item.Enabled;
Contacts_Down_Button.Enabled := Contacts_Down_Item.Enabled;
Contacts_Delete_Button.Enabled := Contacts_Delete_Item.Enabled;
Contacts_Cut_Button.Enabled := Contacts_Cut_Item.Enabled;
Contacts_Copy_Button.Enabled := Contacts_Copy_Item.Enabled;
Contacts_Paste_Button.Enabled := Contacts_Paste_Item.Enabled;
end;
-
- Administrateur du site
- Messages : 817
- Enregistré le : mer. 22 juin 2011 18:25
Ven 10/02/2012 - Actualités
16:45
Encore optimisé...
Maintenant les icônes...
Encore optimisé...
Code : Tout sélectionner
// Préparations
Tree_Node := Contacts_Tree.Selected;
List_Item := Contacts_List.Selected;
Tree := (Self.ActiveControl = Contacts_Tree);
List := (Self.ActiveControl = Contacts_List);
SubFolder := (Tree_Node.Level > 0);
Item := (List_Item <> Nil);
Contact := (Item and (List_Item.SubItems[1] = 'Contact'));
Information := (Item and (List_Item.SubItems[1] = 'Information'));
// Contextualisation du menu
Contacts_NewFolder_Item.Visible := Tree;
Contacts_NewFolder_Item.Enabled := True;
Contacts_NewContact_Item.Visible := List;
Contacts_NewContact_Item.Enabled := True;
Contacts_NewInfo_Item.Visible := List;
Contacts_NewInfo_Item.Enabled := (List and Item);
Contacts_Rename_Item.Visible := True;
Contacts_Rename_Item.Enabled := ((Tree and SubFolder) or (List and Item));
Contacts_Edit_Item.Visible := List;
Contacts_Edit_Item.Enabled := (List and Information);
Contacts_Delete_Item.Visible := True;
Contacts_Delete_Item.Enabled := ((Tree and SubFolder) or (List and Item));
Contacts_Cut_Item.Visible := True;
Contacts_Cut_Item.Enabled := ((Tree and SubFolder) or (List and Contact));
Contacts_Copy_Item.Visible := True;
Contacts_Copy_Item.Enabled := ((Tree and SubFolder) or (List and Contact));
Contacts_Paste_Item.Visible := True;
Contacts_Paste_Item.Enabled := (LV_Data <> Nil);
Contacts_Up_Item.Visible := True;
Contacts_Up_Item.Enabled := ((Tree and SubFolder) or (List and Item));
Contacts_Down_Item.Visible := True;
Contacts_Down_Item.Enabled := ((Tree and SubFolder) or (List and Item));
-
- Administrateur du site
- Messages : 817
- Enregistré le : mer. 22 juin 2011 18:25
Ven 10/02/2012 - Actualités
18:40
Même Delphi 2010 n'a pas réussi à griser les icônes en 24 bits, donc travail artisanal sous Paint mais le résultat final est correct :
Même Delphi 2010 n'a pas réussi à griser les icônes en 24 bits, donc travail artisanal sous Paint mais le résultat final est correct :
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
-
- Administrateur du site
- Messages : 817
- Enregistré le : mer. 22 juin 2011 18:25
Ven 10/02/2012 - Actualités
19:30
Le dernier bug recensé est corrigé.
Il reste encore à gérer le drag-and-drop de Contacts de la liste vers l'arbre et l'outil devrait être prêt.
Le dernier bug recensé est corrigé.
Il reste encore à gérer le drag-and-drop de Contacts de la liste vers l'arbre et l'outil devrait être prêt.
-
- Messages : 180
- Enregistré le : jeu. 23 juin 2011 09:21
Re: Ven 10/02/2012 - Actualités
Allez! Tu peux faire mieux. Surtout si de nombreux items ont le même comportement. N’évalue qu'une seule fois ta condition, pour les autres, qu'ils recopient la valeur du premier !XMo a écrit :Encore optimisé...
-
- Messages : 180
- Enregistré le : jeu. 23 juin 2011 09:21
Re: Ven 10/02/2012 - Actualités
TB tes icones grisées
-
- Administrateur du site
- Messages : 817
- Enregistré le : mer. 22 juin 2011 18:25
Re: Ven 10/02/2012 - Actualités
Oui, il y a ça pour les boutons, qui copient leurs états sur les éléments de menu.DMo a écrit :Allez! Tu peux faire mieux. Surtout si de nombreux items ont le même comportement. N’évalue qu'une seule fois ta condition, pour les autres, qu'ils recopient la valeur du premier !XMo a écrit :Encore optimisé...
Si je généralise encore plus, je crains de devoir détricoter tout ça quand il y aura des bugs et qu'il faudra surcharger certains comportements et pas les autres.