Skoro wiesz lepiej oraz lepiej potrafisz pisać kod i go formatować to po co zadajesz pytania na forum?
A co nazwa zmiennej ma Ci mówić?
Ma mówić o tym, jakie dane w sobie zawiera i czym te dane są;
Jaka różnica w działaniu będzie jeśli nazwę zmienne zamiast xb1, xb2 na przykład ostatni_punkt_pracy i przedostatni_punkt_pracy?
A jaka jest różnica pomiędzy nazwaniem zmiennej DefaultFormatSettings a ssdh22
? Hmm?
To że ktoś pisze inaczej niż Ty i nie nazywa zmiennych pełnymi nazwami, to nie znaczy że kod trzeba napisać od nowa.
Ten kod wygląda potwornie i jest niezgodny z jakimikolwiek wytycznymi dotyczącymi pisania czytelnego kodu w Delphi (np. z tym - Object Pascal Style Guide); Im bardziej zasyfisz kod, tym trudniej będzie go analizować, więc i trudniej będzie rozwiązać Twój problem; A to Twój problem, nie nasz, więc powinieneś zwiększać szanse na rozwiązanie go przez kogoś, kto tego kodu nie pisał, a nie na odwrót;
Poza tragiczną czytelnością, kod ten jest stanowczo przekombinowany, o czym napisałem na końcu posta;
Nawet nie zerknąłeś o co w tym chodzi, tylko przyczepiłeś się o nazwy zmiennych itp.
Nie zerknąłem? A skąd wiedziałem, że zmienna n
otrzymuje długość zmiennej k
, która to nie wiadomo jakiego jest typu i jakie dane zawiera? Hmm?
a ważne są tylko 2 linijki: (wszystko z xb można usunąć, gdyż dodałem to szukając gdzie program wywala się).
Skoro ważne są tylko dwie linijki, to po co wstawiłeś ich dziesięć?
Według mnie po tej linii n powinien wskazywać istniejący element tabeli lub (warunek if) stworzyć nowy i go wskazać, jednak czasem ma wartość -1, i nie wiem dlaczego taka sytuacja powstaje.
Według mnie brak Ci podstawowej znajomości VCL i jakichkolwiek chęci do samodzielnego rozwiązania problemu; Wystarczyło w pustej aplikacji okienkowej postawić ComboBox
i sprawdzić co zawiera jego ItemIndex
w przypadku gdy wartość wpisana jest ręcznie oraz gdy wartość została wybrana z listy; To wystarczyło, aby dojść do poniższego wniosku:
if ComboBox1.ItemIndex = -1 then
// wartość wpisana ręcznie
else
// wartość wybrana z rozwijalnej listy
Następnym razem zastanów się nad swoim postępowaniem i nad tym jak pisać czytelny kod, zamiast miotać się o to, że ktoś zwrócił Ci uwagę - a uwaga została zwrócona jak najbardziej słusznie, co inni użytkownicy pracujący z tym językiem z całą pewnością mogą potwierdzić.