30. april 2013 - 12:38Der er
4 kommentarer og 1 løsning
Form placering igen
Jeg har et program hvor mainform er en MDI container I den har jeg et antal forms som så er MDI childs - de opfører sig som forventet både på WinXP og Win7
Jeg har så et andet antal forms som jeg ikke kan lave til MDI childs da de ikke kan være maximeret. Disse forms kan jeg til stadighed opleve at de nogen gange opfører sig helt som forventet og er forrest i programmet, men i andre tilfælde kan de samme forms komme i tanke om at ville være foran andre programmer. Altså hvis jeg har en form åben i Program 1 og så åbner program 2, så bliver formen stående foran program 2 - og det ser rodet ud.
Denne opførsel ser ud til at være mest fremtrædende på Windows Xp
Hvordan kan jeg sikre mig at en form altid er foran sin ejer men aldrig foran andre programmer?
Jeg bruger samme forms i andre programmer der ikke har en MDI container som mainform og jeg kan ikke lige gennemskue hvilken fremgangsmåde jeg så skal anvende.
Hvis det er en arvet form kan formstyle ændres uden problemer, men ellers kan du jo altid ændre den til en MDIChild i din Project fil eller hvor du nu Creater formen, f.eks.
Hvis du mener om formene arver fra andet end TForms, så nej.
Jeg opretter alle mine forms via kode som f.eks. function ShowHsSetup: boolean; begin with TfrmHsSetup.Create(nil) do try Result := ShowModal = mrOK; finally Release; end; end;
Det kunne jeg vel ændre til noget i stil med (ikke afprøvet) function ShowHsSetup(aOwner: TComponent): boolean; begin with TfrmHsSetup.Create(aOwner) Do try begin if TForm(aOwner).FormStyle = fsMDIForm then FormStyle := fsMDIChild; Result := ShowModal = MROK; end; finally Release; end; end;
Lukker spørgsmål - problemet eksisterer dog stadig
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.