1. Du forsøger at tildele to forskellige handlere til den samme Message (WM_SYSCOMMAND), jeg er ret sikker på at problemet ligger der.
2. Hvis den funktion du kalder GetSystemMenu ikke er defineret som en del af din form (enten i private eller public eller..), og den altså ser ud som den her
function minFunktion : boolean; begin
end;
i stedet for
function TForm1.minFunktion : boolean; begin end;
så vil "self" ikke pege på en dyt. Det er kun når funktionen er en del af TForm1 at self vil pege på noget. Du kan evt. prøve at bruge application.handle i stedet for TForm(self).handle, i stedet for at omdeklarere din funktion.
1. Self peger på den instans af klassen du befinder dig i. I en form *metode* peger Self på formen selv. Der for TForm(self).handle egentlig noget vrøvl selv om det er korrekt. Du kan nøjes med at skrive Self.Handle eller blot Handle i en form metode. Når du befinder dig i en almindelig standalone function/procedure findes Self ikke. Så kan du bruge f.eks. Form1.Handle eller hvad det nu er for en form du vil arbejde med.
2. Du kan ikke have 2 procedurer i den samme form med den samme message, i dette tilfælde message WM_SYSCOMMAND. Du er nødt til at slette den ene af disse procedurer og lægge koden fra den ind i den anden procedure, så du ender op med en eneste "message WM_SYSCOMMAND" procedure.
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.