/ 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-child uafhængig af form'en
Fra : Thomas P


Dato : 14-01-01 09:57

Hej :)

Er der nogen herinde, der har den fjerneste anelse om hvordan man kan have
et mdi-child til at løsrive sig fra mdi-formen og simpelthen svæve frit på
desktoppen, nogenlunde som Delphi gør med sine underforms...

--
- Thomas [blomme@post.com] [http://www.FlowCode.f2s.com]





 
 
Jan Pe\"d\"ersen (15-01-2001)
Kommentar
Fra : Jan Pe\"d\"ersen


Dato : 15-01-01 01:51

-Hej.

"Thomas P" <blomme@post.com> skrev i en meddelelse
news:93rpiv$qv5$1@news.inet.tele.dk...
> Hej :)
>
> Er der nogen herinde, der har den fjerneste anelse om hvordan man kan have
> et mdi-child til at løsrive sig fra mdi-formen og simpelthen svæve frit på
> desktoppen, nogenlunde som Delphi gør med sine underforms...
Jeg har aldrig prøvet om dette virker på MDI forms, men nedenstående har
jeg selv lavet til mine SDI programmer.


TfrmAddAccount_Child...
...
private
procedure CreateParams(var Params: TCreateParams);
end;

implementation

procedure TfrmAddAccount_Child.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
//
Params.ExStyle := Params.ExStyle or WS_EX_CONTROLPARENT;
Params.WndParent := GetDeskTopWindow;
end;

Ovenstående kode benyttes ved Non-Modal forms

-Jan
JPSoft DK
jan@_jpsoft_.dk



Thomas P (15-01-2001)
Kommentar
Fra : Thomas P


Dato : 15-01-01 07:49

Hey ! Det ser jo temmelig interessant ud det der !

--
- Thomas [blomme@post.com] [http://www.FlowCode.f2s.com]


Jan Pe"d"ersen <jan@with_a_d.dk> skrev i en
nyhedsmeddelelse:yOr86.1385$Nq5.211931@news000.worldonline.dk...
> -Hej.
>
> "Thomas P" <blomme@post.com> skrev i en meddelelse
> news:93rpiv$qv5$1@news.inet.tele.dk...
> > Hej :)
> >
> > Er der nogen herinde, der har den fjerneste anelse om hvordan man kan
have
> > et mdi-child til at løsrive sig fra mdi-formen og simpelthen svæve frit

> > desktoppen, nogenlunde som Delphi gør med sine underforms...
> Jeg har aldrig prøvet om dette virker på MDI forms, men nedenstående har
> jeg selv lavet til mine SDI programmer.
>
>
> TfrmAddAccount_Child...
> ...
> private
> procedure CreateParams(var Params: TCreateParams);
> end;
>
> implementation
>
> procedure TfrmAddAccount_Child.CreateParams(var Params: TCreateParams);
> begin
> inherited CreateParams(Params);
> //
> Params.ExStyle := Params.ExStyle or WS_EX_CONTROLPARENT;
> Params.WndParent := GetDeskTopWindow;
> end;
>
> Ovenstående kode benyttes ved Non-Modal forms
>
> -Jan
> JPSoft DK
> jan@_jpsoft_.dk
>
>



Thomas P (15-01-2001)
Kommentar
Fra : Thomas P


Dato : 15-01-01 08:15

Lad mig lige starte med et tilkendegive min ufuldstændige viden i forhold
til sdi - i virkeligheden ved jeg ikke en sk*d om det :) Det alene, gør det
nok også lidt sværere at forstå hvilken mærkelig parameter jeg skal smide
med proceduren når jeg fremkalder (altså for at det virker). Jeg har længe
prøvet en Tcreateparams, som da heller ikke gav nogle compiler-fejl, men dog
heller ikke viste noget resultat når jeg testede den... konklusion: Jeg er
stadigvæk _meget_ grøn inden for SDI, så --please-- Vil du ikke prøve at
forklare det med 10km/t mindre ?

--
- Thomas [blomme@post.com] [http://www.FlowCode.f2s.com]


Jan Pe"d"ersen <jan@with_a_d.dk> skrev i en
nyhedsmeddelelse:yOr86.1385$Nq5.211931@news000.worldonline.dk...
> -Hej.
>
> "Thomas P" <blomme@post.com> skrev i en meddelelse
> news:93rpiv$qv5$1@news.inet.tele.dk...
> > Hej :)
> >
> > Er der nogen herinde, der har den fjerneste anelse om hvordan man kan
have
> > et mdi-child til at løsrive sig fra mdi-formen og simpelthen svæve frit

> > desktoppen, nogenlunde som Delphi gør med sine underforms...
> Jeg har aldrig prøvet om dette virker på MDI forms, men nedenstående har
> jeg selv lavet til mine SDI programmer.
>
>
> TfrmAddAccount_Child...
> ...
> private
> procedure CreateParams(var Params: TCreateParams);
> end;
>
> implementation
>
> procedure TfrmAddAccount_Child.CreateParams(var Params: TCreateParams);
> begin
> inherited CreateParams(Params);
> //
> Params.ExStyle := Params.ExStyle or WS_EX_CONTROLPARENT;
> Params.WndParent := GetDeskTopWindow;
> end;
>
> Ovenstående kode benyttes ved Non-Modal forms
>
> -Jan
> JPSoft DK
> jan@_jpsoft_.dk
>
>



Jan Pe\"d\"ersen (15-01-2001)
Kommentar
Fra : Jan Pe\"d\"ersen


Dato : 15-01-01 13:29

Hej.

"Thomas P" <blomme@post.com> skrev i en meddelelse
news:93u819$m95$1@news.inet.tele.dk...
> Lad mig lige starte med et tilkendegive min ufuldstændige viden i forhold
> til sdi - i virkeligheden ved jeg ikke en sk*d om det :) Det alene, gør
det
> nok også lidt sværere at forstå hvilken mærkelig parameter jeg skal smide
> med proceduren når jeg fremkalder (altså for at det virker). Jeg har længe
> prøvet en Tcreateparams, som da heller ikke gav nogle compiler-fejl, men
dog
> heller ikke viste noget resultat når jeg testede den... konklusion: Jeg er
> stadigvæk _meget_ grøn inden for SDI, så --please-- Vil du ikke prøve at
> forklare det med 10km/t mindre ?
Jeg går ud fra at du ved hvad MDI (Multi Document Interface) er,
siden du allerede har lavet noget. SDI er det modsatte, dvs. Én hovedform,
som
som regel har hovedformen som parent. Nok om det...

TCreateParams, er en record type med tilhørende variabler til API funktionen
CreateWindow. CreateParams benyttes af Delphi når (i dette tilfælde) din
form oprettes, altså her angives forskellige parametre for din form.
Dette kan være særlige egenskaber.

Hvis du ser på en ganske almindelig TListbox, så understøtter den ikke
direkte
tabuleringsstop (i Delphi), men det gør den i Windows API'en.
For at kunne benytte tabulerinsgstop, skal TListBox'en creates med denne
ekstra
windows style (sjov formulering), og det kan du gøre med CreateParams.
Eks:

Procedure TListBoxEx.Createparams(var Params: TCreateParams);
begin
inherited;
Params.Style:= Params.Style or lbs_UseTabStops;
end;

Hvis du kender til C/C++ så burde du kende alt til CreateParams, da den
flittigt
bliver brugt her, eller hvis du laver et Delphi program i ren API, eks:

*********

handle:=createwindowex(
{WS_EX_TOPMOST or WS_EX_CLIENTEDGE} 0,
'eXtreMe',
'eXtreMe',
WS_VISIBLE or WS_SIZEBOX or WS_CAPTION or WS_SYSMENU,
100,100,350,100,0,0,inst,nil);

CrackItBUTTON:=createwindow(
'Button',
'CrackIt ',
WS_VISIBLE or WS_CHILD or BS_PUSHLIKE or BS_TEXT,
10,40,320,24,handle,0,inst,nil);

createwindow(
'Static',
'Crack for YeahYouWouldLikeToKnow',
WS_VISIBLE or WS_CHILD or SS_LEFT,
110,10,150,20,handle,0,inst,nil);

Prøv evt. at se lidt på EX styles.

-Håber du kunne blive bare lidt mere forvirret

-Jan
JPSoft DK




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

Månedens bedste
Årets bedste
Sidste års bedste