Delphi
Borland

tList
tMemo
tColor

 

 

TColor

Les constantes qui renvoient aux couleurs du système les plus approchantes sont clAqua, clBlack, clBlue, clDkGray, clFuchsia, clGray, clGreen, clLime, clLtGray, clMaroon, clNavy, clOlive, clPurple, clRed, clSilver, clTeal, clWhite, et clYellow.

Les constantes qui renvoient aux couleurs des éléments écran du système sont clActiveBorder, clActiveCaption, clAppWorkSpace, clBackground, clBtnFace, clBtnHighlight, clBtnShadow, clBtnText, clCaptionText, clGrayText, clHighlight, clHighlightText, clInactiveBorder, clInactiveCaption, clInactiveCaptionText, clMenu, clMenuText, clScrollBar, clWindow, clWindowFrame et clWindowText.

 

TlisteBox et Tmemo

Clear

Permet d'effacer toute la liste.

ListBox1.clear

Multiselect

Autorise ou non la multi sélection dans la liste.

form3.listbox1.multiselect:=true

Items

Voici un certain nombre de méthodes.

Question

Comment récupérer dans une zone d'édition, l'item sélectionné d'une listBox ?

Réponse

Edit1.text:=ListBox.Items[listBox.ItemIndex]

Nombre total d'items

de 0 à ListBox1.Items.Count-1

Add

ListBox1.Items.add('TOTO');

for i:=1 to g_maxA do form3.listbox1.items.add(g_appreciation[i]);

Delete

Permet d'effacer l'élément de rang i de la liste. La liste commence au rang 0. (Voir exemple ci-dessous)

Insert

Permet d'insérer au rang i de la liste (voir exemple ci-dessous).

Move

Permet de déplacer deux items. Voir les propriétés de TStrings.

Selected[i]

Permet de savoir si un item est sélectionné ou non.

for i:=0 to g_maxE-1 do

if ListBox1.Selected[i] then begin

Assignfile(f,g_NomFicEtud);

reset(f);

seek(f,i+1);

read(f,enreg);

Form1.Edit1.Text:=enreg.N1;

Form1.Edit2.Text:=Enreg.N2;

ListBox1.Items.Delete(i);

ListBox1.Items.Insert(i,'* '+enreg.N1+' '+enreg.N2);

Form1.Edit3.Text:=f_nomfic(g_NomficEtud);

closefile(f);

end;

end;

ItemIndex

exemple :

if CB.ItemIndex>-1 then CB.Items.Delete(CB.ItemIndex);

Strings[i]

if Form4.ListBox1.Items.strings[j] = g_Examen[g_nec].N1 + ' ' + g_Examen[g_nec].N2 then Form4.listBox1.Items.Strings[j] := '* ' + g_Examen[g_nec].N1+' '+g_Examen[g_nec].N2;

La méthode Exchange

S'applique à TList, TStringList, TStrings (objets)

Déclaration

procedure Exchange(Index1, Index2: Integer);

Description

La méthode Exchange permute la position de deux éléments dans la liste d'un objet liste, d'une liste de chaînes, d'une chaîne, ou d'un objet liste de chaînes. Les éléments sont spécifiés par leur valeur d'indice dans les paramètres Index1 et Index2. Comme les valeurs d'indice partent de 0, le premier élément dans la liste a une valeur d'indice 0, le deuxième élément a une valeur d'indice 1, etc.

Si une chaîne dans un objet chaîne ou liste de chaînes dispose d'un objet associé, Exchange permute à la fois la position des chaînes et celle des objets.

Exemple

Cet exemple utilise une boîte liste contenant plusieurs chaînes comme valeur de la propriété Items, ainsi qu'un bouton. Lorsque l'utilisateur clique sur celui-ci, le deuxième et le troisième élément de la boîte liste sont permutés.

 

procedure TForm1.Button1Click(Sender: TObject);

begin

ListBox1.Items.Exchange(1, 2);

end;

LoadFromFile

Cette propriété est une propriété de Tstrings donc utilisable avec Items

exemple : LB.Items.LoadFromFile('Machin.txt')

ListBox et Memo. Chargement et focalisation

 

 

Tmemo

Lecture d'un fichier annexe pour écrire dans un mémo.

Nom:='TOTO.TXT';

Memo1.Lines.LoadFromFile(Nom.ext);

ou encore

OpenDialog1.Execute;

Memo1.Lines.LoadFromFile(OpenDialog1.filename);

Sauvegarde et lecture du contenu d'un mémo

SaveToFile(Nom.ext)

Exemple 1

Procedure Machin;

var FileName:string;

begin

FileName:='C:\Windows\win.ini';

with Memo1.lines do

begin

LoadFormFile(FileName);

SaveToFile(ChangeFileExt(FileName,'.BAK'))

..end;

end;

exemple 2

if FileExists(NomFic)

then with (ActiveMDIChild as TFormfille) do begin

MemoVar.Clear;

MemoVar.Lines.LoadFromFile(nomfic);

end

else showmessage('Fichier des variables non trouvés');

Attention Problème.

Après un LoadFromFile, vous constatez que vos lignes sont découpées n'importe où, pas nécessairement sur 0D.0A. en hexa. C'est que votre représentation de la zone mémo est trop petite. Il faut l'agrandir même si elle est cachée (comme dans EditAlgo)

Memo.text

Cette instruction est utilisable. Chaîne de 255 caractères contenant les sauts de lignes sous la forme #$D#$A. Voir la procédure pCompresse de l'unité uImprime que j'ai écrite à ce propos.

Memo avec Lines

Soit MtexteP un champ memo.

MtexteP.clear;

for k:=1 to max do MtexteP.Lines.Add(tc[k]);

On peut aussi utiliser le Count (i de 0 à count-1).

On peut utiliser aussi la commande MEMO.Lines.Append(S)

Add est une fonction qui renvoie le numéro i de la lignes Lines[i].

Sélectionner du texte dans un mémo

SelPos est du type Integer.

SelPos := Pos(FindText, Memo1.Lines.Text);

ou encore

SelPos := Pos(FindText, Memo1.Text);

if SelPos > 0 then begin

Memo1.SetFocus

Memo1.SelStart := SelPos - 1;

Memo1.SelLength := Length(FindText);

end

Le texte peut ne pas être trouvé si passage à la ligne à cause du #$D#$A qu'il peut contenir en son milieu.

Retour haut de page

 

 

TStringGrid

Question

Comment écrire directement dans un StringGrid ?

Réponse

Dans la propriété Options (Inspecteur d'objet), activer à true la sous propriété d'ensemble goEditing..

Exemple 1

procedure TForm1.Button1Click(Sender: TObject);

var

I, J: Integer;

begin

with StringGrid1 do

for I := 0 to ColCount - 1 do

for J:= 0 to RowCount - 1 do

Cells[I,J] := 'Delphi';

end;

Le code suivant sélectionne le rectangle contenant les lignes 1 et 2, et les colonnes 3 et 4 :

StringGrid1.Selection := Rect(3,1,2,4);

Le code suivant enregistre un objet TBitmap (MyBitmap) dans la cellule de la ligne 3, colonne 10 de StringGrid1.

StringGrid1.Objects[10, 3] := MyBitmap;

Exemple 2

Le code suivant sélectionne le rectangle contenant les lignes 1 et 2, et les colonnes 3 et 4 :

StringGrid1.Selection := Rect(3,1,2,4);
 

Le code suivant enregistre un objet TBitmap (MyBitmap) dans la cellule de la ligne 3, colonne 10 de StringGrid1.

StringGrid1.Objects[10, 3] := MyBitmap;

 

Retour haut de page

 

 

TScrollBar

Exemple

procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;

var ScrollPos: Integer);

begin

if ScrollCode = scPageUp then ScrollPos := ScrollPos - 1

else if ScrollCode = scPageDown then ScrollPos := ScrollPos + 10;

Label1.Caption := IntToStr(ScrollPos);

end;

ScrollBar1.SmallChange := 10;

ScrollBar1.LargeChange := 100;

ScrollBar1.Min := StrToInt(Edit1.Text);

ScrollBar1.Max := ScrollBar1.Min + 1000;

ScrollBar1.Position := 750;

 

Retour haut de page

 

 

TTable

Le code suivant affiche une boîte message avec les noms de tous les champs de la table.

procedure TForm1.Button2Click(Sender: TObject);

var

  i: Integer;

  Info: String;

 

begin

  Info := 'Les champs sont :'#13#10#13#10;

  for i := 0 to Table1.FieldCount - 1 do

  Info := Info + Table1.Fields[i].FieldName + #13#10;

  ShowMessage(Info);

end;

 

Retour haut de page

 

 

Questions - Réponses

Question

Comment focaliser un élément d'une ListBox?

Réponse

Utiliser ItemIndex.

Question

Comment charger un fichier text dans une ListBox depuis un mémo (de même largeur)?

Réponse

Memo.clear;

Memo.visible:=false;

LB.Clear;

Memo.Lines.LoadFromFile('Exercice1.txt');

for i:=0 to Memo.Lines.Count-1 do LB.Items.Strings[i]:=Memo.Lines.Strings[i];

LB.ItemIndex:=r.ins;

ListBox et Sélection

Question

Comment avoir la liste des éléments sélectionnés dans une liste LB ?

Réponse

LB.SelCount

Question

Comment savoir si un élément est sélectionné ?

Réponse

if LBD.Selected[i] then …

 

 



Retour Haut de page