Avatar billede dilling-hansen Nybegynder
19. januar 2006 - 09:44 Der er 14 kommentarer og
1 løsning

Create (fx. Label, Edit) på en TabbedNotebook ?

Jeg er i gang med et program der laver tabs ud fra en INI fil, så er problemet bare, hvordan kan jeg så sætte noget ind på de forskellige tabs... de bliver jo først lavet når programmet åbnes :-S
Jeg har prøvet noget med: http://www.eksperten.dk/spm/7835, men jeg kan ikke få det til at komme ind i de forskellige tabs...
er der nogen der kan hjælpe...
Avatar billede kroning Nybegynder
19. januar 2006 - 13:18 #1
Jeg går ud fra at det er TPageControl du benytter, hvis du f.eks. vil sætte en label ind på din første Tab i din TPageControl kan du gøre sådan:

    With TLabel.Create(PageControl1.Pages[0]) do
  begin
      Caption:='En test';
    Top:=10;
    Left:=10;
    Parent:=PageControl1.Pages[0];
  end;
Avatar billede kroning Nybegynder
19. januar 2006 - 13:21 #2
Næ du skriver jo TabbedNotebook det havde jeg ikke lige set, men du bør ikke benytte TabbedNotebook for som de skriver i hjælpen:
TTabbedNotebook is provided for backwards compatibility. New applications should use TPageControl instead.
Avatar billede dilling-hansen Nybegynder
19. januar 2006 - 14:39 #3
Jeg kan bare ikke rigtig få PageControl til at virke på samme måde :-S
den skal i Form1.Create; lave sider ud fra en ini fil:

<inifil>
[Settings]
Dansk=1
Engelsk=1
Biologi=1
Samfundsfag=1
</inifil>

Det fik jeg den til med den anden...
og så var planen at den så skulle lave fx. en listbox og en memo på hver af siderne...
Avatar billede stoney Nybegynder
19. januar 2006 - 15:43 #4
procedure TForm1.FormCreate(Sender: TObject);
var
myini : Tinifile;
i : integer;
sl : Tstringlist;
mytab : Ttabsheet;
mylistbox : Tlistbox;
mymemo : Tmemo;
begin
sl := Tstringlist.Create;
myini := Tinifile.Create('d:\settings.ini');
myini.ReadSection('settings',sl);
for i := 0 to sl.Count - 1 do

  begin
    mytab := Ttabsheet.Create(self);
    mytab.Parent := pagecontrol1;
    mytab.PageControl := pagecontrol1;
    mytab.PageIndex := i;
    mytab.Name := 'tab'+ inttostr(I);
    mytab.Caption := sl[i];
    mytab.Visible := true;
    mylistbox := Tlistbox.Create(mytab);
    mylistbox.Parent := mytab;
    mylistbox.Left := 10;
    mylistbox.Top := 20;
    mylistbox.Visible := true;
    mylistbox.Items.Add('Run time listbox');
    mymemo := Tmemo.Create(mytab);
    mymemo.Parent := mytab;
    mymemo.Left := 150;
    mymemo.Top := 20;
    mymemo.Height := mylistbox.Height;
    mymemo.Width := 120;
    mymemo.Lines.Add('Run time memo');
    mymemo.Visible := true;


  end;
  sl.Free;

end;


Stoney
Avatar billede dilling-hansen Nybegynder
19. januar 2006 - 15:47 #5
Du må undskylde 'stoney'...
men jeg kan ikke se hvordan noget virker i den der :-S...
og så er det ikk nemt at sætte ind i det jeg allerede har i koden i forvejen...
Avatar billede stoney Nybegynder
19. januar 2006 - 15:55 #6
jeg gik ud fra du havde en pagecontrol1 på din form.

Det skal virke, har lige testet

Stoney
Avatar billede stoney Nybegynder
19. januar 2006 - 15:56 #7
ret lige til hvor din inifil ligger også

Stoney
Avatar billede dilling-hansen Nybegynder
19. januar 2006 - 15:58 #8
Det virker da sikker :)
men jeg kan ikke lige se hvad den laver hvor :-s
og så kan jeg ikke rigtig flette det ind i den kode der allerede er i Form1.Create
Avatar billede dilling-hansen Nybegynder
19. januar 2006 - 16:16 #9
>>kroning... smid lige et svar, så deler jeg bare pointne
Avatar billede kroning Nybegynder
19. januar 2006 - 16:25 #10
Hvis du ikke kan bruge det til noget så skal jeg vel ingen points have. Prøv evt. at poste den kode du har i din Create.
Avatar billede dilling-hansen Nybegynder
19. januar 2006 - 16:29 #11
Jeg har fået bixet noget sammen der virker :D
med noget af jeres, og noget fra nogen andre spg her på eksperten...

tager jeg helt fejl hvis jeg siger at "sl.Free;" skal rettes til "myini.Free;" :-/
Avatar billede stoney Nybegynder
19. januar 2006 - 16:31 #12
de skal begge free's, jeg glemte bare myini

Stoney
Avatar billede dilling-hansen Nybegynder
19. januar 2006 - 16:32 #13
også "sl.Free;"?
Avatar billede stoney Nybegynder
19. januar 2006 - 16:54 #14
ja, hvis du har createt den skal den også free's
altså hvis du har brugt nedenstående af min kode

sl : Tstringlist;
sl := Tstringlist.Create;

Stoney
Avatar billede dilling-hansen Nybegynder
19. januar 2006 - 16:56 #15
okay...

MyTab    : TTabSheet;
MyListBox : TListBox;
MyMemo    : TMemo;

Hvad med dem?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester