[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?


> If
> it is one global WndProc how does that differ from what is done now?


> And
> if it is for every control how do you invision sending the message to
> the control?

Very similar to dispatch.


> > 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;
  { This is the default wndproc }

Although it will probably be more like:

procedure TControl.WndProc(var Message: TMessage);
  Form: TForm;
  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 }

More information about the Lazarus mailing list