"Harald" <news10@-REMOVE-THIS-kroning.dk> wrote in
news:3ff18705$0$27394$edfadb0f@dread16.news.tele.dk:
> "Michael Vilhelmsen" <smom22@hotmail.com> skrev i en meddelelse
> news:3ff18065$0$123$edfadb0f@dread11.news.tele.dk...
<klip>
>> Langt de fleste forme bliver lavet on runtime og vist som ShowModal
>> (da programmet skal afslutte et vindue inden der må fortsættes).
>> Dette gør jeg således:
>>
>> begin
>> try
>> MyForm1 := TMyForm1.Create(nil);
>> MyForm1.ShowModal; finally
>> MyForm1.Release;
>> MyForm1 := nil; end; end;
>>
>> Problemet er bare at en gang imellem bliver en form (dette gælder
>> alle forme, men ikke konsekvent) vist ganske hurtigt, hvorefter en
>> anden application ligger foran.
>> Den application som så ligger forrest er ikke den aktive
>> application. Det er stadigvæk min appl.
>> For at få focus på min egen appl. igen, skal jeg enten vælge den på
>> bundlinien (selvom den allerede er valgt) eller trykker ALT+TAB for
>> at skifte til en anden og igen ALT+TAB for at få min appl. forrest.
Jeg tvivler på at det har noget med dit problem at gøre men din kode bør
være følgende (altså flytte Create uden for try, da en exception Create
ellers vil resultere i endnu en exception når du forsøger at release en
form der ikke er oprettet):
MyForm1 := TMyForm1.Create(nil);
try
MyForm1.ShowModal;
finally
MyForm1.Release;
MyForm1 := nil;
end;
Lige lidt tillægsspørgsmål:
- sker fejlen både når der er "trejdeparts" programmer åbne og når dit
program er det eneste?
- hvilket OS kører du med?
- kan du fremprovokere det samme med et "nyt" program der "kun" åbner
vinduer (altså uden modellag/funktionalitet)?
> Mener at dette skulle være den korrekte måde at lave forme on
> runtime men om det giver en forskel ved jeg ikke:
>
> Application.CreateForm(TMyForm1, MyForm1);
<klip>
Hvis du anvender ovenstående bør/kan/må du ikke selv release formen efter
brug.
/Claus
--
Claus Christiansen, <mailto:NOSPAM@unipeople.dk>, leave the adr. as it is
personal: <
http://unipeople.dk/~cch>; pythia: <
http://www.pythia.dk>
===========================================================--------------
"Computers are useless. They can only give you answers" - Pablo Picasso