Fonction pour Trier un StringGrid
Salut à tous,
Voici un petit bout de code permettant de Trier un StringGrid sans passer par un listbox.
Code:
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
| void __fastcall TForm1::Trier(void)
{
int idxd;
int idxa;
char NoSwap = false;
AnsiString SWAP_AR_REF;
AnsiString SWAP_DL_DESIGN;
AnsiString SWAP_DATE;
AnsiString SWAP_QTE;
AnsiString SWAP_CLIENT;
AnsiString SWAP_VALORISE;
AnsiString SWAP_PRIXUNIT;
AnsiString SWAP_PRIXTTC;
AnsiString SWAP_NUM;
AnsiString SWAP_DEPOT;
AnsiString SWAP_ORDRE;
AnsiString SWAP_OK;
for (idxd=1;idxd<StringGrid2->RowCount-1;idxd++)
{
NoSwap = 1;
for (idxa=StringGrid2->RowCount-1;idxa>1;idxa--)
{
if (StringGrid2->Cells[1][idxa-1] > StringGrid2->Cells[1][idxa])
{
// sauve les donnée de l'index inferieur...
SWAP_AR_REF = StringGrid2->Cells[1][idxa-1];
SWAP_DL_DESIGN = StringGrid2->Cells[2][idxa-1];
SWAP_DATE = StringGrid2->Cells[3][idxa-1];
SWAP_QTE = StringGrid2->Cells[4][idxa-1];
SWAP_CLIENT = StringGrid2->Cells[5][idxa-1];
SWAP_VALORISE = StringGrid2->Cells[6][idxa-1];
SWAP_PRIXUNIT = StringGrid2->Cells[7][idxa-1];
SWAP_PRIXTTC = StringGrid2->Cells[8][idxa-1];
SWAP_NUM = StringGrid2->Cells[9][idxa-1];
SWAP_DEPOT = StringGrid2->Cells[10][idxa-1];
SWAP_ORDRE = StringGrid2->Cells[11][idxa-1];
SWAP_OK = StringGrid2->Cells[12][idxa-1];
// transfere les données de l'index supperieur->inferieur
StringGrid2->Cells[1][idxa-1] = StringGrid2->Cells[1][idxa];
StringGrid2->Cells[2][idxa-1] = StringGrid2->Cells[2][idxa];
StringGrid2->Cells[3][idxa-1] = StringGrid2->Cells[3][idxa];
StringGrid2->Cells[4][idxa-1] = StringGrid2->Cells[4][idxa];
StringGrid2->Cells[5][idxa-1] = StringGrid2->Cells[5][idxa];
StringGrid2->Cells[6][idxa-1] = StringGrid2->Cells[6][idxa];
StringGrid2->Cells[7][idxa-1] = StringGrid2->Cells[7][idxa];
StringGrid2->Cells[8][idxa-1] = StringGrid2->Cells[8][idxa];
StringGrid2->Cells[9][idxa-1] = StringGrid2->Cells[9][idxa];
StringGrid2->Cells[10][idxa-1] = StringGrid2->Cells[10][idxa];
StringGrid2->Cells[11][idxa-1] = StringGrid2->Cells[11][idxa];
StringGrid2->Cells[12][idxa-1] = StringGrid2->Cells[12][idxa];
// restore les donnee sauvée dans l'index supperieur
StringGrid2->Cells[1][idxa] = SWAP_AR_REF;
StringGrid2->Cells[2][idxa] = SWAP_DL_DESIGN;
StringGrid2->Cells[3][idxa] = SWAP_DATE;
StringGrid2->Cells[4][idxa] = SWAP_QTE;
StringGrid2->Cells[5][idxa] = SWAP_CLIENT;
StringGrid2->Cells[6][idxa] = SWAP_VALORISE;
StringGrid2->Cells[7][idxa] = SWAP_PRIXUNIT;
StringGrid2->Cells[8][idxa] = SWAP_PRIXTTC;
StringGrid2->Cells[9][idxa] = SWAP_NUM;
StringGrid2->Cells[10][idxa] = SWAP_DEPOT;
StringGrid2->Cells[11][idxa] = SWAP_ORDRE;
StringGrid2->Cells[12][idxa] = SWAP_OK;
NoSwap = 0;
}
}
if (NoSwap == 1)
{
break;
}
}
} |
Ce code vous permet de trier un StringGrid, mettez vos propres valeur StringGrid et rajouter des colonnes si vous en avez besoins.
Bon Code à tous !
Knar