Bonjour Serge,
Je préférerais être autonome... Le pire est que des tutos (et des cours) j'en fais en PDF de manière hebdomadaire et que j'ai même automatisé la réalisation des documents... Mais je suppose que cela ne conviendra pas.
Question idiote : tu as précisé qu'il fallait placer les images en dehors du document... Je suppose que tu pointes avec des liens (à partir du document)... Mais les images, les mets-tu à la taille de celles qui figurent dans le document -qui corrige automatiquement leur taille au moment de leur incorporation- ou laisses-tu les images d'origine avec la taille des copies d'écrans ?
Pour en revenir aux ancrages, avec un peu de calcul (un tout petit peu) on peut faire les choses très proprement et efficacement. J'ai (encore) modifié mon approche ce matin pour diminuer le nombre de Panels dans le respect de l'orthodoxie afin de rester compatible avec les évolutions futures de Delphi.
OK pour les layouts en FMX. D'autant que l'approche est globalement semblable.
Pour les traductions, en Delphi je n'ai pas encore essayé. En Lazarus et Qt, j'utilise i18n. Et dans une vieille discussion je crois me rappeler qu'à l'époque les Delphistes utilisaient une autre approche. Là, ce serait un casse tête de plus.
Enfin pour les composants... Quand j'ai quitté Delphi (7), je privilégiais l'approche avec des dll externes que je réalisais. C'est Chris37 qui m'a fait comprendre la supériorité des composants en Lazarus et appris à les réaliser. J'en ai "dérivé" un nombre important... au point que mes propres composants sont devenus la base de mes développements. C'est vraiment rapide, permet de corriger immédiatement des bugs ou de l'adapter à la plateforme cible... Du TLabel à la TStringGrid en passant même par des TSQLxxx, j'ai créé les miens, parfois avec peu de modifications (les TSQLxxx) et parfois avec beaucoup d'apports comme les TStringGrids (Tris multiples intégrés, multisélection, affichage des memos,...)... La chose qui m'a manqué est la gestion du HTML... Et là, il faut être un spécialiste en "wrappers". Je ne pense pas faire aussi bien en Delphi... même VCL... et encore moins FMX. Pour l'instant, le manque n'est pas encore là. Mais j'y reviendrais certainement.
Je corrige mon document et je t'envoie un lien ftp par la messagerie privée. Le document sera un peu "brut". J'évite les enrichissements qu'il faudrait enlever pour le formater et qui serait une perte de temps. Par contre, précise-moi la taille des images à fournir : tailles d'origine ou tailles corrigées par le TT ?
PS : pour illustrer l'usage des calculs. J'ai repris le code de ShaileTroll.
le dfm est celui-ci (un seul TGridPanel au lieu de 3 Panels)
Avec un petit calcul qui utiliserait max(pour déterminer la valeur de la longueur principale)
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117 object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 243 ClientWidth = 472 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False OnCreate = FormCreate DesignSize = ( 472 243) PixelsPerInch = 96 TextHeight = 13 object GridPanel1: TGridPanel Left = 176 Top = 96 Width = 137 Height = 41 Anchors = [] Caption = 'GridPanel1' ColumnCollection = < item SizeStyle = ssAuto Value = 50.000000000000000000 end item SizeStyle = ssAuto Value = 100.000000000000000000 end> ControlCollection = < item Column = 0 Control = Label1 Row = 0 end item Column = 1 Control = Edit1 Row = 0 end item Column = 0 Control = Label2 Row = 1 end item Column = 1 Control = Edit2 Row = 1 end> RowCollection = < item Value = 50.000000000000000000 end item Value = 50.000000000000000000 end> TabOrder = 0 DesignSize = ( 137 41) object Label1: TLabel Left = 1 Top = 4 Width = 31 Height = 13 Anchors = [akLeft] Caption = 'Label1' ExplicitTop = 16 end object Edit1: TEdit AlignWithMargins = True Left = 40 Top = 1 Width = 113 Height = 19 Margins.Left = 8 Margins.Top = 0 Margins.Right = 0 Margins.Bottom = 0 Anchors = [akLeft] TabOrder = 0 Text = 'Edit1' ExplicitTop = 8 end object Label2: TLabel Left = 1 Top = 23 Width = 31 Height = 13 Anchors = [akLeft] Caption = 'Label2' ExplicitTop = 16 end object Edit2: TEdit AlignWithMargins = True Left = 40 Top = 20 Width = 113 Height = 20 Margins.Left = 8 Margins.Top = 0 Margins.Right = 0 Margins.Bottom = 0 Anchors = [akLeft] TabOrder = 1 Text = 'Edit2' ExplicitTop = 8 end end end
Résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 procedure TForm1.FormCreate(Sender: TObject); begin Label2.Caption := 'Un mot très long'; GridPanel1.Width := Label2.Width + Edit2.Width + Edit2.Margins.Left +2; // 2 = les 2 BevelWidth de 1 end;
Partager