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

Composants VCL Delphi Discussion :

Comment créer une TForm fille transparente


Sujet :

Composants VCL Delphi

  1. #1
    Membre averti Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Points : 443
    Points
    443
    Par défaut Comment créer une TForm fille transparente
    Bonjour,

    Voilà je me bats depuis hier pour trouver une solution.

    Pour rendre le fond d'une fenêtre il suffit de faire dans le oncreate:
    Brush.Style := bsClear;
    Borderstyle:=bsNone;

    Ok, ça marche très bien lorsque la fenêtre est créé dans l'application.

    En revanche, lorsqu'elle est une fille d'une autre fenêtre qui elle n'est pas transparente, le rectangle occupé par la fenêtre transparente n'est pas redessinée par la fenêtre parente.

    Voici le code de création de la fenetre fille:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      FormTransparent:= TFormTransparent.Create(self);
      FormTransparent.Parent:=self;
      FormTransparent.width := 200;
      FormTransparent.Height:=200;
      FormTransparent.visible:=true;
    end;
    Je pense qu'il faudrait rajouter la zone de clipping à la fenêtre parente ?? est ce la bonne solution ?? comment faire ça ??
    merci pour vos réponses car là je tourne en rond.

    Franck

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    AlphaBlend : Indique si la fiche est translucide.
    AlphaBlendValue : Indique le degré de translucidité d'une fiche.
    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 averti Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Points : 443
    Points
    443
    Par défaut
    Je viens de tester mais Alphablend effectue une transparence de la fenêtre entière et de toutes ses fenêtres filles y compris son contenu.
    Moi je voudrais que le fond uniquement soit transparent.
    Merci

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    TransparentColor : Indique si une couleur de la fiche est transparente.
    TransparentColorValue : Indique quelle couleur de la fiche est transparente quand la propriété TransparentColor a la valeur true.

    En plus de bsNone
    Avec un TShape, tu peux dessiner les contours de la fenêtre et en mettant clFushia dans Color et TransparentColor les zones visibles de la fenêtre seront transparents

    j'ai recréé un balloonhint avancé de cette façon
    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

  5. #5
    Membre averti Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Points : 443
    Points
    443
    Par défaut
    C'est une piste effectivement, qui fonctionne très bien si la fenêtre n'est pas une fille d'une autre fenêtre....mais là ça ne marche pas.
    C'est comme s'il y avait une propriété du style ParentTransparentColor = true auquel cas elle ne tiendrait compte que de la fenêtre parente.

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    regarde ce sujet Forme qui prend l'apparence d'une image avec le code de AndNotOr et le mien
    il y a encore les ZIP Trou en C++ builder

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    unit ModuleTM_Truc;
     
    interface
     
    uses
      Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
      Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.Buttons, System.Types;
     
    type
      TModuleTMTrucForm = class(TForm)
        btn1: TBitBtn;
        btn2: TBitBtn;
        procedure FormPaint(Sender: TObject);
      end;
     
    implementation
     
    {$R *.dfm}
     
    { TModuleTMTrucForm }
     
    //------------------------------------------------------------------------------
    procedure TModuleTMTrucForm.FormPaint(Sender: TObject);
    const
      TrianglePoints: array[0..2] of TPoint =
       (( X: 40; Y: 10), (X: 50; Y: 0), (X: 60; Y: 10));
    begin
     
      Canvas.Brush.Color := clInfoBk;
      Canvas.Pen.Color   := clBlack;
     
      // Rectangle arrondi
      Canvas.RoundRect(0, TrianglePoints[0].Y, ClientWidth - 1, ClientHeight - 1, 30, 30);
     
      // Flèche
      Canvas.Polygon(TrianglePoints);
     
      // Efface le trait entre triangle et rectangle
      Canvas.Pen.Color := clInfoBk;
      Canvas.MoveTo(TrianglePoints[0].X +1, TrianglePoints[0].Y);
      Canvas.LineTo(TrianglePoints[2].X, TrianglePoints[2].Y);
    end;
     
     
     
    end.
    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
    36
    37
    38
    39
    object ModuleTMTrucForm: TModuleTMTrucForm
      Left = 678
      Top = 420
      BorderStyle = bsNone
      Caption = 'Truc'
      ClientHeight = 240
      ClientWidth = 339
      Color = clFuchsia
      TransparentColor = True
      TransparentColorValue = clFuchsia
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'Tahoma'
      Font.Style = []
      OldCreateOrder = False
      Position = poMainFormCenter
      OnPaint = FormPaint
      PixelsPerInch = 96
      TextHeight = 13
      object btn1: TBitBtn
        Left = 77
        Top = 156
        Width = 75
        Height = 25
        Caption = 'btn1'
        ModalResult = 1
        TabOrder = 0
      end
      object btn2: TBitBtn
        Left = 190
        Top = 156
        Width = 75
        Height = 25
        Caption = 'btn2'
        ModalResult = 1
        TabOrder = 1
      end
    end
    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

  7. #7
    Membre averti Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Points : 443
    Points
    443
    Par défaut
    J'ai regardé et j'ai fait quelques essais mais ça ne marche pas, au mieux la transparence s'applique aux deux fenêtres (fille et mère)

    1) J'ai mis Transparentcolor= true dans les deux fenetres (mère + fille) et un Tshape fuscia dans la fille avec la valeur de transparence à Fuscia dans les deux fenêtres:
    Résultat: cela fait un trou dans les deux fenêtres à la fois.
    2) J'ai mis Transparentcolor= true uniquement dans la fenêtre fille:
    Résultat: pas de transparence, le Tshape reste fuscia.

  8. #8
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    Je pense avoir compris, tu parlais de Mère\Fille au sens MDI
    Je pensais juste au sens Appelante\Apelllée

    Je n'ai jamais fait de transparence en MDIChild mais uniquement sur des fenetres SDI


    Faudrait tester les régions dans ce cas !
    J'ai repris le code que j'avais posté dans Splash screen personalisé qui lorsque l'on clic sur la fenêtre cela fasse un trou (d'emmental)
    C'est un vieux truc de 1999 chopé sur Phidels ! Rien de bien nouveau !

    On perd le theme sur la fenêtre, mieux vaut retirer les bordures (voir activant ou pas les code en (* bord *) et (* tout*))
    Si tu as besoin d'avoir une barre de titre, avec un panel et des bitbtn ça fera l'affaire !

    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
     
    unit ZooShaiVCL_MainMDI;
     
    interface
     
    uses
      Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
      Vcl.Controls, Vcl.Forms, Vcl.Dialogs;
     
    type
      TZooShaiVCLMainMDIForm = class(TForm)
        procedure FormDblClick(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      ZooShaiVCLMainMDIForm: TZooShaiVCLMainMDIForm;
     
    implementation
     
    uses ZooShaiVCL_ChildMDI;
     
    {$R *.dfm}
     
    procedure TZooShaiVCLMainMDIForm.FormDblClick(Sender: TObject);
    begin
      TZooShaiVCLChildMDIForm.Create(Self).Show();
    end;
     
     
    end.
    Code dfm : 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
     
    object ZooShaiVCLMainMDIForm: TZooShaiVCLMainMDIForm
      Left = 398
      Top = 339
      Caption = 'ZooShaiVCLMainMDIForm'
      ClientHeight = 637
      ClientWidth = 1289
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'Tahoma'
      Font.Style = []
      FormStyle = fsMDIForm
      OldCreateOrder = False
      OnDblClick = FormDblClick
      PixelsPerInch = 96
      TextHeight = 13
    end

    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
    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    unit ZooShaiVCL_ChildMDI;
     
    interface
     
    uses
      Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
      Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.Buttons;
     
    type
      TZooShaiVCLChildMDIForm = class(TForm)
        btn1: TBitBtn;
        btn2: TBitBtn;
        Memo1: TMemo;
        procedure FormCreate(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
        procedure FormClick(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
      private
        { Déclarations privées }
        RegionRondeCumul: HRGN; // Où est le trou dans mon Frooomage ...
      public
        { Déclarations publiques }
      end;
     
    implementation
     
    {$R *.dfm}
     
    procedure TZooShaiVCLChildMDIForm.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Action := caFree;
    end;
     
    procedure TZooShaiVCLChildMDIForm.FormCreate(Sender: TObject);
    (* bord *) //var
      (* bord *) //RegionWnd: HRGN;
    begin
      Randomize();
     
      RegionRondeCumul := CreateRectRgn(0, 0, 0, 0);
     
      (* bord *) //RegionWnd := CreateRectRgn(Width-ClientWidth, Height-ClientHeight, ClientWidth, ClientHeight);
      (* bord *) //CombineRgn(RegionWnd, RegionWnd, RegionRondeCumul, RGN_DIFF);
     
      (* bord *) //SetWindowRgn(Self.Handle, RegionWnd, Visible);
     
      Color := clInfoBk;
    end;
     
    procedure TZooShaiVCLChildMDIForm.FormDestroy(Sender: TObject);
    begin
      DeleteObject(RegionRondeCumul);
    end;
     
    procedure TZooShaiVCLChildMDIForm.FormClick(Sender: TObject);
    var
      RegionRonde: HRGN;
      RegionWnd: HRGN;
      R: Integer;
      PM: TPoint;
    begin
      if GetCursorPos(PM) then
      begin
        PM := Self.ScreenToClient(PM);
     
        // Une Région en forme d'un Rond
        R := Random(50);
     
        RegionRonde := CreateEllipticRgn(PM.X-R, PM.Y-R, PM.X+R, PM.Y+R);
        CombineRgn(RegionRondeCumul, RegionRondeCumul, RegionRonde, RGN_OR);
     
        (* bord *) //RegionWnd := CreateRectRgn(Width-ClientWidth, Height-ClientHeight, ClientWidth, ClientHeight);
        (* tout*) (*//*)RegionWnd := CreateRectRgn(0, 0, Width, Height);
        CombineRgn(RegionWnd, RegionWnd, RegionRondeCumul, RGN_DIFF);
     
        SetWindowRgn(Self.Handle, RegionWnd, Visible);
        // Ne pas faire de DeleteObject(RegionClient)
        // Aide de SetWindowRgn : With SetWindowRgn, do not close this region handle.
     
        // On oublie les Regions de Calcul
        DeleteObject(RegionRonde);
      end;
    end;
     
    end.
    Code dfm : 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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    object ZooShaiVCLChildMDIForm: TZooShaiVCLChildMDIForm
      Left = 568
      Top = 387
      Caption = 'ZooShaiVCLChildMDIForm'
      ClientHeight = 364
      ClientWidth = 1047
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'Tahoma'
      Font.Style = []
      FormStyle = fsMDIChild
      OldCreateOrder = False
      Visible = True
      OnClick = FormClick
      OnClose = FormClose
      OnCreate = FormCreate
      OnDestroy = FormDestroy
      PixelsPerInch = 96
      TextHeight = 13
      object btn1: TBitBtn
        Left = 185
        Top = 207
        Width = 75
        Height = 25
        Caption = 'btn1'
        ModalResult = 1
        TabOrder = 0
      end
      object btn2: TBitBtn
        Left = 266
        Top = 207
        Width = 75
        Height = 25
        Caption = 'btn2'
        ModalResult = 1
        TabOrder = 1
      end
      object Memo1: TMemo
        Left = 169
        Top = 112
        Width = 185
        Height = 89
        Lines.Strings = (
          'Memo1')
        TabOrder = 2
      end
    end
    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

  9. #9
    Membre averti Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Points : 443
    Points
    443
    Par défaut
    C'est amusant ! et en plus on a le contrôle sur ce qu'il se passe en dessous, à travers les trous.

    En fait j'avais déjà vu des exemples avec les régions mais j'avais abandonné car certains objets contenus par ma fenêtre fille ne sont pas rectangle, donc difficile de les détourer.
    Les objets sont hérités de TGraphicControl. Ce sont des éléments de supervision que l'utilisateur peut placer sur la fiche où il veut. Et dans le cas d'un container de plusieurs objets, celui-ci peut être sur fond transparent.
    Alors une des solutions est de créer une fonction dans chaque objet qui renvoie la région qu'il utilise mais je voulais éviter cela car ce n'est pas simple à gérer et à maintenir. Et surtout quand je vois avec quel facilité c'est faisable lorsque la fenêtre ne dépend pas d'une autre.

  10. #10
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    Citation Envoyé par franckcl Voir le message
    C'est amusant ! et en plus on a le contrôle sur ce qu'il se passe en dessous, à travers les trous..
    Je trouve aussi

    Citation Envoyé par franckcl Voir le message
    Les objets sont hérités de TGraphicControl. Ce sont des éléments de supervision que l'utilisateur peut placer sur la fiche où il veut..
    J'ai maintenu la même chose, mon prédecesseur avait utilisé des region de type Polygon pour créer des formes complexes pour ces TGraphicControl.
    Par exemple, si une image de batiment en Perspective Isométrique, cela permettait de détourer chaque étage en utilisant polygon suivi le tracé isométrique

    Idem, c'était plusieurs plan MDIChild, le plan principal pemettait d'ouvrir le plan de chaque étage (souvent un vu style plan d'évacuation avec les emplacement extincteurs, caméras, détecteur de centrale incendie ...)
    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

  11. #11
    Membre averti Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Points : 443
    Points
    443
    Par défaut
    Pour mon cas il ne s'agit pas de MDI mais bien de SDI.
    Le comportement est le même lorsqu'une fiche hérite d'une autre qu'on soit en SDI ou en MDI.
    Mon application n'est pas dans le batiment, il s'agit de contrôler des machines de recherches qui comportent des regulateurs de températures, des robots, des appareils de mesures divers et variés et tout cela communique en TCP/IP, en RS485 et en RS232.
    Pour chaque machine, on personnalise le synoptique (avec un explorateur de propriété et d'évènement pour chaque objet) et j'ai developpé un language pascal interprété qui permet de réaliser toute sorte d'automatisme en live, sans qu'aucune recompilation ne soit nécessaire. Je peux avoir des dixaines de script qui tournent simultanément....une usine à gaz qui fonctionne à merveille...

Discussions similaires

  1. Comment créer une connexion accès distant ?
    Par fredero dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 08/06/2005, 22h31
  2. comment créer une image sous forme d'eclipse(ronde)
    Par unix27 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 15/05/2005, 22h16
  3. [débutant] Comment créer une base ?
    Par laffreuxthomas dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 14/12/2004, 22h12
  4. [MDI] Comment charger une Form fille au démarrage ?
    Par Benjamin GAGNEUX dans le forum Composants VCL
    Réponses: 13
    Dernier message: 03/07/2004, 12h40
  5. Comment créer une Table dans 1 Bdd ACCESS avec Builder??
    Par makandja dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/03/2004, 20h21

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