Bonjour,

Je travaille avec Lazarus sur un projet perso. Je souhaite remplir un tableau bidemensionnel avec des données récupérées depuis un objet TDBF.
Voici ma procédure :
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
procedure Tf_menu.btn_searchClick(Sender: TObject);
var
	a_id_dem: Array of Array[1..2] of integer;
	nb_dem:Integer;
	i:Integer;
	filtre_dem:String;
begin
	if Length(search.Text) > 2 then
	begin
		nb_dem := 1;
		grid_demande.DataSource.DataSet.First;
 
		while not grid_demande.DataSource.DataSet.EOF do
		begin
			if pos( uppercase( search.Text ), uppercase( grid_demande.DataSource.DataSet.FieldByName('sujet').AsString ) ) > 0  then
			begin
				a_id_dem[nb_dem][1] := grid_demande.DataSource.DataSet.FieldByName('annee').AsInteger;
				a_id_dem[nb_dem][2] := grid_demande.DataSource.DataSet.FieldByName('id').AsInteger;
				nb_dem := nb_dem + 1;
			end;
 
			if pos( uppercase( search.Text ), uppercase( grid_demande.DataSource.DataSet.FieldByName('descriptio').AsString ) ) > 0  then
			begin
				a_id_dem[nb_dem][1] := grid_demande.DataSource.DataSet.FieldByName('annee').AsInteger;
				a_id_dem[nb_dem][2] := grid_demande.DataSource.DataSet.FieldByName('id').AsInteger;
				nb_dem := nb_dem + 1;
			end;
 
			grid_demande.DataSource.DataSet.Next;
		end;
 
		filtre_dem := '';
 
		For i := 1 to nb_dem do
		begin
			filtre_dem :=  filtre_dem + '(annee='+String(a_id_dem[i,1])+' and id='+String(a_id_dem[i,1])+') or ';
		end;
		grid_demande.DataSource.DataSet.Filtered := false;
		grid_demande.DataSource.DataSet.Filter := filtre_dem;
		grid_demande.DataSource.DataSet.Filtered := true;
	end
	else
		showmessage('Veuillez saisir un texte à chercher (3 caractères minimum)');
end;
Le programme se compile sans erreur, mais à l'exécution, si je saisis du texte dans le composant "search" et que je clique sur le bouton "btn_search" le code parcours bien les éléments de mon TDBF (DataSet), dès qu'il rentre dans une condition if, j'ai une erreur :
Nom : laz_error.jpg
Affichages : 212
Taille : 25,8 Ko
L'erreur point sur la ligne où j'affecte la valeur au tableau ... mais sans plus de détail je n'arrive pas à voir d'où vient mon erreur ...

Une idée ?

D'avance merci