Вопрос № 72640: Хотя вопросик, по WinApi задам его вам - как то ближе:) Как приклеиться снизу к некоторому окошку (известно какому) - покажите на примере, а то я и из русской справки по WinApi, найдя нужные ф-ии ничего не понял. ...Вопрос № 72673: Добрый день. У меня такой вопрос:
Есть база данных. Столбцы в dbgrid'е :№,Фамилия, Предмет,Клас.
Первые три столбца должны иметь одно значение, а последнее несколько. Список класов находится в другой таблице базы даных.
Заранее спасибо....
Вопрос № 72.640
Хотя вопросик, по WinApi задам его вам - как то ближе:) Как приклеиться снизу к некоторому окошку (известно какому) - покажите на примере, а то я и из русской справки по WinApi, найдя нужные ф-ии ничего не понял.
Отправлен: 25.01.2007, 19:59
Вопрос задал: Sync (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Sync!
Приклеивание реализуется очень просто - если расстояние от вашего окна до какого-то края меньше какого-дь расстояни (пикселов 15-30), то сделать положение своего окна таким, чтобы оно было ровно снизу от другого окна.
Чтобы найти чужое окно, используйте, напирмер, FindWindowEx.
А после
BOOL GetWindowRect(HWND hWnd, LPRECT lpRect);
В коде на Delphi надо будет передать функции следующие параметры:
hWnd (THandle) – параметр, полученный от FindWindowEx.
lpRect – указатель на переменную TRect. Т.е. MyRect либо @MyRect
В нее запишутся координаты нужного вам окна. Их и используйте.
А вообще, уточните, что именно у вас получилось?
--------- Не узнаешь - не попробуешь.
Ответ отправил: Сухомлин Кирилл Владимирович (статус: Специалист)
Ответ отправлен: 28.01.2007, 01:02 Оценка за ответ: 4 Комментарий оценки: попробуем, если не получится обязательно сообщим :)
Вопрос № 72.673
Добрый день. У меня такой вопрос:
Есть база данных. Столбцы в dbgrid'е :№,Фамилия, Предмет,Клас.
Первые три столбца должны иметь одно значение, а последнее несколько. Список класов находится в другой таблице базы даных.
Заранее спасибо.
Отправлен: 26.01.2007, 00:42
Вопрос задал: Rio (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Маренич Владимир
Здравствуйте, Rio!
Добавьте в набор данных (наверное TTable) вычисляемое поле (например, 'CalcClass' типа String). И в обработчике OnCalcFields сделайте выборку классов и присвойте этому полю список (опустите на форму TQuery и настройте на БД):
procedure Table1CalcFields(DataSet: TDataSet);
var
s: string;
begin
Query1.SQL.Text:='SELECT <№ класса> FROM <таблица с принадлежностью учеников к классам> WHERE <код ученика>='+IntToStr(DataSet.FieldByName('<код ученика>').AsInteger)+' ORDER BY <№ класса>';
s:='';
Query1.Open;
try
while not Query1.Eof do
begin
s:=s+IntToStr(Query1.FieldByName('<№ класса>').AsInteger);
Query1.Next;
if not Query1.Eof then s:=s+', ';
end;
finally
Query1.Close;
end;
DataSet.FieldByName('CalcClass').AsString:=s;
end;
Если бы Вы больше написали информации о СУБД и названии таблиц и полей можно было бы ответить более конкретно. Но надеюсь идея Вам поможет. :)
Ответ отправил: Маренич Владимир (статус: Студент)
Ответ отправлен: 26.01.2007, 11:58