Błąd w delphi[6] ?

0

Witam.

Panowie spotkaliście się z takim problemem :
Mam komponent tabcontrol. Wszystko działa poprawnie, przy zakończeniu
aplikacji również nie ma błędu. Natomiast gdy dodam do tabcontrol inrukcję
"onchange" (dosłownie jedna linijka zwracająca nazwę zakładki) przy wyjsciu
powstaje błąd (...) raised exception(...), <ort>po prostu</ort> zgłupiałem, gdzie tu
błąd ???

oto kod :

procedure TForm2.zakladkizmien(Sender: TObject);
begin
if (zakladki.TabIndex-1) < 0 then
begin
zakladki.TabIndex := 0;
memo1.text := '3';
end
else memo1.text := inttostr(zakladki.TabIndex-1);
end;

procedura zakladkizmien uzywana jest przez "onchange" - poprastu kombinowałem z innymi nazwami. Spotkałem się również z tym, że przy dodawaniu komponentów o tej samej nazwie np 5 buttonów - również przy zamykaniu aplikacji - (...) raised exception(...)"
Proszę pomocy, już nie wime co zrobić z tym tabeditem....

Pozdrawiam.

0

U mnie wszystko działa poprawnie. Spróbuj utowrzyć sobie nowy projekt zawierający ten kod i zobacz czy będzie działało. Jeżeli tak - to błąd jest powodowany przez coś innego (chociaż moze miec to związek ze zdarzeniem OnChange).

0

Sęk w tym że aplikacja ma kilka tysięcy lini.....A to jest końcowa część (która nie wiedzieć czemu nie działa) jest jedną z naj<ort>prostrzych</ort> -lecz jak widać najbardziej upierdliwych. Przeniesienie do innego projektu nie jest zatem możliwe. W innym projekcie sam działa. Co jednak może być nie tak w dodaniu "onchange" w którym na próbę przypisałem zmiennej wartość dokładnie było to a := 1; , gdzie a zmienna typu byte. i nic poza tym a błąd występuje nadal.

Pozdrawiam

0

Tym bardziej trudno jest cokolwiek wymyślić komuś kto nie ma dostepu do kodu... ;) . Ale proponuje pobawić się debuggerem, zobaczyć pod adres który wywołuje błąd, może dzięki temu wytropisz źródło problemów.

0

Coż problem pojawia się dopiera w momencie wyjscia z programu. No, jeżeli było by to podczas działania to można by sobie debugerem przelecieć, ale w takim przypadku wyświetla się tylko cpu, ale tam tylko hex a tego to już się czytać nie da (niestety)

0

No własnie o CPU mi chodziło :) . Specjalistą od assemblera nie jestem ale zawsze cos z tego okna da się odczytać - np. w jakiej procedurze występuje błąd - przewiń sobie zdeasemblowany kod do góry jeżeli nie widzisz od razu pogrubionej linijki z orginalnym kodem delphi. Albo zapodaj ten programik to może uda się cos wymyślić...

0

Przepraszam ale nie moge dołączyć kodu. Poza tym aby go uruchomić potrzeba by było połączenie z oraclem... Za to dołączam zrzut z okna debugera, możesz miw 2 zdaniach wytłumaczyć gdzie tu szukać, bo przyznaje debagoałem działanie programu ale linia po linii, a w hexie nie grzebałem nigdy ( może czas się nauczyć )

oto zrzut z debugera czy coś z tego da sie odczytać ?

// obrazek wyrzuciłem, ze względu na wulgaryzm - Q

0

Uffff, znalazlem. Oczywiscie metodą prób i błędów. Więc dla potomności.
W komponencie tabcontrol miałem na sztyno ustawione 4 zakładki, czyliw w polu tabs Tstrings wpisane były 4 pola, których obiekty prawdopodbnie nie były utworzone. Onchange prawdopodbnie odwoływał się do nieistniejących obiektów. Po
usunięciu tstrings i utworzeniu zakładek w oncreate -wszystko działa. mimo wszystko dziękuję za pomoc.

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1