Avatar billede simsen Mester
22. september 2011 - 21:14 Der er 4 kommentarer og
1 løsning

Mainform bruges af andre

Hej,

Et sidste spørgsmål....altså inden jeg begiver mig ud i at forsøge at lave et program (sådan for alvor)....

I Asp.Net er der mulighed for at bruge MasterPages, som i ganske enkelthed går ud på at man har en fast layout for de enkelte sider. Her putter man f.eks. menuen på og så vises menuen på alle sider man tilgår.

Jeg er godt klar over der ikke er den mulighed i Delphi....men hvad gør I, hvis I har "flere sider" i menuen I gerne vil vise som om det er main formen man arbejder på?

Såvidt jeg umiddelbart ser, er der to muligheder...enten at bruge Multiple Document Interface - eller også panels hvor man så sætter visible til false/true....

Men igen - kan være jeg har overset noget - så hvad gør I?
Avatar billede hugopedersen Nybegynder
23. september 2011 - 08:09 #1
Du kan også godt lave en form i Delphi som du putter alle dine standard ting på og så lader andre form bygge på den i stedet for direkte på TForm.

Kig f.eks. på
http://delphi.about.com/od/oopindelphi/a/delphi_oop4.htm

Eller søg på Google efter 'delphi inherited form'
Avatar billede 2Mida Praktikant
23. september 2011 - 11:01 #2
Jeg bruger ofte PageControl (godt nok AdvPageControl fra TMS) og sætter TabVisible til false i den tilknyttede TabSheet...

Jeg sætter den enkelte side med
PageControl1.ActivePage := TabSheetxxx
Avatar billede simsen Mester
23. september 2011 - 13:29 #3
Hej Hugo,

Tak for dit svar. Men for at bruge dette - og til den funktion, jeg vil bruge den til, skal jeg så Hide og Show de forskellige forms, som jeg selvfølgelig også kan. Jeg bryder mig dog ikke om at jeg med min hurtige maskine kan se, hvordan jeg "åbner" og "lukker" de forskellige forms.

Hej 2Mida,
Tak for dit svar. Det ender nok ud med jeg bruger din version i stedet....og må så leve med at den viser den aktive tabsheets tab og ikke kun indholdet...Så må jeg bruge caption til at gøre det til at det ligesom er sidens "overskrift" :-) Smid et svar og du får pointene :-)
Avatar billede hugopedersen Nybegynder
23. september 2011 - 13:40 #4
Du skal ikke hide noget som helst.

Du laver 1 form med den menu som du vil bruge i alle forms.
Så sætter du den 'rigtige' form til at bygge på den.
F.eks. har jeg en form jeg bruger til at vedligeholde brugerdata med. Der har jeg en der hedder frmUsers hvor al databaselogikken og navigation ligger på. Felter til brugerID, navn, password og mail ligger også på den.
Lige nu sidder jeg så og roder med et program hvor jeg også har brug for et brugernr.
Så gør jeg det at jeg har oprettet en ny form (frmUsersHPH) hvor jeg så retter Class(TForms) til Class(TfrmUsers) og så bygger jeg bare videre på den. frmUsers ændres ikke men alle elementer fra den er tilgængelige på frmUsersHPH

type
  TfrmUsersHPH = class(TfrmUsers)
    txtUserNo: TDBEdit;
    lblUserNo: TLabel;
  private
  public
  end;

Jeg har ikke arbejdet meget med det, men det smule jeg har, har gjort at jeg kan spare en masse vedligehold kan jeg se.
Avatar billede 2Mida Praktikant
23. september 2011 - 14:12 #5
#3 - du har en TabVisible property på hver tabsheet som du kan slå til og fra!
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