Bonjour,
Je voudrais, avec D7 PERSO, aprés avoir sélectionné une ligne en double cliquant sur cette ligne pouvoir déplacer la sélection d'un index.
C'est le déplacement de ma sélection que je n'arrive pas à faire.
Merci d'avance.
JER.
Bonjour,
Je voudrais, avec D7 PERSO, aprés avoir sélectionné une ligne en double cliquant sur cette ligne pouvoir déplacer la sélection d'un index.
C'est le déplacement de ma sélection que je n'arrive pas à faire.
Merci d'avance.
JER.
Si je comprends bien tu veux décaler de x lignes en haut ou en bas la ligne que tu as dbl cliqué.
Ca je crois qu'il faut coder ce truc mon gars.
une piste
peut être que cela t'aiderais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Strgrid.RowCount := StrGrid.RowCount +x; for i:= StrGrid.rowCount - x downto 0 do begin for j:= 0 to strGrid.ColCount -1 do begin StrGrid.Cells[j,i+x] := StrGrid.Cells[j,i]; StrGrid.Cells[j,i] := ''; end; end;
A+
Non ce n'est pas cela, encore une fois je me suis mal exprimé. Pardon.
Décaler une ligne de x ligne vers le haut ou vers le bas je sais faire, mais dans mon code je prévois de décaller une ligne d'un index si celle-ci est selectionnée.
Exemple:
En fait avec cette action je voudrais que la ligne que je selectionne au départ reste selectionnée aprés le déplacement alors qu'avec ce code ma selection reste toujours au même emplacement de départ.
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 procedure TFormQual.SpinButton2DownClick(Sender: TObject); var s:string; begin if (strgrid.Selection.Left>=strgrid.FixedCols) and (strgrid.Selection.Right>(strgrid.ColCount-1)) then begin with strgrid do begin // Permute Index1 et Index2 if row < rowcount-1 then begin S := Rows[row].Text; Rows[row].Text := Rows[row+1].Text; Rows[row+1].Text := S; end; end; end;
Meci d'avance.
Jer.
Voila, Voila... un peu de patience tout de même
Il suffit de mettre à jour la propriété Selection après le traitement :
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 procedure TForm1.Button1Click(Sender: TObject); Var s:String; Sel:TGridRect; begin With StringGrid1 Do if (Selection.Left>=FixedCols) and (Selection.Right>(ColCount-1)) then begin // Permute Index1 et Index2 if row < rowcount-1 then begin S := Rows[row].Text; Rows[row].Text := Rows[row+1].Text; Rows[row+1].Text := S; end; Sel:=Selection; Inc(Sel.Top); Inc(Sel.Bottom); Selection:=Sel; end; end;
Merci beaucoup.
Tu es toujours là pour trouver une bonne solution.
A+
Jer.
Partager