/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
MDI forms i D5
Fra : Simon Hiort-Lorenzen


Dato : 04-07-01 18:04

Hej alle

Jeg er ved at et MDI program i D5 for første gang, og det volder mig
lidt problemer.

Jeg har en MDI child form med to variabler, VideoStatus og CWHandle. I
FormResize eventen i formen gør jeg følgende:

SetWindowPos(CWHandle, self.handle, (self.ClientWidth -
VideoStatus.uiImageWidth) div 2, (self.ClientHeight -
VideoStatus.uiImageHeight) div 2, VideoStatus.uiImageWidth,
VideoStatus.uiImageHeight, SWP_NOZORDER);

Mit problem er at hvis jeg har åbnet to child vinduer, og jeg så resizer
det vindue jeg åbnede først, så bruger den VideoStatus og CWHandle fra
det vindue jeg åbnede sidst, og det dur jo ikke.

Jeg har prøvet at bruge self.VideoStatus og self.CWhandle, men så siger
compileren: Undeclared Identifier: 'CWHandle'.

Håber der er nogen der forstår hvad jeg mener og kan hjælpe.

Mvh.
Simon

 
 
Niels (04-07-2001)
Kommentar
Fra : Niels


Dato : 04-07-01 23:31

Just as I expected, Simon Hiort-Lorenzen came up with this:

>Jeg har en MDI child form med to variabler, VideoStatus og CWHandle.

Hvor er de deklareret i din .pas fil? De bør stå i Private eller Public
delen af din form's klasse-deklaration. Altså:

type
TMinMDICHild = class(TForm)
{ ... en masse komponenter }
private
VideoStatus: TVideostatus; {eller whatever type den nu er}
VWHandle: THandle;
public
{ Public declarations }
end;

>I FormResize eventen i formen gør jeg følgende:
>
>SetWindowPos(CWHandle, self.handle, (self.ClientWidth -
>VideoStatus.uiImageWidth) div 2, (self.ClientHeight -
>VideoStatus.uiImageHeight) div 2, VideoStatus.uiImageWidth,
>VideoStatus.uiImageHeight, SWP_NOZORDER);

Hvorfor sæøtter du ikke bare BoundsRect propertyen i din form? Det er da
meget nemmere (og giver pænere kode).

>Mit problem er at hvis jeg har åbnet to child vinduer, og jeg så resizer
>det vindue jeg åbnede først, så bruger den VideoStatus og CWHandle fra
>det vindue jeg åbnede sidst, og det dur jo ikke.

Hvis variablerne er deklareret som globale (dvs. ikke inde i din form's
klasse) så er der kun den ene udgave af dem som er de samme ligegyldigt
hvor i programmet du bruger dem.

Niels
--
http://www.niller.f2s.com/ - niLLer's pages, that's my software
http://g4s.dnsq.org/ - when I'm online
g4s ad post dot ocm - new email! (note: it's .com !)
ICQ#: 50187323

Simon Hiort-Lorenzen (10-07-2001)
Kommentar
Fra : Simon Hiort-Lorenzen


Dato : 10-07-01 16:31

In article <3b439816.2124932@news.inet.tele.dk>, g4s@post-and-not-
spam.com says...
> Just as I expected, Simon Hiort-Lorenzen came up with this:
>
> >Jeg har en MDI child form med to variabler, VideoStatus og CWHandle.
>
> Hvor er de deklareret i din .pas fil? De bør stå i Private eller Public
> delen af din form's klasse-deklaration. Altså:
>
> type
> TMinMDICHild = class(TForm)
> { ... en masse komponenter }
> private
> VideoStatus: TVideostatus; {eller whatever type den nu er}
> VWHandle: THandle;
> public
> { Public declarations }
> end;
>

Det hjalp. Jeg havde bare deklareret dem i Var. Det er jo egentlig
klart, gad vide om jeg ikke havde fundet ud af det hvis jeg havde tænkt
mig lidt om



> >I FormResize eventen i formen gør jeg følgende:
> >
> >SetWindowPos(CWHandle, self.handle, (self.ClientWidth -
> >VideoStatus.uiImageWidth) div 2, (self.ClientHeight -
> >VideoStatus.uiImageHeight) div 2, VideoStatus.uiImageWidth,
> >VideoStatus.uiImageHeight, SWP_NOZORDER);
>
> Hvorfor sæøtter du ikke bare BoundsRect propertyen i din form? Det er da
> meget nemmere (og giver pænere kode).
>

Den kender jeg ikke. Det må jeg lige kigge på.


> >Mit problem er at hvis jeg har åbnet to child vinduer, og jeg så resizer
> >det vindue jeg åbnede først, så bruger den VideoStatus og CWHandle fra
> >det vindue jeg åbnede sidst, og det dur jo ikke.
>
> Hvis variablerne er deklareret som globale (dvs. ikke inde i din form's
> klasse) så er der kun den ene udgave af dem som er de samme ligegyldigt
> hvor i programmet du bruger dem.
>
> Niels
>

Tak for hjælpen.

Simon

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste