Avatar billede stone Forsker
04. november 2000 - 20:20 Der er 9 kommentarer og
1 løsning

form forsvinder

hvordan undgår jeg at ved klik på form1,
at form2 osv. forsvinder bag form1.
Det mest praktiske vil være at den blev minimeret og lagde sig i bunden på form1.

Avatar billede pellelil Nybegynder
04. november 2000 - 21:02 #1
Hvis din form1 er din \"hoved\" form så sæt denne\'s \"FormStyle\" til \"fsMDIForm\". Dette gør at denne kan \"indholde\" andre forms. Din Form2\'s \"FormStyle\" sætter du til \"fsMDIChild\".

Når du således \"minimizer\" FORM2 vil den automatisk lægge sig in bunden af form1 (som du efterlyser).

Du skal lige være klar over at MDIChild-form\'s skal \"lukkes på en speciel måde\". Normalt kalder du bare close, men det kan du ikke med MDIChild forms. Vælg din forms \"OnClose\" event, og i denne skriver du \"Action := caFree;\".
Avatar billede stone Forsker
04. november 2000 - 23:33 #2
Form2 osv. skal ikke være synlig ved start af form1.
hvis jeg sætter form1 formstyle:fsMDIform og form2
til:MDIChild, forsvinder memuen foroven ved tryk på knap som kalder form2 osv.
Avatar billede hatecaps Nybegynder
05. november 2000 - 10:15 #3
sæt menuens automerge property til True, så skulle menuen blive der selom du åbner et Child. Jeg går ud fra at du først skaber form2, form3 o.s.v når de vælges ?
Avatar billede pellelil Nybegynder
05. november 2000 - 10:26 #4
Form2 er kun synlig hvis du gør den synlig, hvilket vil sige at du foruden at create den også kalder dens Show (eller ShowModal).

Delphi har en \"uvane\" (hvis du spørger mig) med at den som default \"auto-creater\" dine forms. Kald din \"project manager\" frem (enten via \"View->Project manager\" eller \"CTRL-ALT-F11\"). I \"Project Manageren\" højre klikker du på dit project og vælger \"Options\". Dernæst vælger du fanebladet \"Forms\". I min bog det eneste der skal \"auto-creates\" er din applications \"hoved form\" hvilket i dit tilfælde sikkert er Form1.

Din Form2, skal kun vises når hvis man i Form1 vælger det, enten i via en knappe eller (måske mere logisk) en menu. Den kode der skal udføres når man vælger dette menupunkt er således at Form2 skal creates og vises (hvilket betyder at Form1 skal USE Form2). Koden ser således ud:
<SNIP>
procedure TForm1.MenuPunktClick(Sender: TObject);
var
  Form2 : TForm2;
begin
  Form2 := TForm2.Create(Self);
  FormDBClientCaseCreate.Show;
end;
</SNIP>
Avatar billede hatecaps Nybegynder
05. november 2000 - 10:51 #5
formdbclientcasecreate.show ?!?!?  nu rabler da det vist helt for dig, pellelil  ;-)

skulle der ikke stå Formmeddetnummerdenligehavdefør.show ? 

hatecaps ;-)
Avatar billede pellelil Nybegynder
05. november 2000 - 11:03 #6
HATECAPS> Damn, det er ikke så\'n når man kopiere noget uden at rette det hele. Men jeg er lovlig undskyldt jeg har først nu indtaget dagen første kop kaffe :-)

Der skulle ha\' stået: \"Form2.Show;\".

Avatar billede hatecaps Nybegynder
05. november 2000 - 11:15 #7
ok lol

hatecaps :-)
Avatar billede stone Forsker
05. november 2000 - 11:35 #8
menu punkterne er væk ved opstart af form1,når man vælger automerge:true.I project manageren er form1 allerede valgt som hovedform.
Avatar billede pellelil Nybegynder
05. november 2000 - 11:48 #9
\"menu punkterne\" må stå for hatecaps regning da jeg stadig er nogle kopper kaffe bagud før jeg er rigtig vågen (eller sagt på en anden måde: det ved han sgu nok bedre når det kommer til stykket, da det ikke er noget jeg har rodet med).

Dog vil jeg lige spørge: Har form2 en menu? Hvis ikke så er der igen grund til at merger menuerne da der i så fald ikke er noget at merge !?. Ligeledes så skal Form2 creates og gøres aktiv før du har noget at merge.

Med med hensyn til at Form1 er din \"hoved form\", så er det som det skal være. Da en applikation altid skal have en sådan (skal vi gå i deltaljer så skal dit program altid have et \"hoved vindue\" da der er dennes event handler der modtager de events der sendes fra Windows). Det eneste du skulle sikre dig var at andre forms ikke bliver created, før der er behov for det.
Avatar billede hatecaps Nybegynder
05. november 2000 - 12:18 #10
hvis du har ne tmainmenu på din form1, og den forsvinder ved opstart, har det noget med borderstyle at gøre så hudt jeg visker. hvis den er sat til none eller dialog eller lgn. bliver menu\'en ikke vist. prøv dig frem med BorderStyle/BorderIcons indtil du får menuen frem

ha\' det godt
hatecaps :-)
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