Witam.
Mam mały problemik.
Kombinuje i niewiem jak to rozwiązać.
Za pomocą przycisku tworzę dynamicznie zakładke(na niej RichEdit) na TPageControl:
I := 1;
.
.
.
Var Kartka:TTabSheet;
Notka :TRichEdit;
begin
Kartka:=TTabSheet.Create(Notatnik);
Kartka.PageControl:=Notatnik;
Kartka.Parent:=Notatnik;
Kartka.Tag := I;
Kartka.Name := 'Karta'+IntToStr(I);
Kartka.Caption := InttOStr(I);
Notka:=TRichEdit.Create(Kartka);
Notka.Align:=alClient;
Notka.Visible:=True;
Notka.Name := 'Notes'+IntToStr(I);
// Notka.Lines.Clear;
TControl(Notka).Parent:=Kartka;
I := I + 1;
Teraz mam kilka takich zakładek utworzonych. Naciskam przycisk żeby zapisać treść obecnie aktywnego RichEdita:
var
S : String;
X : Integer;
begin
If Notatnik.TabIndex <> -1 then
begin
If Zapisz.Execute then
begin
X := Notatnik.ActivePageIndex + 1;
TRichEdit(FindComponent('Notes'+IntToStr(X))).Lines.SaveToFile(Zapisz.FileName);
Notatnik.Pages[Notatnik.TabIndex].Destroy;
end;
end else I := 1;
end;
No i wywala mi błąd "Acces violation..." w lini
TRichEdit(FindComponent('Notes'+IntToStr(X))).Lines.SaveToFile(Zapisz.FileName);
Jak się z tym uporać??
PS. A jak wyczyścić richedita żeby w lines niebyło nazwy komponentu?? Mam w tworzeniu dynamicznym taką linie
Notka.Lines.Clear;
i wyrzuca mi błąd : "'Control 'Notes1' has no parent window ??
A jeszcze jedno bo bym zapomniał. Jak tworze tą zakładkę z RichEditem to jak zrobić zeby ta nowo utworzona była aktywna??
Myśłę że to wszystko :)
THX