Programmation GTK2 en Pascal/GtkBox
Présentation.
Le contrôle GtkBox est un contrôle conteneur que nous n'allons pas utiliser directement mais plutôt par la biais de deux contrôles fils qui sont codice_1 et codice_2. Le but principal d'une codice_3 (qu'elle soit H ou V) et de pouvoir contenir plusieurs contrôles dans une même boite. Les contrôles sont pour ainsi dire empiler les uns sur les autres. Nous allons donc étudier les quelques fonctions de ce contrôle qui nous sont utiles.
Utilisation de base.
Ajout de contrôle.
Avant de pouvoir ajouter un contrôle dans une codice_4 ou codice_5, il faut savoir que pour une codice_3 il existe la notion de premier et de dernier contrôle. Nous allons donc pouvoir ajouter des contrôles soit par le début soit par la fin avec une de ces deux fonctions :
 procedure gtk_box_pack_start(box : PGtkBox; child : PGtkWidget; expand : gboolean; 
 fill : gboolean; padding : guint);
 procedure gtk_box_pack_end(box : PGtkBox; child : PGtkWidget; expand : gboolean; 
 fill : gboolean; padding : guint);
La première fonction ajoute un contrôle par le début de la codice_3 et la deuxième par la fin.
Pour les paramètres, ils sont les mêmes pour les deux fonctions. Le premier, codice_8, est en fait le contrôle conteneur dans lequel nous allons insérer le contrôle codice_9 qui vient en deuxième paramètre.
Le troisième paramètre, codice_10 nécessite un petite explication. Nous ne le voyons pas ici, mais lors de la création d'une codice_4 ou codice_5, il faut définir une propriété appelée codice_13. Cette propriété détermine si les contrôles qui sont à l'intérieur de la codice_3 vont se partager l'intégralité de l'espace fourni, ou alors réserver uniquement la place qui leur est nécessaire (la fonction pour mettre à jour cette propriété est codice_15).
Petit exemple, nous avons un espace de 3 pixels dans lequel nous voulons insérer deux contrôles de 1 pixel. Si le paramètre codice_13 est à TRUE, chaque contrôle réservera un espace de 1,5 pixel. Au contraire si il est à FALSE, chaque contrôle réservera un espace de 1 pixel, laissant donc un espace libre de 1 pixel à la fin.
Revenons donc au paramètre codice_10. Si la codice_3 est homogène, la valeur de ce paramètre n'a aucune importance. Par contre si la codice_3 n'est pas homogène, le fait de mettre codice_10 à TRUE à un contrôle va lui permettre de partager l'espace restant dans la codice_3 avec les autres contrôles qui auront été insérés avec codice_10 à TRUE.
Reprenons notre exemple. La codice_3 n'est pas homogène, donc normalement chaque contrôle va réserver 1 pixel de l'espace. Si nous mettons le premier contrôle avec codice_10 à TRUE et le deuxième avec codice_10 à FALSE, le deuxième contrôle réservera un espace de 1 pixel, le premier aussi mais il doit se partager l'espace libre (1 pixel) avec les autres contrôles qui ont aussi la propriété codice_10 à TRUE. Comme il est tout seul avec cette propriété, il va donc réserver 2 pixels.
Le paramètre codice_27 permet de définir si le contrôle enfant occupe toute la zone qui lui est réservée. Il n'est utilisé que si codice_10 est à TRUE.
Et enfin, le paramètre codice_29 permet d'ajouter de l'espace autour du contrôle.
À noter les deux fonctions :
 procedure gtk_box_pack_start_defaults(box : PGtkBox; widget : PGtkWidget);
 procedure gtk_box_pack_end_defaults(box : PGtkBox; widget : PGtkWidget);
Elles sont équivalentes aux deux fonctions ci-dessus avec les trois derniers paramètres positionnés par défaut : codice_10 est à TRUE, codice_27 est à TRUE et codice_29 est à 0.
Programme exemple.
Dans cet exemple, nous allons insérer un bouton dans la codice_5, deux boutons dans une codice_4 elle-même dans la codice_5 puis enfin un bouton dans la codice_5, afin d'étudier les fonctions d'ajout du contrôle codice_3.
Voilà le fichier codice_38 :
program gtk005;
uses glib2, gtk2;
var
 pFenetre : PGtkWidget;
 pVBox : PGtkWidget;
 pHBox : PGtkWidget;
 pBouton : array [1..4] of PGtkWidget;
begin
 gtk_init(@argc, @argv);
 pFenetre := gtk_window_new(GTK_WINDOW_TOPLEVEL);
 gtk_window_set_position(GTK_WINDOW(pFenetre), GTK_WIN_POS_CENTER);
 gtk_window_set_default_size(GTK_WINDOW(pFenetre), 320, 200);
 gtk_window_set_title(GTK_WINDOW(pFenetre), 'Gtk005 : GtkBox');
 gtk_signal_connect(pGTKOBJECT(pFenetre), 'destroy', GTK_SIGNAL_FUNC(@gtk_main_quit), NULL);
 // Création de la GtkVBox
 pVBox := gtk_vbox_new(TRUE, 0);
 // Ajout de la GtkVBox dans la fenêtre
 gtk_container_add(GTK_CONTAINER(pFenetre), pVBox);
 // Création des boutons
 pBouton[1] := gtk_button_new_with_label('Bouton 1');
 pBouton[2] := gtk_button_new_with_label('Bouton 2');
 pBouton[3] := gtk_button_new_with_label('Bouton 3');
 pBouton[4] := gtk_button_new_with_label('Bouton 4');
 // Ajout du bouton 1 dans la GtkVBox 
 gtk_box_pack_start(GTK_BOX(pVBox), pBouton[1], TRUE, FALSE, 0);
 // Creation de la « boîte » horizontale 
 pHBox := gtk_hbox_new(TRUE, 0);
 // Ajout de la GtkHBox dans la GtkVBox 
 gtk_box_pack_start(GTK_BOX(pVBox), pHBox, TRUE, TRUE, 0);
 // Ajout des boutons 2 et 3 dans la GtkHBox 
 gtk_box_pack_start(GTK_BOX(pHBox), pBouton[2], TRUE, TRUE, 0);
 gtk_box_pack_start(GTK_BOX(pHBox), pBouton[3], TRUE, FALSE, 0);
 // Ajout du dernier bouton dans la GtkVBox 
 gtk_box_pack_start(GTK_BOX(pVBox), pBouton[4], TRUE, TRUE, 0);
 gtk_widget_show_all(pFenetre);
 gtk_main;
end.
Voilà ce que donne l'exécution du programme codice_39 :
Récapitulatif des paramètres de codice_40 pour chaque bouton :

Bambara
Le bambara, aussi connu sous le nom de "bamanankan", est une langue niger-congo parlée au
Mali par plus de 9 millions de personnes. De nombreuses autres personnes parlent
également cette langue, ou des dialectes, dans d'autres pays voisins comme (par ordre alphabétique) le Burkina 
Faso, la Côte d'Ivoire,la Gambie et la Guinée. Elle s'écrit à l'aide d'un alphabet latin où on ajoute quelques signes phonétiques. C'est une langue agglutinante, essentiellement phonétique.

Enseignement de l'anglais/Past perfect
Past perfect (simple).
Emploi.
On utilise le past perfect pour situer une action dans le passé par rapport à un autre moment dans le passé, le plus souvent défini par le prétérit. Le past perfect correspond au passé antérieur français.
Past perfect (progressif).
Emploi.
On emploie le past perfect progressif pour parler d'actions qui continuaient à un moment du passé.
Application.
Test
Retour Enseignement de l'anglais

Enseignement de l'anglais/can, could, be able to

Can et could sont des modaux, ils ne prennent pas de -s à la troisième personne du singulier, ils ne sont jamais suivis de to, la négation et l'interrogation se fait sans "do". 
Can.
Can : capacité physique et intellectuelle.
On emploie le plus souvent can donner une capacité intellectuelle ou physique actuelle de quelqu'un.Exemples : 
Can : demande polie informelle.
Exemple : Can you help me ? "Peux-tu m'aider ?" Réponse : Yes , I can !
Can't.
Can't est la négation de can. On l'emploie pour une incapacité. Can't (ainsi que que can à la forme interrogative) peut qualifier le possible, l'impossible.
Exemple : 
Be able to.
Will be able to.
Can ne s'emploie pas au futur. On emploie will be able to. La forme négative de will be able to est "won't be able to".Exemple :
Infinitif, participe présent, participe passé.
On utilise également to be able to comme infinitif de can, been able to comme participe passé et being able to comme participe présent. Enfin was able to présente une aptitude occasionnelle *et réalisée* dans le passé (could présente une aptitude permanente du passé).Exemples :
Could.
Could est le prétérit et le conditionnel de can. La forme négative de could est couldn't.
Aptitude (inaptitude) permanente.
Could présente une aptitude permanente dans le passé. Exemples :
Reproche.
Retour au sommaire