[lazarus] Free IDE?
Samuel Liddicott
sam at campbellsci.co.uk
Thu Sep 30 10:03:31 EDT 1999
> -----Original Message-----
> From: Michael A. Hess [mailto:mhess at miraclec.com]
> Sent: Thursday, September 30, 1999 02:13 PM
> To: lazarus at miraclec.com
> Subject: Re: [lazarus] Free IDE?
>
>
> Samuel Liddicott wrote:
> >
> > > Since that isn't how GTK
> > > does the message handling I don't see how you could add doing it
> > > using the windproc method that Delphi uses without tying the LCL
> > > directly to GTK. If you can show me how, by all means do it.
> >
> > instead of calling Dispatch, call WndProc and let DefaultWndProc call
> > dispatch. Just like Delphi.
>
> This is where you lose me. Do you invision one WndProc routine that
> handles all messages
no, not as such.
> or do you invision a WndProc for every control?
yes
> If
> it is one global WndProc how does that differ from what is done now?
interceptability
> And
> if it is for every control how do you invision sending the message to
> the control?
Very similar to dispatch.
Control.WndProc(Message);
> > So... you don't really want widget set independance then? No matter.
> > Even under GTK, wndproc is needed, as mentioned it is the ONLY way to
> > intercept messages to a control.
>
> Do we have a syntax problem in our communication??? A definition of
> terms problem or what??
Something like it. I'll try to keep calm.
> I thought I clearly stated above that we are trying to code the LCL so
> that it doesn't need any given widget set library. We want it to use a
> variety of libaries. Since these libaries are becoming more and more
> available on Win32 as well that also makes it platform independent. So
> exactly where am I stating that I, "don't really want widget set
> independance"?
Because your reason against wndproc is to avoid being like windows which
avoids the windows own widget set. I am not exactly against the "GTK only
on any GTK platform" approach, I just need wndproc, and want to show wndproc
doesn't break anything GTK.
> > let wndproc dispatch.
>
> Again please show me how this would work with the GTK signal method.
Procedure TControl.WndProc;
begin
{ This is the default wndproc }
Dispatch(Message);
end;
Although it will probably be more like:
procedure TControl.WndProc(var Message: TMessage);
var
Form: TForm;
begin
{ **NEEDED FOR FORM DESIGNER** }
if csDesigning in ComponentState then
If ParentFormPreview(self,Message) then exit;
{ You can handle dragging some other way if you want }
if isMouseMessage(Message) then begin
if Dragging then DragMouseMessage(Message)
end else { deal with csDoubleClicks in ControlStyle if we really need to}
else { if dragMode=dmAutomatic etc etc }
;
Dispatch(Message);
end;
More information about the Lazarus
mailing list