Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.27;
Скачать: CL | DM;

Вниз

Win32Api и VCL   Найти похожие ветки 

 
AlexG   (2002-12-12 14:05) [0]

Можно ли в приложение созданом средствами WinApi как нибудь попользовать визуалный компонент из VCL?


 
Игорь Шевченко ©   (2002-12-12 14:33) [1]

Можно


 
Diamond Cat ©   (2002-12-13 03:53) [2]

типа
var
b:Tbutton;
begin
b:=Tbutton.create(..
with b do begin
parentwindow:=
left:=
top:=
и т.д.


 
AlexG   (2002-12-13 08:55) [3]

Спасибо помогло! Помогла "строка parentwindow:="
Правда мне надо создать DBGrid попробовал этим способом выдает ошибку не пойму в чем дело, ошибка следующая:

Project Phone.exe raised exception class EListError with message "List index out of bounds (0)". Process stopped. Use Step or Run to continue.


 
Игорь Шевченко ©   (2002-12-13 09:38) [4]

Отладчик в руки и искать ошибку.


 
AlexG   (2002-12-13 09:52) [5]

Хороший совет! только не сильно помогает!

приведу код
вроде бы он полностью коректен

program Phone;



uses
Windows,
Messages,
Grids,
DBGrids;

var
Wc: TWndClassEx;
MainWnd: HWND;
Mesg: TMsg;

function WindowProc(wnd:HWND; Msg: Integer; Wp: WParam; Lp: LParam): LResult; stdcall;
begin
case msg of
wm_destroy:
begin
PostQuitMessage(0);
Exit;
Result := 0;
end;
else
Result := DefWindowProc(wnd, msg, wp, lp);
end;
end;


var
xPos,yPos,nWidth,nHeight : Integer;
Gr: TDBGrid;
B1: HWND;
begin
wc.cbSize:=sizeof(wc);
wc.style:=cs_hredraw or cs_vredraw;
wc.lpfnWndProc:=@WindowProc;
wc.cbClsExtra:=0;
wc.cbWndExtra:=0;
wc.hInstance:=HInstance;
wc.hIcon:=LoadIcon(0,IDI_INFORMATION);
wc.hCursor:=LoadCursor(0,idc_arrow);
wc.hbrBackground:=COLOR_BTNFACE+1;
wc.lpszMenuName:=nil;
wc.lpszClassName:="WinMin : Main";

RegisterClassEx(wc);
xPos:=200;
yPos:=200;
nWidth:=400;
nHeight:=300;

MainWnd:=CreateWindowEx(0,"WinMin : Main","Phone",ws_overlappedwindow,
xPos,yPos,nWidth,nHeight,0,0,Hinstance,nil);


Gr := TDBGrid.Create(nil);
with Gr do
begin
Left := 10;
Top := 10;
Width := 100;
Height := 100;
ParentWindow := Mainwnd;;
end;


ShowWindow(MainWnd,SW_NORMAL);



While GetMessage(Mesg,0,0,0) do
begin
TranslateMessage(Mesg);
DispatchMessage(Mesg);
end;


end.


но ошибка все равно выходит хоть ты че делай!


 
Ketmar ©   (2002-12-13 10:54) [6]

хм... а рассказать DBGrid"у, откуда ему данные брать - ни-ни?

Satanas Nobiscum! 13-Dec-XXXVII A.S.


 
AlexG   (2002-12-13 11:12) [7]

а зачем ему данные брать!
в Делфевом приложении он и без данных прорисовывается!


 
Игорь Шевченко ©   (2002-12-13 11:35) [8]

AlexG (13.12.02 11:12)

DBGrid при своем прорисовке вызывает метод ValidParentForm (если тебе лень пользоваться отладчиком), который в твоем случае возвращает значение nil, так как формы нету. Отсюда вывод - не получится DBGrid и прочие компоненты, которым позарез форма нужна, класть на произвольное окно.
А отладчик - рулез. Рекомендую. Исходники VCL - тоже рулез. Рекомендую. И "Учиться, учиться и учиться", как завещал великий Ленин.


 
AlexG   (2002-12-13 11:55) [9]

Че за отладчик?
а вообще то когда я прицепил к DBGrid_у DataSource и к той TTable
он все таки запустился, но нет нет выкидывает тип того
"---------------------------
Phone
---------------------------
Control "" has no parent window.
---------------------------
OK
---------------------------
"


 
AlexG   (2002-12-13 13:41) [10]

Нельзя так нелья! может кто подскажет как средстваи винапи работать с базами и в к данном случае с быть с DBGrido_м


 
Игорь Шевченко ©   (2002-12-13 14:14) [11]

А зачем себе такой геморрой устраивать ? Кода получится немеряно, ошибки искать замучаешься, размер все равно будет большой.
Не проще ли обычный путем, форма, DataSet, DataSource, DBGrid ?



 
Anatoly Podgoretsky ©   (2002-12-13 14:28) [12]

Размер возможно еще и больше будет, за счет дублирования кода



Страницы: 1 вся ветка

Текущий архив: 2003.01.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
3-86632
Andrushk
2002-12-23 17:05
2003.01.27
Как из Oracl-овой процедуры вернуть в Delphi набор данных?


3-86668
Anatoliy
2003-01-08 13:16
2003.01.27
Уважаемые мастера. Помогите пожалуйста с ADO+Access.


14-87053
Лёха2003
2003-01-05 14:51
2003.01.27
Создание ядра ОС


14-87057
white@donses.ru
2003-01-07 14:46
2003.01.27
Помогите запустить программу с таблицей PARADOX на другом компе


3-86624
LP
2003-01-10 11:03
2003.01.27
Проблема с TDBGrid