Komponenty a API

0

Mam jakiś komponent i dynamicznie tworzę okno w API.
Jak stworzyć komponent VCL na oknie dynamicznie tworzonym gdzie mam tylko:
WNDCLASS : TWndClass; i WND : HWND; (nie używam TForm ,bez modułu Forms);

var
Komponent:TKomponent;
begin
Komponent:=TKomponent.Create( nil );
end;
nil = nic ,a musi być TComponent
Nie wiem skąd mam wziąźć TCommponent z uchwytu okna.

0

Możesz tylko komponenty TWinControl tworzyć na kontrolkach API. A robisz to tak:
q: TWinControl;

q := TWinControl.CreateParented(UchwytKontrolkiAPI);

0

No i jak teraz?
Robię tak:

var
q: TWinControl;
Komponent: TRichEdit;

WM_CREATE:
begin
q := TWinControl.CreateParented(wnd);
Komponent:=TRichEdit.Create(q);
with Komponent do begin
Left:=10;
Top:=10;
Height:=200;
Width:=200;
end;
end;

No i puste okno.
Okno tworzę funkcją:
function Okno(H : HWND; Msg: UINT; wPar : WPARAM; lPar: LPARAM): LRESULT; stdcall;

Po prostu chcę w czystym API napisać program z kilkoma komponentami VCL ,aby to nie przekraczało 80 KB.
(Coś w stylu edytora tekstu tylko ,że RTF)

0

Hierarchy of TRichEdit

TObject

TPersistent

TComponent

TControl

TWinControl

TCustomEdit

TCustomMemo

TCustomRichEdit

RichEdit jest potomkiem TWinControl czyli możesz go bezpośrednio umieścić na oknie, a nie stosujesz jakieś dziwne kombinacje.

[dopisek]
Użyj... głowy!

0

Prosiłbym o przykład. :d

0

Prosiłbym o przykład. :d

Troszkę z innej beczki. Tworzenie RichEdit w Assemblerze. Nie panikuj - WinAPI jest takie samo. Powodzenia :-)
http://spiff.tripnet.se/~iczelion/tut33.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1