User: alciro    User
 Original    Translate to:  Deutsch  English  Français  中文  
 

Programación en C++ Builder

 Tableaux (tableaux)
 Pointeurs
3. Exemple de la classe en c + +
8. méthodes de la classe AnsiString
 C + +
 Paquets, de distribuer une application sans installation
 Exchange ou le tri des bulles
 Fonctions de chaîne string.h

10.2. Méthodes

~ TStrings
Destructor.

Ajouter
Ajouter une chaîne à la fin de la liste. La méthode Add renvoie l'index de la nouvelle chaîne.

 virtuelle __fastcall int Add (const System:: AnsiString S); 

BeginUpdate et EndUpdate doit toujours être utilisé en conjonction avec un ... catch essayer de s'assurer qu'il est appelé EndUpdate si une exception se produit. Un bloc qui BeginUpdate Usages et EndUpdate ressemble généralement à ceci:

 void __fastcall TForm1:: Button1Click (TObject * Sender)
{
Articles ListBox1-> BeginUpdate ();
try {
ListBox1-> Items-> Clear ();
ListBox1-> Items-> Add ("Certains foo");
ListBox1-> Items-> Add ("Certaines données");
Articles ListBox1-> EndUpdate ();
}
captures (...){
ListBox1-> Items-> EndUpdate (); / / événements exécutés en cas d'exception
jeter;
}
} 

AddObject
Ajouter une chaîne à la liste, et associe un objet à la chaîne.

 virtuelle AddObject __fastcall int (const System:: AnsiString S, System:: TObject * AObject) 

Description

Appel AddObject pour ajouter une chaîne et son objet associé à la liste. AddObject retourne l'index de la nouvelle chaîne et de l'objet.

Ce code ajoute la chaîne «Orange» et une image bitmap d'une orange à un tirage au sort zone de liste-propriétaire:

 void __fastcall TForm1:: Button1Click (TObject * Sender)
{
TIcon * Icon;
Icon = TIcon nouvelle;
LoadFromFile Icon-> (Orange.es ");
Articles ListBox1-> AddObject ("Orange", icône);
} 

AddStrings
Ajouter un groupe de chaînes à la liste. Par exemple, copier le contenu d'une note de service dans un autre.

 virtuelle void __fastcall AddStrings (TStrings * cordes); 

Description

Appel AddStrings d'ajouter les chaînes d'un autre objet TStrings à la liste. Si les deux objets et de destination source associé en charge les objets TStrings Avec leurs chaînes, des références aux objets associés seront ajoutés ainsi.

Ce code ajoute la liste des chaînes contenues dans-> Articles ListBox1 à la fin de la-> Articles liste ListBox2 de chaînes:

 void __fastcall TForm1:: Button1Click (TObject * Sender)
{
ListBox2-> Articles AddStrings-> (Articles ListBox1->);
} 

Ajouter
Ajouter la chaîne S à la liste. La méthode Append est le même que sur Ajouter, sauf qu'il ne retourne pas de valeur nominale.

 Ajouter void __fastcall (const System:: AnsiString S); 

Description

Ajouter utiliser quand il n'est pas nécessaire de connaître l'indice de la chaîne après avoir-été ajoutée, ou avec des descendants de TStrings pour l'index retourné n'a pas de sens.

Par exemple, la note de service utilisé par les objets descendant TStrings utiliser un indice pour déterminer où insérer une chaîne, la chaîne ne inséré mais pas nécessairement se retrouver comme une seule chaîne dans la liste. Une partie du texte inséré peut faire partie de la chaîne précédente, et une partie rompue peut être postérieure dans une chaîne. L'index retourné par Ajouter n'a pas de sens dans ce cas.

Utilisez Ajout plutôt que d'ajouter en tant que paramètre pour une fonction nécessitant un TGetStrProc.

Ce code utilise un bouton et une zone de liste sur un formulaire. Lorsque l'utilisateur clique sur le bouton, le code ajoute une nouvelle corde à une zone de liste.

 void __fastcall TForm1:: Button1Click (TObject * Sender)
{
Articles ListBox1-> Append ("nouvelle chaîne");
} 

Attribuer
Cette méthode copie les chaînes contenues dans la liste des objets TString à un autre objet. Il écrase le contenu.

 virtuelle void __fastcall Assign (TPersistent * Source); 

Description

Utilisez Attribuer à Septembre de la valeur de l'objet d'un autre objet TStrings. Si la source est de type TStrings, la liste est en Septembre à la liste de l'objet TStrings source, et si les objets associés sont prises en charge, tous les objets associés sont copiés à partir de la source ainsi.

Source Dans le cas contraire est de type TStrings, l'héritage Attribuer Septembre donnera la liste la valeur de l'objet de qui justifie une TStrings en AssignTo IST méthode.

Cela consiste par exemple d'une note de service et de la forme avec une zone de liste. Lorsque le bouton est cliqué, le contenu du mémo sont remplis avec le contenu de la listbox.

 void __fastcall TForm1:: Button1Click (TObject * Sender)
{
Memo1-> Lines-> assign (Articles ListBox1->);
} 

BeginUpdate
TStrings Permet l'objet à suivre quand la liste des chaînes est en mutation.

 void __fastcall BeginUpdate (void); 

Description

Automatiquement BeginUpdate est convoquée par une propriété ou une méthode qui a changé la liste des chaînes. Une fois les changements terminés, le ou les appels de méthode propriété EndUpdate. Avant BeginUpdate Appel de modifier directement les chaînes dans la liste, et EndUpdate après. Lors de l'implémentation des méthodes que les propriétés ou modifier la liste des descendants de TStrings, appelez BeginUpdate avant que les changements sont faits, et EndUpdate lorsque les changements sont complets.

Il suffit de TStrings Effectue le suivi de savoir quand la liste des chaînes est en cours de modification. Certains descendants de TStrings utiliser cette information pour effectuer certaines actions, comme dire à un contrôle de repeindre, Quand Les mises à jour complète.

BeginUpdate et EndUpdate doit toujours être utilisé en conjonction avec un ... catch essayer de s'assurer qu'il est appelé EndUpdate si une exception se produit. Un bloc qui BeginUpdate Usages et EndUpdate ressemble généralement à ceci:

 void __fastcall TForm1:: Button1Click (TObject * Sender)
{
Articles ListBox1-> BeginUpdate ();
try {
ListBox1-> Items-> Clear ();
ListBox1-> Items-> Add ("Certains foo");
ListBox1-> Items-> Add ("Certaines données");
Articles ListBox1-> EndUpdate ();
}
captures (...){
ListBox1-> Items-> EndUpdate (); / / événements exécutés en cas d'exception
jeter;
}
} 

Clear
Vider la liste et les objets associés.

 void __fastcall virtuelle Clear (void) = 0; 

Description

Descendants des TStrings méthode mise en œuvre sur Effacer pour supprimer toutes les chaînes dans la liste, et libre de droits et de supprimer les références aux objets associés.

Cet exemple remplit la liste d'une liste déroulante avec l'ensemble des polices disponibles lorsque l'utilisateur descend dans la liste. La liste est régénéré chaque fois que la liste est tombé vers le bas, donc si l'application ajoute ou supprimer des polices, la zone de liste déroulante est toujours actuel.

 Form1 void __fastcall:: ComboBox1DropDown (TObject * Sender)
{
FontCombo-> Items-> BeginUpdate (), / / éviter Jusqu'à repeint fait
FontCombo-> Items-> Clear () / / vide la liste des valeurs anciennes et Stock
FontCombo-> Triés = true, / / on s'assure que les noms de police sont triés
FontCombo-> Articles = Polices d'écran->, / / ajouter la liste actuelle des polices
FontCombo-> Items-> EndUpdate (); / / peinture réactiver
} 

Supprimer
Supprime une chaîne indiquant la liste des index.

 virtuelle void __fastcall Supprimer (int index) = 0; 

Description

Descendants des TStrings œuvre Supprimer la méthode indiquée pour supprimer une chaîne dans la liste. Si un objet est associé à la chaîne, la référence à l'objet est supprimé aussi. Index donne la position de la chaîne, où 0 est la première chaîne, 1 est la deuxième chaîne, et ainsi de suite.

Cet exemple utilise une zone de liste et un bouton sur un formulaire. Lorsque le Apparaît forme, les cinq éléments dans la liste. Lorsque l'utilisateur clique sur le bouton, le deuxième point de la zone de liste est supprimé:

 void __fastcall TForm1:: Button1Click (TObject * Sender)
{
ListBox1-> Items-> Supprimer (1);
} 

EndUpdate
TStrings Permet l'objet à suivre quand à la liste des chaînes que vous avez terminé les modifications.

 void __fastcall EndUpdate (void); 

Description

Automatiquement EndUpdate est convoquée par une propriété ou une méthode qui a changé la liste des chaînes. Avant BeginUpdate Appel de modifier directement les chaînes dans la liste, et EndUpdate après. Lors de l'implémentation des méthodes que les propriétés ou modifier la liste des descendants de TStrings, appelez BeginUpdate avant que les changements sont faits, et EndUpdate lorsque les changements sont complets.

Il suffit de TStrings Effectue le suivi de savoir quand la liste des chaînes est en cours de modification. Certains descendants de TStrings utiliser cette information pour effectuer certaines actions, comme dire à un contrôle de repeindre, Quand Les mises à jour complète.

Equals
Comparez la liste des canaux sur la liste avec TStrins autres objets et renvoie true si les deux listes sont égales.

 __fastcall Equals bool (TStrings * cordes); 

Description

Equals Appel à comparer les deux listes d'objets TStrings. Equals compare uniquement les chaînes, pas de références aux objets associés. Equals retourne vrai si la liste des objets TStrings deux ont le même nombre de chaînes et les cordes de chaque liste sont identiques. Equals retourne false si les listes sont différentes dans la longueur, si elles contiennent des différentes chaînes, ou si l'ordre des chaînes dans les listes de diff deux.

Exchange
Swaps les positions de deux chaînes de la liste.

 void __fastcall virtuel Exchange (int index1, int index2); 

Description

Appel Exchange pour réorganiser les chaînes de la liste. Les cordes sont spécifiés par leurs valeurs de l'indice dans le index1 et index2 paramètres. Sont à base des indices de zéro, de sorte que la première chaîne de la liste ont un indice de 0, le second a une valeur d'index de 1, et ainsi de suite.

Ou bien si vous avez un objet associé à cordes, Exchange Changer la position de l'objet ainsi.

GetText
Attribuer un tampon de texte et le remplit avec la valeur de la propriété Text.

 __fastcall GetText virtuelle char * (void); 

Description

GetText Appel alloué dynamiquement pour obtenir un tampon de caractères contenant toutes les chaînes de la liste. chaînes sont séparées par un retour chariot et saut de ligne. L'appelant est chargé de libérer la valeur retournée.

Exemple:

 Chaîne de données;
M = GetText Memo1-> Lines-> (); / / Drop toutes les lignes séparées par un retour chariot et saut de ligne 

IndexOf
Retourne la position d'une chaîne dans la liste. Le texte doit correspondre à la ligne entière.

 __fastcall virtuelle int IndexOf (const System:: AnsiString S);

if (Memo1-> Lines-> IndexOf ("Win.ini")> -1); 

Description

Appel IndexOf pour obtenir la position de la première occurrence de la chaîne S. IndexOf renvoie l'index basée sur 0 de la chaîne. Ainsi, si S correspond à la première chaîne de la liste, renvoie IndexOf 0, si S est la deuxième chaîne, revient IndexOf 1, et ainsi de suite. Si la chaîne n'est pas dans la liste de chaînes, retourne IndexOf -1.

Note: Si la chaîne dans la liste apparaît plus de onze, IndexOf renvoie la position de la première occurrence.

Cet exemple utilise une boîte de liste de fichiers, une boîte de liste de répertoire, et une étiquette sur un formulaire. Lorsque l'utilisateur utilise la boîte de liste de répertoires pour changer de répertoire, un message apparaît et la couleur de la forme si le fichier est le fichier AUTOEXEC.BAT changements dans le nouveau répertoire. Le code est écrit dans l'événement OnChange de la boîte de liste de l'annuaire:

 void __fastcall TForm1:: DirectoryListBox1Change (TObject * Sender)
{
Répertoire FileListBox1-> = Directory DirectoryListBox1->;
if (FileListBox1-> Items-> IndexOf ("AUTOEXEC.BAT")> -1) {
Couleur = clYellow;
Label1-> Caption = "Vous êtes dans le répertoire racine!"
}
} 

IndexOfName
Retourne la position de la première chaîne de la forme nom = valeur avec le especifífico nom.

 IndexOfName __fastcall int (const System:: Nom AnsiString);

pos = Memo1-> Lines-> IndexOfName (Variable3 ") / / Retourne le numéro de ligne 

Description

Appel IndexOfName pour localiser la première occurrence d'une chaîne avec la forme nom = valeur est oû la partie du nom égal au paramètre Name. IndexOfName renvoie l'index basée sur 0 de la chaîne. Si aucune chaîne sur la liste visée a le nom, retourne IndexOfName -1.

Cordes de la forme nom = valeur sont généralement trouvés en fichiers INI. Par exemple, voici quelques cordes prises à partir d'un type fichier INI.:

Displaygrid 1 =

SnapToGrid 1 =
GridSizeX 8 =
GridSizeY 8 =

Les cordes qui forment la propriété Params d'un composant de base de données (TDatabase) ont ce format.

Le nom que l'identificateur de chaîne se trouve à gauche du signe égal (=), et la valeur actuelle du nom de l'identifiant est sur le côté droit. Il ne faut pas présenter les espaces avant ou après le signe égal.

Note: S'il ya plus d'une corde Portion avec un nom correspondant au paramètre nom, retourne IndexOfName la position de la première chaîne telle.

Suivant l'exemple fusionne les chaînes de caractères dans les chaînes de contrôle mémo dans Figurant dans la liste déroulante. Si une chaîne dans la note est de la forme nom = valeur et la también nom contenu dans la zone de liste, la valeur des IST sera remplacé par la liste de la boîte de valeur.

 void __fastcall TForm1:: Button1Click (TObject * Sender)
{
P int, DI;
AnsiString S;
for (int i = 0; i <= ListBox1-> Articles-> Count - 1; i + +) {
S = ListBox1-> Strings articles-> [i];
P = S. Pos ("=");
if (P> 1) {
DI = Memo1-> Lines-> IndexOfName (AnsiString (SubString S. (1, P - 1)));
if (ID> -1)
Memo1-> Strings Lines-> [DI] = S;
}
}
} 

IndexOfObject
Retourne l'index de la première chaîne de la liste associée à un objet donné.

IndexOfObject __fastcall int (System:: TObject AObject *)

Description

Appel IndexOfObject pour localiser la première chaîne de la liste associée à l'AObject objet. Précisez l'objet que vous souhaitez localiser que la valeur du paramètre AObject. IndexOfObject renvoie l'index basée sur 0 de la chaîne et de l'objet. Si l'objet n'est pas associé à l'une des chaînes, retourne IndexOfObject -1.

Le code suivant est MyObject Détermine si le premier objet de MyStringList.

 void __fastcall TForm1:: Button1Click (TObject * Sender)
{
if (ListBox1-> Items-> IndexOfObject (MyObject) == 0)
ShowMessage ("foo");
} 

Insérer
Insérer une chaîne à une position spécifique.

 virtuelle void __fastcall Insert (int index, const System:: AnsiString S) = 0;
Memo1-> Lines-> Insérer (2, "Bonjour"); 

Description

Descendants des TStrings Mettre en place un méthode Insert pour ajouter la chaîne S à la liste à la position spécifiée par Index. Si l'indice est égal à 0, la chaîne est inséré au début de la liste. Si l'indice est de 1, la chaîne est placé dans la deuxième position de la liste, et ainsi de suite.

Toutes les méthodes ajouter des chaînes à la liste, utilisez la méthode Insert pour ajouter la chaîne.

Si la chaîne a un objet associé, utilisez la méthode InsertObject lieu.

InsertObject
Insère une chaîne à une position spécifique dans la liste, et associe ce avec un objet.

 InsertObject void __fastcall (int index, const System:: AnsiString S, System:: TObject * AObject) 

Description

Appel InsertObject pour insérer la chaîne S dans la liste à la position identifiée par index, et l'associer à la AObject objet. Si l'indice est égal à 0, la chaîne est inséré au début de la liste. Si l'indice est de 1, la chaîne est placé dans la deuxième position de la liste, et ainsi de suite.

Le code suivant insère les composants de Form1 dans la première position de la liste des Memo1 Lines.

 void __fastcall TForm1:: Button1Click (TObject * Sender)
{
for (int i = 0; i <Form1-> ComponentCount-1, i + +)
Memo1-> Lines-> InsertObject (0, Form1-> Components [i] -> Nom, this);
} 

LoadFromFile

Remplissez la liste des lignes d'un fichier texte.

 virtuelle void __fastcall LoadFromFile (const System:: AnsiString FileName); 

Description

Appel LoadFromFile pour remplir la liste de l'objet TStrings à partir du fichier spécifié par filename. Chaque ligne dans le fichier, comme indiqué par retour chariot saut de ligne ou de caractères, est annexée comme une chaîne dans la liste.

Cet exemple utilise une note de service et un bouton sur un formulaire. Lorsque le bouton est cliqué sur le mémo est rempli avec le contenu du fichier.

 void __fastcall TForm1:: Button1Click (TObject * Sender)
{
Lignes Memo1-> LoadFromFile (Unit1.cpp ");
} 

LoadFromStream
Remplissez la liste de lignes de texte lu à partir de la console.

 virtuelle void __fastcall LoadFromStream (TStream * Stream); 

Description

Appel LoadFromStream pour remplir la liste de l'objet TStrings à partir du flux spécifié par Stream. Le texte lu à partir du flux est analysé chaînes en Séparés par un retour chariot ou saut de ligne caractères. Ainsi, LoadFromStream lit la valeur de la propriété Text.

Si le flux est un fichier de flux, LoadFromStream fait la même chose que LoadFromFile, sauf l'application doit créer et de détruire le flux de fichier.

Cet exemple utilise une note de service et un bouton sur un formulaire. Lorsque le bouton est cliqué sur le mémo est rempli avec le contenu du fichier et ensuite à un nouveau fichier enregistré.

 void __fastcall TForm1:: Button1Click (TObject * Sender)
{
Memo1-> Lines-> LoadFromStream (& TFileStream (Unit1.cpp "fmOpenRead));
Memo1-> Lines-> SaveToStream (& TFileStream (Unit2.cpp "fmOpenWrite));
} 

Déplacez
Changer la position d'une chaîne dans la liste.

 void __fastcall virtuelle Move (int CurIndex, int NewIndex)
Memo1-> Lines-> Déplacer (2,4), / / Déplacer la chaîne de la position 2 à 4 

Description

Utilisez Déplacer pour déplacer la chaîne à la position CurIndex-il si celui occupé la position NewIndex. Les positions sont spécifiées comme base d'index de 0. Par exemple, la ligne suivante de code déplace la chaîne dans la première position à la dernière position.

 MyStringsObject-> Move (0, comte MyStringsObject-> - 1); 

Si la chaîne a un objet associé, l'objet associé à la chaîne dans Remains IST nouvelle position.

Cet exemple utilise une zone de liste et un bouton sur un formulaire. La zone de liste contient des éléments Lorsque le formulaire s'affiche. Lorsque l'utilisateur clique sur le bouton, le cinquième élément de la zone de liste est déplacé vers le haut de la zone de liste:

 void __fastcall TForm1:: Button1Click (TObject * Sender)
{
Articles ListBox1-> Move (4,0);
}
//------------------------------------------------ ---------------------------
void __fastcall TForm1:: FormCreate (TObject * Sender)
{
for (int i = 0; i <10; i + +)
Articles ListBox1-> Append ("nouvelle chaîne" + AnsiString (i));
} 

SaveToFile
Enregistrer les chaînes dans la liste des fichiers.

 virtuelle void __fastcall SaveToFile (const System:: AnsiString FileName); 

Description

Appel pour sauver la SaveToFile chaînes de la liste dans le fichier spécifié par filename. Chaque chaîne dans la liste est écrite sur une ligne distincte dans le fichier.

Cet exemple utilise une note de service et un bouton sur un formulaire. Lorsque le bouton est cliqué sur le mémo est rempli avec le contenu du fichier et ensuite à un nouveau fichier enregistré.

 void __fastcall TForm1:: Button1Click (TObject * Sender)
{
Lignes Memo1-> LoadFromFile (Unit1.cpp ");
Lignes Memo1-> SaveToFile (Unit2.cpp ");
} 

SaveToStream
Entrez la valeur de propriété du texte dans un objet Stream.

 virtuelle void __fastcall SaveToStream (TStream * Stream); 

Description

Appel pour sauver la SaveToStream chaînes dans la liste pour le flux spécifié par le paramètre Stream. SaveToStream écrit les chaînes délimitées par des retour chariot, saut de ligne paires. Si le flux est un fichier de flux, SaveToStream fait la même chose que SaveToFile, sauf l'application doit créer et de détruire le flux de fichier.

Cet exemple utilise une note de service et un bouton sur un formulaire. Lorsque le bouton est cliqué sur le mémo est rempli avec le contenu du fichier et ensuite à un nouveau fichier enregistré.

 void __fastcall TForm1:: Button1Click (TObject * Sender)
{
Memo1-> Lines-> LoadFromStream (& TFileStream (Unit1.cpp "fmOpenRead));
Memo1-> Lines-> SaveToStream (& TFileStream (Unit2.cpp "fmOpenWrite));
} 

SetText
Début de la liste avec le contenu du texte spécifié.

 __fastcall SetText virtual void (Texte char *); 

Description

Appel SetText de remplacer la liste avec les chaînes spécifiées par le paramètre Text. SetText ajoute les chaînes une à la fois à la liste, en utilisant les retours chariot ou saut de ligne comme des caractères délimiteurs dans le texte indiquant à quel moment pour ajouter une nouvelle chaîne.

TStrings
Constructeur. Crée une nouvelle TStrings.

 __fastcall TStrings (void): Cours:: TPersistent () {} 

Description

Ne pas créer des instances de TStrings. Méthodes TStrings S'appuyer sur des méthodes virtuelles pures Cela doit être remplacée dans les objets descendants.

Loading
copyright © 2007-2024  www.alciro.org  All rights reserved.         
Share |