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 FMX Delphi Discussion :

FMX et internationalisation de projet


Sujet :

Composants FMX Delphi

  1. #21
    Invité
    Invité(e)
    Par défaut
    Oui, je posais ce genre de question un post plus loin : http://www.developpez.net/forums/d12...entre-fmx-vcl/

    Mais c'est ce que je refuse de plus en plus avec Lazarus : rentrer dans la machinerie pour... simplement traduire ou effectuer une simple tâche. J'ai vu que les Hint avait disparu en FMX, qu'on retournait à FastReport quand j'utilisais Rave, ... ?
    Je me moque des RTTIs et comment ils sont utilisés. Mais s'il faut que je rentre dedans pour internationaliser mes projets alors je vais voir ailleurs.

    Ensuite FMX, l'excuse de l'âge je ne prends pas : d'abord ils ont du recul (Kylix). vgScene existe depuis Delphi 7 et peut-ête même avant... Mais, je ne veux pas vous ennuyer plus et je pense que nos points de vue sont inconciliables. Je voulais simplement m'informer. FMX est comme il est et je ne critique pas. Il a ses supporters et tant mieux. J'ai un choix à faire. Ce que j'ai lu m'a interpellé. J'ai posé une question complémentaire dans votre forum, ayant "peur" de mal comprendre.

    Simplement, je sais qu'en Delphi (et en VCL) on peut "tout" faire. Mais je n'ai pas envie en Delphi de me remettre au niveau du C (voire ++). Visiblement c'est une approche qui vous est familière. Je suis un simple programmeur, pas un "technos" : je cherche une plateforme de production. Comme l'écrivait Paul, il y a peu, on peut devoir et pouvoir produire sans rentrer dans l'OS, ni dans les arcanes de l'IDE ou du Pascal. Enfin, c'est mon approche et mon souhait actuels.

    Maintenant si je peux aller au bout de ma pensée : sortir l'arme nucléaire pour faire apparaître une simple bulle d'aide... et si j'ai bien compris pas exactement à l'endroit souhaité, c'est 2 fois non : 1. parce qu'il faut produire son propre code pour cette simple fonction 2. parce qu'il n'y a aucune raison, que la bulle ne soit pas à la place que j'ai décidé. Ce genre de contrainte est tout à fait inacceptable dans un "nouveau' (2ans ) langage. Par contre évidemment, cela valorise votre approche. Ce qui ne me gêne absolument pas, soyez en rassuré.


    Cordialement. Gilles

    PS : Simplement pour vous montrer combien nos approches sont différentes :
    Pour des
    Label1 Edit1
    Label2 Edit2... et leur alignement en fonction des diverses langues, 2 simples TPanels (1 pour la col. des TLabels, l'autre pour la col. des TEdits) règlent le problème sans aucune ligne de programmation :

    On incorpore les Labels dans le Panel1. Le Panel1.Autosize, les Label1.Autosize, Label2.Autosize --> True. Ainsi, le problème est réglé pour la largeur. Pour la hauteur, il suffit dans le panel des TLabels d'aligner verticalement toujours avec ancrage, par exemple des TImages vides (Width := 0; Height := 23). Je centre verticalement ensuite toujours avec ancrage, les TLabels sur les TImages... même si ce n'est pas des TImages que j'utilise. Cela prend 30 secondes. Les traductions sont faites par des personnes étrangères au programme (à partir de l'anglais) sur mes fichiers.po. Je ne sais pas si les RTTI interviennent et m'en moque complètement si je peux me permettre Cette méthade présente l'avantage de ne pas avoir à repérer quel est le TLabel le plus long pour y faire "reposer" l'ancrage des Tedits, quelque soit la langue, la Font utilisée puisque cela se fait automatiquement. Un simple copier-coller d'une forme à l'autre ou un reciopage d'une partie des .lfm et le temps gagné est important... Il faudrait presqu'en faire un composant. Là d'accord, j'accepte de mettre les mains dans la machine parce qu'en terme de production, j'y gagne... mais pas d'accord pour les rustinages (Aïe Lazarus) et l'artillerie lourde pour des fonctions simples (Aïe FMX)...

    unit1.lfm 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
    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
    87
    88
    89
    90
    91
    92
    93
    94
    95
    object Form1: TForm1
      Left = 238
      Height = 240
      Top = 145
      Width = 556
      Caption = 'Form1'
      ClientHeight = 240
      ClientWidth = 556
      OnCreate = FormCreate
      LCLVersion = '1.1'
      object Panel1: TPanel
        Left = 32
        Height = 48
        Top = 45
        Width = 37
        AutoSize = True
        Caption = 'Panel1'
        ClientHeight = 48
        ClientWidth = 37
        TabOrder = 0
        object Label1: TLabel
          AnchorSideLeft.Control = Panel1
          AnchorSideTop.Control = Image1
          AnchorSideTop.Side = asrCenter
          Left = 1
          Height = 16
          Top = 4
          Width = 35
          Caption = 'Label1'
          ParentColor = False
        end
        object Label2: TLabel
          AnchorSideLeft.Control = Panel1
          AnchorSideTop.Control = Image2
          AnchorSideTop.Side = asrCenter
          Left = 1
          Height = 16
          Top = 27
          Width = 35
          Caption = 'Label2'
          ParentColor = False
        end
        object Image1: TImage
          AnchorSideLeft.Control = Panel1
          AnchorSideTop.Control = Panel1
          Left = 1
          Height = 23
          Top = 1
          Width = 0
        end
        object Image2: TImage
          AnchorSideLeft.Control = Panel1
          AnchorSideTop.Control = Image1
          AnchorSideTop.Side = asrBottom
          Left = 1
          Height = 23
          Top = 24
          Width = 0
        end
      end
      object Panel2: TPanel
        AnchorSideLeft.Control = Panel1
        AnchorSideLeft.Side = asrBottom
        AnchorSideTop.Control = Panel1
        Left = 69
        Height = 50
        Top = 45
        Width = 170
        Caption = 'Panel2'
        ClientHeight = 50
        ClientWidth = 170
        TabOrder = 1
        object Edit1: TEdit
          AnchorSideLeft.Control = Panel2
          AnchorSideTop.Control = Panel2
          Left = 1
          Height = 23
          Top = 1
          Width = 80
          TabOrder = 0
          Text = 'Edit1'
        end
        object Edit2: TEdit
          AnchorSideLeft.Control = Panel2
          AnchorSideTop.Control = Edit1
          AnchorSideTop.Side = asrBottom
          Left = 1
          Height = 23
          Top = 24
          Width = 80
          TabOrder = 1
          Text = 'Edit2'
        end
      end
    end
    Et le résultat :

    RQ : Dans l'exemple ci-dessus le Panel2 n'est pas réellement nécessaire même s'il simplifie la vie. Il permet surtout d'aligner d'autres colonnes (à sa droite) facilement et selon le même principe. J'allais oublier quand même : on obtient le même résultat avec le même code sous Win et Nux
    Dernière modification par Invité ; 25/07/2012 à 18h06.

Discussions similaires

  1. Qu'est ce qu'un grand projet ?
    Par Geronimo dans le forum Débats sur le développement - Le Best Of
    Réponses: 62
    Dernier message: 04/04/2013, 14h52
  2. Aider un projet open source C++ à l'internationalisation
    Par DavidLord dans le forum wxWidgets
    Réponses: 2
    Dernier message: 03/01/2011, 21h59
  3. Réponses: 2
    Dernier message: 30/10/2009, 13h44
  4. Problème internationalisation projet Django
    Par jacquesdx dans le forum Django
    Réponses: 6
    Dernier message: 06/01/2009, 21h52
  5. Les fichiers d'un projet
    Par Manolo dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/05/2002, 17h51

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