Utworzyłem kilka tabsheetów, w każdym jest jedno memo. Jak teraz wpisać coś do odpowiedniemo memo znając tylko nazwę zakładki tabsheet?
Normalnie, piszesz:
memo1.Text:='coś tam'
memo2.Text:='coś tam'
A jeśli chcesz na aktywnej zakładce to piszesz warunek
if PC.ActivePage = Tabsheet1 then memo1.Text:='coś tam'
itd. itd.
wiem juz jak dodać tekst do memo w aktualnej zakładce tabsheet
(PageControl1.ActivePage.Controls[0] as TMemo).text:='przykładowy tekst;
ale jak dodać coś do memo ale nie do aktywnego okna. Zakładki dodaje dynamicznie więc z góry nie znam nazwy zakładki.
W takim razie najlepiej zarówno TabSheety, jak i Memo trzymać w tablicach. Wtedy łatwo się odwołać zarówno do karty, jak i do pola tekstowego o zadanym indeksie.
@torzo - napisałeś, że tworzysz je dynamicznie, a jak zwalniasz po nich pamięć jeżeli nie wiesz jak się do nich dobrać? Powinieneś o tym pomyśleć... Trzymaj komponenty w tablicy lub nadawaj im nazwy.
Dziękuje wszystkim za odpowiedzi. Znalazłem coś co mnie zadawala.
Tmemo(findComponent(nazwa+inttostr(i)).text:='tekst';
Mimo sukcesu powiem Ci, że źle robisz. Zamiast gubić gdzieś referencję na obiekt memo, a później szukać za każdym razem poprzez FindComponent()... powinieneś od razu przy tworzeniu zapisywać je w tablice (wskaźniki do nich).
MemoNr[i] := TMemo.Create(Self);
I nie będzie problemu z szukaniem.
torzo napisał(a)
wiem juz jak dodać tekst do memo w aktualnej zakładce tabsheet
(PageControl1.ActivePage.Controls[0] as TMemo).text:='przykładowy tekst;
ale jak dodać coś do memo ale nie do aktywnego okna. Zakładki dodaje dynamicznie więc z góry nie znam nazwy zakładki.