Odwołanie do dynamicznego Memo w Tabsheet

0

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?

0

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.

0

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.

0

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.

0

@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.

0

Dziękuje wszystkim za odpowiedzi. Znalazłem coś co mnie zadawala.
Tmemo(findComponent(nazwa+inttostr(i)).text:='tekst';

0

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.

0
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.

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