{------------------------------------------------------------------------------}
{  Components TXStaticButton and TXFoldButton                                  }
{  Delphi 32                                                                   }
{  Author : (c) 1999 Jean-Michel BOUCTON                                       }
{  email : jmbo@softhome.net                                                   }
{  Web :http://www.chez.com/jmbo/index.html                                    }
{                                                                              }
{  Version : 1.2.0                                                             }
{  Licence : Free for non commercial use                                       }
{            5$ :-) for commercial use, please contact me before               }
{                                                                              }
{ DESCRIPTION Franais/English                                                 }
{                                                                              }
{ TXStaticButton :                                                             }
{   Un peu identique  TSpeedButton except qu'il ne possde pas les           }
{   proprits Caption, Layout et Spacing. Il ne dessine pas de contour.       }
{   Il affiche le bitmap charg dans sa proprit Glyph, ou si cette proprit }
{   est vide, il devient une zone transparente active  placer au dessus       }
{   d'un Bitmap pour dfinir plusieurs zones cliquables par exemple.           }
{   Si la proprit HotTrack est  true, le bitmap de la proprit Glyph doit  }
{   reprsenter 3 tats : normal/off, dsactiv/disabled et hot/on et la       }
{   proprit NumGlyphs doit tre positionne  3.                             }
{   Si un PopupMenu est associ au contrle, il peut tre activ avec le       }
{   bouton gauche ou droit de la souris, et tre affich  la position du clic }
{   de la souris (par dfaut) ou aux 4 coins du contrle grace  la proprit  }
{   PopupLocation.                                                             }
{   Il possde trois venements en plus que TSpeedButton : OnMouseEnter,       }
{   OnMouseExit et OnPaint.                                                    }
{                                                                              }
{   A little identical to TSpeedButton except which it doesn't have the        }
{   Caption, Layout and Spacing properties. It doesn't draw edge. It display   }
{   the bitmap charged in its Glyph property, or if this property  is empty,   }
{   it becomes an active transparent zone to place at the top of Bitmap to     }
{   define several hot zones for example.                                      }
{   If the HotTrack property is set to true, the bitmap must represent 3       }
{   states:  off, disabled and on and the NumGlyphs property must be set to 3. }
{   If PopupMenu is associated with control, it can be activated with the      }
{   left or right mouse button, and can be displayed at the position of the    }
{   mouse clic (by default) or at the 4 corners of control with the            }
{   PopupLocation property.                                                    }
{   It has three events in more than TSpeedButton:  OnMouseEnter, OnMouseExit  }
{   and OnPaint.                                                               }
{                                                                              }
{                                                                              }
{ TXFoldButton :                                                               }
{   Identique  TXStaticButton mais avec la possibilit de se dplier et se    }
{   replier sur lui mme en ajustant la taille du contrle parent              }
{   (gnralement un TPanel). Lorsque le bouton est repli il est possible de  }
{   cacher les contrles du parent et lorsqu'il est dpli de les afficher.    }
{   Deux proprits, GlyphFolded et GlyphUnFolded sont utilises pour afficher }
{   l'tat pli/dpli.                                                        }
{                                                                              }
{   Identical to TXStatiBUTTON but with the possibility of unfolding itself    }
{   and to fold up itself on him even by adjusting the size of his parent      }
{   control (generally TPanel). When the button is folded up it's possible to  }
{   hide the Parent controls and when it's unfolded to display them.           }
{   Two properties, GlyphFolded and GlyphUnFolded are used to display the      }
{   folded/unfolded state.                                                     }
{                                                                              }
{   Proprits/Properties :                                                    }
{     - ChangeParentSize: boolean                                              }
{         Change ou non la taille du parent.                                   }
{         Change or not the parent size.                                       }
{     - FoldType: TFoldType                                                    }
{         ftHeight change sa hauteur et celle de son parent, sans modifier la  }
{         largeur.                                                             }
{         ftWidth change sa largeur et celle de son parent, sans modifier la   }
{         hauteur.                                                             }
{         ftHeight changes its height and that of his parent, without          }
{         modifying the width.                                                 }
{         ftWidth changes its width and that of his parent, without modifying  }
{         the height.                                                          }
{     - GlyphFolded: TBitmap                                                   }
{         Bitmap reprsentant le bouton repli.                                }
{         Bitmap representing the folded up button.                            }
{     - GlyphUnFolded: TBitmap                                                 }
{         Bitmap reprsentant le bouton dpli.                                }
{         Bitmap representing the unfolded button.                             }
{     - HideParentControl: boolean                                             }
{         Si True, Cache les contrles enfants de son parent.                  }
{         If True, Hides children controls of its parent.                      }
{     - RemainingSize: integer                                                 }
{         Taille ajoute au contrle dpli (1 pixel par dfaut).              }
{         Size added to unfolded control (1 pixel by default).                 }
{     - UseUnFolded: boolean                                                   }
{         A False, ne dplie pas le bouton.                                    }
{         If False, the button does not unfold.                                }
{   Evenements :                                                               }
{     - OnFolded                                                               }
{         Se produit une fois le bouton repli et aprs la taille du parent    }
{         ajuste et ses contrles cachs.                                     }
{         Occurs once the button folded up and after the size of his parent    }
{         is adjusted and its controls hidden.                                 }
{     - OnUnFolded                                                             }
{         Se produit une fois le bouton dpli et aprs la taille du parent    }
{         ajuste et ses contrles affichs.                                   }
{         Occurs once the button unfolded and after the size of is parent is   }
{         adjusted and its controls displayed.                                 }
{     - OnHideParentControls                                                   }
{         Se produit avant que les contrles du parent soit cachs et permet   }
{         grace  la variable CanHide d'empcher qu'un contrle particulier    }
{         soit cach.                                                          }
{         Occurs before the parent controls is hidden and allows with the      }
{         CanHide var of prevent that a particular control is hidden.          }
{     - OnShowParentControls                                                   }
{         Identique  OnHideParentControls mais se produit quand les contrles }
{         enfants du parent vont tre raffichs.                              }
{         Identical to OnHideParentControls but occurs when the children       }
{         controls of his parent will be displayed.                            }
{     - OnResizeParent                                                         }
{         Se produit avant que la taille du parent soit modifie. Permet  ce  }
{         moment de modifier la valeur de RemainingSize.                       }
{         Occurs before the size of is parent is modified.  Allows to modify   }
{         the RemainingSize value.                                             }
{                                                                              }
{ Version : 1.2.0                                                              }
{ Date : 23/04/1999                                                            }
{                                                                              }
{ Cette version fixe un bug important sous Delphi 2 avec en plus :             }
{ - Suppression des proprits Align, Font, Color, ParentColor, ParentFont.    }
{   Ajout des proprit Transparent et FoldState qui permet de choisir l'tat  }
{   pli/dpli  la conception o par code.                                   }
{   BUG : sous Delphi 2 en mode transparent, le blanc est aussi masqu ???     }
{ This version fix an important bug under Delphi 2 with :                      }
{ - Suppression of Align, Font, Color, ParentColor, ParentFont properties.     }
{   Add new properties Transparent and FoldState, which allow to select the    }
{   state folded/unfolded at design time or by code.                           }
{   BUG : under Delphi 2 in transparent mode, white color is masked too,       }
{   why ???                                                                    }
{                                                                              }
{  The project and dfm files are in Delphi 3 format.                           }
{                                                                              }
{  Not tested under Delphi 4, but but must normally function (or after some    }
{  minors change).                                                             }
{  If somebody validates these components under Delphi 4, many thank's to      }
{  inform me by E-Mail.                                                        }
{------------------------------------------------------------------------------}
{  COPYRIGHT / GARANTIE                                                        }
{                                                                              }
{ Ces composants sont des gratuiciel et donc libre de droits. Il sont fournis  }
{ TEL QUEL, sans aucune garantie expresse ou tacite, pour quelque raison       }
{ que ce soit, y compris d'ventuels dommages causs par l'utilisation de ces  }
{ composants, les dommages pour pertes de profits, cessation d'activites       }
{ commerciales ou autre.                                                       }
{ Vous pouvez utiliser ces composants comme bon vous semble, except pour une  }
{ utilisation commerciale, c'est  dire ne pas utiliser tout ou  partie de ces }
{ composants dans un projet commercial (Dans ce cas le paiement d'une modeste  }
{ licence vous sera demand - contactez moi pour les prcisions).              }
{ Vous ne pouvez pas prtendre avoir crit ces composants et vous n'tes pas   }
{ autoris  supprimer l'en-tte du fichier source (question d'thique).       }
{ Si vous n'tes pas en accord avec ce qui prcde, ne les utilisez pas.       }
{                                                                              }
{ Donc, si vous modifiez ou amliorez ces composants, laissez intacte l'en-tte}
{ de ce fichier et ajoutez vos commentaires  la fin de cet l'en-tte.         }
{ Tous commentaires et/ou suggestions, rapport de bug, seront apprcis.       }
{ Si vous l'utilisez dans un projet, merci de mentionner mon nom et mon        }
{ adresse e-mail.                                                              }
{                                                                              }
{  COPYRIGHT/ LIMITED WARRANTY                                                 }
{                                                                              }
{  THESE COMPONENTS ARE FREEWARE AND PROVIDED 'AS IS' WITHOUT WARRANTIES OF ANY}
{  KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED }
{  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.         }
{  THE AUTHOR DOESN'T ASSUME ANY RESPONSIBILITY FOR ANY DAMAGE OR ANY LOOSE OF }
{  TIME OR MONEY DUE THE USE OF ANY PART OF THESE COMPONENTS. THE AUTHOR SHALL }
{  NOT BE LIABLE FOR INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR    }
{  SPECIAL OR INDIRECT DAMAGES OF ANY SORT, WHETHER ARISING IN TORT, CONTRACT  }
{  OR OTHERWISE, EVEN IF THE AUTHOR HAS BEEN INFORMED OF THE POSSIBILITY OF    }
{  SUCH DAMAGES.                                                               }
{                                                                              }
{  THE AUTHOR ARE SURE YOU KNOW THAT A NULL-COST FREE SOFTWARE DOES NOT        }
{  PROVIDE ANY WARRANTIES.                                                     }
{  IF YOU DON'T AGREE THIS TERMS, DON'T USE THESE COMPONENTS.                  }
{                                                                              }
{  You can use these components as you want, EXCEPT FOR A COMMERCIAL USE (what }
{  obliges the payment of a weak licence).                                     }
{  You cannot claim to have written these components and you are NOT authorized}
{  to remove the heading of source file (ethics problem).                      }
{                                                                              }
{  If you modify the source or make corrections or additions, add simply your  }
{  comments, a description and your name at the end of heading. In that case   }
{  thank you to send me a copy of your modifications.                          }
{                                                                              }
{  You can send me an e-mail with a bugs list, a request for modification or   }
{  development of new functionalities.                                         }
{  Generally, all comments or suggestions will be appreciated. Please, tell me }
{  what you do with this component, or simply Hello, I like your components.   }
{  If you use it in a project, thank's to mention my name and my               }
{  e-mail addresses.                                                           }
{                                                                              }
{  email : jmbo@softhome.net                                                   }
{                                                                              }
{                                                                              }
{  UTILISATION                                                                 }
{                                                                              }
{  Lancer le programme de dmo et regardez l'en-tte du source.                }
{  Launch the Demo program and see the heading of source file.                 }
{                                                                              }
{  INSTALLATION                                                                }
{                                                                              }
{  Sous Delphi 2, Slectionnez Composant, Installer then Add... Entrez         }
{  XButtonsReg.pas (ou parcourir et slectionnez XButtonsReg.pas)puis Ok 2     }
{  fois. Normalement les composants seront installs sur la page Jmbo.         }
{  Sous Delphi 3.0 ouvrez le fichier paquet de votre choix ou crez un nouveau }
{  paquet. Une fois ouvert, dans la fentre "Paquet" cliquez sur le bouton     }
{  "Ajouter" et slectionnez les fichiers XButtonsReg.pas et XButtons.pas,     }
{  puis cliquez sur "Installer" pour installer les composants.                 }
{  Si vous souhaitez changer le nom de la page vous pouvez modifier le fichier }
{  XButtonsReg.pas avant l'installation.                                       }
{                                                                              }
{  Under Delphi 2, Select Components, Install then Add...Type XButtonsReg.pas  }
{  and Ok 2 times. Normally the components will be installed in the Jmbo page. }
{  Under Delphi 3.0, place the component in the package of your choice or      }
{  create a new package. After having opened the package, press the Add button }
{  and select the files XButtonsReg.pas and XButtons.pas, then compile the     }
{  package and intall it. If you wish to change the page name you can modify   }
{  the "XButtonsReg.pas" file before.                                          }
{                                                                              }
{  If you have a problem with the installation send me an e-mail.              }
{                                                                              }
{           JMB                                                                }
{------------------------------------------------------------------------------}
