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