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

Delphi Discussion :

Initialiser un TImage


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut Initialiser un TImage
    Salut à tous,

    Voilà mon problème c'est encore et toujours la POO...En fait je suis en train de faire un logiciel de simulation électrique, et tous les composants sont en faite un TImage avec des propriété propre (une image, un type, un identifiant, un point du réseau...)

    Et en faite je voudrais faire une méthode qui me permette d'initialiser l'image (et d'autres variables) à la création de l'objet en passant seulement le type. Mais je bloque... Voici mon code, merci par avance pour l'aide apportée.

    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
    31
    32
    33
    34
    35
    type
      TObjet = class(TImage)
      private
        fbranche_id:integer;
        ftypeobjet:integer;
        objet_id:integer;
        objet_visible, objet_selectionner:boolean;
        .....
      public
        Property selection:boolean read objet_selectionner write objet_selectionner;
        Property Data:TDataSource read aData write aData;
        Property num_id:integer read objet_id write objet_id;
        Property Afficher:boolean read objet_visible write objet_visible;
        Property typeObjet:integer read ftypeobjet write ftypeobjet;
        Property branche_id:integer read fbranche_id write fbranche_id;
        procedure PositionnerDataset;
        Constructor Create(AOwner:TComponent;kindof : integer); overload;
    end;
     
     
    implementation
     
    {{------------------------------------------------------------
    --------------------------------------------------------------}
    constructor TObjet.create(AOwner:TComponent;kindof:integer);
    begin
      inherited Create(AOwner);
      objet_selectionner:=true;
      objet_id:=kindof;
     //Objet.Picture.LoadFromFile('C:\gare.bmp');  //plante puisque l'objet n'est pas encore créé...
    end;
    {{------------------------------------------------------------
    --------------------------------------------------------------}
     
    end.
    A+.

  2. #2
    Membre confirmé Avatar de jambonstar
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Par défaut
    Salut,
    Ta poperty peut avoir une procedure à la place d'une simple variable, ce qui peut te permettre de réaliser ce que tu souhaite.
    Il te suffit de transformer ton code comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Property typeObjet:integer read ftypeobjet write ftypeobjet;
    
    // devient 
    
    Property typeObjet:integer read ftypeobjet write SetTypeObjet;
    
    // Une fois tapé comme ca tu fait Ctrl+Shift+C et ca va 
    // automatiquement te crée la procédure.
    Dans ta procédure du fait un case pour définir l'image à charger.
    Comme ca des que tu affecte un nouveau type, magie, l'image se modifie

  3. #3
    Membre confirmé Avatar de jambonstar
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Par défaut
    Attends, je crois que j'ai pas bien lu ton post...

    Tu souhaite charger l'image lors du premier affichage. Le Timage n'aurait pas un evenement OnShow ?
    Si oui tu le dérive et hop...
    Je me gourre peut-être encore..

  4. #4
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut
    Merci pour l'aide,

    En faite mon problème c'est que je sais pas quoi mettre devant le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Picture.LoadFromFile('C:\gare.bmp');
    En effet puisque le TImage n'existe pas...Alors pour l'instant j'ai une classe "supérieur" qui gère la création des TImages et leurs affectent leurs propriétées initiales, mais j'ai peur qu'avec cette méthode je me retrouve vite avec des classes initialisant des classes intiliasisant des classes...

    A+.

  5. #5
    Membre confirmé Avatar de jambonstar
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Par défaut
    Self ?

  6. #6
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 69
    Par défaut
    a priori, y a rien a mettre puisque tu hérites de TImage, la property Picture t'appartient aussi...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Picture.LoadFomFile('C:\gare.bmp')
    Bruno

  7. #7
    Membre confirmé Avatar de jambonstar
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Par défaut
    Ou Self

  8. #8
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut :sm: :mur:
    Merci pour tout...J'avais même pas fait gaffe que l'on pouvaitutiliser un truc aussi simple...

    Merci pour votre patience et pour votre aide,

    A+.

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

Discussions similaires

  1. Timage et Canvas??
    Par vanack dans le forum C++Builder
    Réponses: 4
    Dernier message: 14/04/2007, 11h38
  2. [TImage] Transfert de Picture par pixels.
    Par H2D dans le forum Langage
    Réponses: 9
    Dernier message: 25/10/2003, 14h37
  3. vider un timage
    Par gIch dans le forum Composants VCL
    Réponses: 2
    Dernier message: 23/08/2002, 23h58
  4. TImage
    Par Thylia dans le forum C++Builder
    Réponses: 5
    Dernier message: 09/07/2002, 20h03
  5. Création dynamique de TImages
    Par Dric dans le forum C++Builder
    Réponses: 10
    Dernier message: 08/07/2002, 12h36

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