Duncan Parsons wrote: > Hi, > > I seem to have run into a problem with what is essentially > nomenclature.. > > Since LCL has used Delphi as its template, there's a lot of Windows > based conventions, but that doesn't totally map to other systems. > > For instance, TForm.Handle in windows repesents the tag that the OS > gives to the rectangle I see on screen. I would have thought that each > underlying widgetset interface would then use this to maintain some > consistency at a higher level, eg on OSX, this would be filled with the > WindowRef that OSX uses. However, I cannot see this happening (unless > I'm looking in the wrong place). TCarbonWindow has a fWindowRef field > and property that references it, but this is at widgetset level, and so > not visible to TForm. > > I see the HandleAllocated and GetReferenceAllocated code lying around, > but they don't seem to tell me what I'm after. What I'd like to know is > if I have a function in OSX that is asking for a form's WindowRef, do I > pass it self.Handle, or is there something else I should be using. At > the moment it is not working as I would hope. For instance calling > GetWindowAttributes(WindowRef(self.Handle),myAttributes) gives me an > exception each time. > > Any ideas on what I should be looking for? > > ATB, DSP > Afaik in the Carbon interface TWincontrol.Handle can be typecast to TCarbonWidget (declared in CarbonDef) which has the property "Widget" of type HiViewRef.
so var AHiView: HiViewRef; begin ... AHiView := TCarbonWidget(Form1.Handle).Widget); ... end; Hope this helps, Andrew _______________________________________________ Lazarus mailing list [email protected] http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
