04. november 2000 - 20:20Der 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.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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;\".
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.
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 ?
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>
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 :-)
\"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.
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 :-)
Synes godt om
Ny brugerNybegynder
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.