Zawsze jeśli chcę nadać wartość którejś z części tabeli, to wyskakuje "access violation</I>. Podam przykład:
var tablica : array of HWND;
Edit : HWND;
begin
Edit := CreateWindow(parametry);
tablica[0] := Edit;
end;
Zawsze jeśli chcę nadać wartość którejś z części tabeli, to wyskakuje "access violation</I>. Podam przykład:
var tablica : array of HWND;
Edit : HWND;
begin
Edit := CreateWindow(parametry);
tablica[0] := Edit;
end;
Bosh!!!
Tablica dynamiczna jaką stworzyłeś ma długość 0. Uzyj SetLength(tablica, dlugosc) by ustawić żądaną długość. Ja bym też unikał nazywania zmiennej typy HWND 'Edit', żeby nie było konfuzji* z kontrolką edycyjną.
*konfuzji czytającego człowieka, nie kompilatora
W zasadzie kolega pq udzielił już odpowiedzi, ja tylko wrzucę mały kodzik:
var
tablica: array of HWND;
hEdit: HWND; // nazwa Edit jest nieco myląca
begin
hEdit := CreateWindow(<i>parametry</i>);
// zwiększenie rozmiaru tablicy dynamicznej tablica o 1
SetLength(tablica, Length(tablica) + 1);
// zapisanie w ostatnim elemencie tablicy tablica wartości hEdit
tablica[Length(tablica) - 1] := hEdit;
end;
A jeśli bawimy sie w nieuzywanie jakichkolwiek funkcji to:
tab[cardinal(pointer(cardinal(tab)-4)^)-1]
samo :
cardinal(pointer(cardinal(tab)-4)^)
jest rownowazne z length(tab)
// ale tylko dla tablic dynamicznych lub ansi/widestringów
//flabra nie strasz młodzieży :-) pq
// No co? Przeciez to normalne elementy języka :> I podstawowa powinność programisty: poznać budowe struktur danych :d
Wcześniej nie używałem ich ;) teraz będę wiedział na przyszłość.. :>
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.