Tworzenie okien MDI o odpowiednim tytule

0

Witam :) Tworzę edytor, który opiera się na oknach MDI. Aby utworzyć nowy, pusty/niezapisany dokument, robię:

procedure Tfrm_main.tbPlikNowyClick(Sender: TObject);
var
  frm_edytor : Tfrm_edytor;
begin
  frm_edytor := Tfrm_edytor.Create(Self);
  frm_edytor.Show;
end;

Gdzie frm_edytor to nazwa okna potomnego ;) Ale tak: za każdym razem, gdy tworzę nowy dokument przyjmuje on taką samą nazwę, np. "niezapisany". A jakdokładnie zrobić, by w pętli odczytywał ilość otwartych niezapisanych okien potomnych i dodawał 1 do Captiona. Hmm... Chodzi mi o takie coś, że za każdym razem gdy wezmę "Nowy", to tytuł będzie "nie zapisany I", gdzie "I" to liczba okna. Kurczę, jakoś nie mogę się wysłowić [wstyd]
Chcę mieć odpowiednio "niezapisany 1", "niezapisany 2", "niezapisany 3" itd. :)

Mam nadzieję, że mnie ktoś zrozumiał :) Za odp z góry thx [green]

0

MDIChildCount.

0
berl napisał(a)

MDIChildCount.

Hmm... A możesz to jakoś na exapmlu pokazać? :) Bo jak na razie to wypisałem takie coś (nie działa :/):

procedure Tfrm_main.tbPlikNowyClick(Sender: TObject);
var
  frm_edytor : Tfrm_edytor;
  i : integer;
begin
  frm_edytor := Tfrm_edytor.Create(Self);
  for i := MDIChildCount to MDIChildCount + 1 do
    frm_edytor.Caption := 'Niezapisany '+MDIChildren[i].Caption;
  frm_edytor.Show;
end;

Wiem, że coś robię źle, ale jakoś nie wiem co :|

0

myślenie nie szkodzi

procedure Tfrm_main.tbPlikNowyClick(Sender: TObject);
var
  frm_edytor : Tfrm_edytor;
begin
  frm_edytor := Tfrm_edytor.Create(Self);
  frm_edytor.Caption := 'Niezapisany ' + IntToStr(MDIChildCount);
  frm_edytor.Show;
end;

z tym, że lepiej jest mieć dodatkową zmienną w frmMain i przy każdym otwarciu okna child zwiększać ją o jeden i jej wartość przypisywać zamiast MDIChildCount - uniknie się sytuacji, gdy nowe okno dostanie nazwę, która już jest (np. zamknięcie jednego z okienek Child spowoduje zmniejszenie MDIChildCount)

0

Dzięki :) Ależ to proste było... :]

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