Bonjour,
Alors voila ... ca fait des années que je n'ai pas utilisé les tableaux et la , je bloque sur un problème qui je suis sur est tout bête ...
un service Web déclare une classe booking de la façon suivante (importation WSDL) :
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 Booking = class(TRemotable) private Fdate_beg: WideString; Fdate_end: WideString; Fid_booking: Integer; Fid_cnc: String_Array; Fversions: Int_Array; Fvisa: WideString; published property date_beg: WideString read Fdate_beg write Fdate_beg; property date_end: WideString read Fdate_end write Fdate_end; property id_booking: Integer read Fid_booking write Fid_booking; property id_cnc: String_Array read Fid_cnc write Fid_cnc; property versions: Int_Array read Fversions write Fversions; property visa: WideString read Fvisa write Fvisa; end; Booking_Array = array of Booking; String_Array = array of WideString; Int_Array = array of Integer;
Je dois passer à une fonction declare_booking un tableau de booking de la classe booking_array
Je fais donc ma procedure
Bêtement je me dis que mon tableau n'est pas initialisé, et que lors de la première affectation ca plante , mais je ne comprends pas pourquoi !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 procedure xxx; var booking_list : booking_array; begin //j'initialise mon tableau Setlength(booking_list,length(booking_list) + 1 ); // je tente de remplir le tableau booking_list[high(booking_list].date_beg:='01/01/2000'; // exemple // ET BADABOUM sur la ligne précédente DELPHI m'insulte "Violation d'accès à l'adresse XXXXX" la trace me dit bien que length(booking_list)=1 et high(booking_list)=0 .... end;
Les tutoriaux et forums que j'ai pu consulter ne m'ont pas permis de trouver le pourquoi de la chose ...
Si quelqu'un peut m'éclairer ...
MErci
Partager