IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

[D7] Checkbox dans un Timage


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 510
    Par défaut [D7] Checkbox dans un Timage
    Bonjour,

    j'ai créé une Classe THorlogeGraph dérivée d'un Timage sur laquelle je dessine dans un timer et je voudrais y afficher aussi un TCheckBox (et un TEdit ensuite). Je précise que je ne dessine pas dans la partie ou je veux afficher le CheckBox. :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Type
      THorlogeGraph = Class( TImage )
      Private
        { Déclarations privées }
        FTimer : TTimer;
        FAlarm : TCheckBox ;
        ...
    Dans le create, je créé la CheckBox, mais elle n'apparait pas à l'écran (je n'arrive pas à affecter le parent car Delphi veux un TWinControl et non un THorlogeGraph ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    { ==================================================================== }
    Constructor THorlogeGraph.Create( Aower : TComponent );
    Begin
      Inherited;
      FTimer := TTimer.Create( self );
      FTimer.OnTimer := Affiche;         // Dessine sur le Canvas de THorlogeGraph
      ...
      FAlarm := TCheckBox.Create(Self);
    //  FAlarm.Parent := Self  ;        // Fonctionne pas
      Falarm.Caption := 'Set Alarm' ;
      FAlarm.Checked := True ;
      FAlarm.visible := True ;
      FAlarm.Top := 120 ;
      FAlarm.Left := 20 ;
      FAlarm.Width := 60 ;
      FAlarm.Height := 20 ;
    merci pour vos lumières !

    A+
    Charly

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par défaut
    Un GraphicControl ne peut pas être parent d'un TWinControl
    Il te faut un container
    plusieurs approches possibles
    Si c'est un composant visuel réutilisable que tu veux utiliser sur la palette, change l'ancêtre en Panel par exemple, avec le Timage et le reste
    Si c'est un composant one shot, tu peux tout simplement faire, attention, le Left\Top sont à décaler manuellement entre le Parent et le Timage.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FAlarm.Parent := Self.Parent ;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 510
    Par défaut
    Merci Shai pour ta réponse.

    J'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      FAlarm := TCheckBox.Create(Self);
      FAlarm.Parent := Self.parent  ;
      FAlarm.Width := 60 ;
      FAlarm.Height := 20 ;
      FAlarm.Top := 290 ;
      FAlarm.Left := 20 ;
      Falarm.Caption := 'Set Alarm' ;
      FAlarm.Checked := True ;
      FAlarm.visible := True ;
    Cette fois ça compile, mais la CheckBox reste invisible ?
    Qu'est ce que j'ai raté ?

    je n'ai pas compris le décalage ? Le Timage est le parent du CheckBox ?

    le Left\Top sont à décaler manuellement entre le Parent et le Timage.
    A+
    Charly

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut

    remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FAlarm.Parent := Self.parent  ;
    par a mon avis ce serais deja mieux
    le parent doit etre le panel sous jaccent

    essai de faire un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
      TMyBoxSelect = class(TCustomGroupBox)
      private
          FAlarm: TCheckBox;
     
       ...
      protected
        procedure OnAlarmClick(Sender: TObject);
      ...
     end;
    ... 
    constructor TMyBoxSelect.Create(AOwner: TComponent);
    Begin 
       inherited Create(AOwner)
       ...
       FAlarm := TCheckBox.Create(Self);
       FAlarm.Parent := Self;
       FAlarm.ParentFont := False;
       FAlarm.Font.Style := [];
       FAlarm.Caption := 'Tous';
       FAlarm.Alignment := taLeftJustify;
       FAlarm.OnClick := OnAlarmClick;
       FAlarm.Visible := True;
    End;
     
     
    procedure TMyBoxSelect.OnAlarmClick(Sender: TObject);
    begin
      ...
    end;

  5. #5
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 510
    Par défaut
    Non, c'est ce que j'avais avant. ça ne compile pas car comme dit ShaiLeTroll un TWinControl ne peut pas descendre d'un TComponent

    Je pense qu'il faut que je parte d'un TPanel, pour poser dessus mon TImage et mon TCheckBox ?

    A+
    Charly

  6. #6
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut


    justement dans le cas d'un TPanel le contenant c'estet non regarde l'exemple que j'ai mis plus haut

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 30/03/2007, 20h54
  2. EInvalidGraphic sur chargement d'un jpeg dans un TImage
    Par tomtom7 dans le forum C++Builder
    Réponses: 3
    Dernier message: 22/02/2007, 12h54
  3. CheckBoxes dans un QuickReport ?
    Par Soulama dans le forum Composants VCL
    Réponses: 2
    Dernier message: 11/07/2005, 15h59
  4. Image en mosaique dans un TImage
    Par Maitre Dragon dans le forum C++Builder
    Réponses: 6
    Dernier message: 31/07/2004, 13h18
  5. [VB.NET] Insérer une colonne de CheckBox dans un DataGrid
    Par Manue.35 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/05/2003, 11h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo