Wątek przeniesiony 2014-04-05 14:14 z Delphi i Pascal przez olesio.

Lazarus: relacje miedzy formatkami (raised exception clas 'external: sigsegv)

0

Witam.
Czy będzie ktoś wstanie trochę mi to rozjaśnić?
Sytuacja wygląda następująco: na pierwszej formatce próbuję przypisać nową wartość elementowi drugiej formatki.
W sekcji uses pierwszej formatki jest dodana ta druga, niestety po wywołaniu np:

form2.edit1.text:='hello';

wyrzuca błąd

Project project1 raised exception class 'External: SIGSEGV'.

Ręce opadają do góry. Proszę o wyrozumiałość, zdaje sobie sprawę że to musi być jakiś trywialny błąd, niestety nie mogę nigdzie znaleźć pomocy.

0

W którym momencie to wykonujesz? OnCreate?

0

Właściwie tak. Czy tutaj jest jakiś problem?
edit.
Sprawdziłem to wywołanie w innym miejscu i problem nie występuje. Jak to można ominąć?

0

Nie robić tego w OnCreate.
Formatka Form1 jest tworzona jako pierwsza w związku z czym w OnCreate formatka Form2 jeszcze nie istnieje.

0

Potrzebuje tego właśnie w tym miejscu, aby nie powtarzać własnej procedury która wypełnia ListBoxy na obu formach.
Ta (moja) procedura jest wywoływana w miejscu OnCreate pierwszej formy i dopiero w niej jest odwołanie do drugiej formy.

Czy istnieje jakaś procedura, która zmusi mój program do stworzenia drugiej formy przed utworzeniem pierwszej, tak aby można się było do niej swobodnie odwołać w tym miejscu?

1

W OnCreate Form2 daj ListBox1.Items.Assign(Form1.ListBox1.Items); i po sprawie.

1

To logiczne, że ne można tego zrobić w OnCreate, bo to zdarzenie przy tworzeniu. I albo zmienisz kolejnośc tworzenia formatek w opcjach lub ręcznie edytując plik projektu. Tylko wtedy pewnie nastąpią kolejne komplikacje. Nie można się odwoływać do czegoś, co wskazuje na nil. Ponieważ, jak pisali poprzednicy nie istniejhe. Najprościej przenieść kod do OnShow. Podstawy podstaw. Wątek przenoszę do działu Newbie. I w przyszłości, póki on istnieje, proszę tam zadawać pytania o tak banalne rzeczy. Bo nieważne, ze to Lazarus. Elementarne zasady dla obiektorego Pascala się nie zmieniły.

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