Форум: "WinAPI";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];
Вниз
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.011 c