Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Win32Api и VCL [D7, Win2k]


AlexG ©   (2002-12-12 14:05:00) 

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


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

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


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

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


AlexG   (2002-12-13 13:41:00) [3]

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


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

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


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

AlexG (13.12.02 11:12)

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


AlexG   (2002-12-13 11:12:00) [6]

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


Ketmar   (2002-12-13 10:54:00) [7]

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

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


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

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

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

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.


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


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

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


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

Спасибо помогло! Помогла "строка 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.


Diamond Cat   (2002-12-13 03:53:00) [11]

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


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

Можно


Наверх

Титульная страница Поиск, карта сайта Написать письмо