Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.09.15;
Скачать: [xml.tar.bz2];

Вниз

Не перемещаемая форма. С какими то библ. конфликтует   Найти похожие ветки 

 
Layner   (2003-09-02 08:54) [0]

Подскажите, кто встречался, в одном приложении код работает, в других не работает, пишет
[Error] tov.pas(62): Incompatible types: "Integer" and "THitTest"

Причём, не пишет ошибку если библиотеки
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, main;


А если то, с чем я работаю, БД, - ошибка,
uses
Windows, Messages, SysUtils, Variants, Classes, ComCtrls, Graphics, Controls, Forms, Dialogs, StdCtrls, main, DBGrids, Grids, DBCtrls, ADODB, DB;


private
procedure hittest(var mes:Tmessage);message wm_nchittest;

procedure Tft.hittest(var mes:Tmessage);
begin
inherited;
case mes.Result of
htcaption,httopright,htbottom,htbottomleft,htbottomright,httop,htleft, htright,httopleft,htsize:
mes.result:=HTNOWHERE ;
end;
end;


 
Song   (2003-09-02 09:00) [1]

Попробуй Windows перенести в конец Uses


 
Layner   (2003-09-02 09:04) [2]

Song спасибо, помогает, ошибки нет, но и форма перемещается, т.е. код не дееспособный.. Сейчас попытаюсь подобрать местоположение Windows, может докопаюсь до истины.


 
Song   (2003-09-02 09:06) [3]

А зачем ты inherited вызываешь, если ты всё блокируешь?


 
Layner   (2003-09-02 09:14) [4]

inherited заремил, этот код я взял в kuliba1000,
Интересно то что этот же код работает просто, без БД, обзывал и процедуры по другому, и переменные не помогает.
Windows после ComCtrls - работает без ошибок, но и форма перемещается,
Windows до ComCtrls - работает только без БД, с БД-ошибка...


 
Skier   (2003-09-02 11:39) [5]

>Layner (02.09.03 09:14)
Может быть имеет место конфликт идентификаторов из разных модулей ?
Попробуй в обработчике сообщения перед идентификаторами ставить имя нужного модуля и точку.


 
Layner   (2003-09-02 12:55) [6]

Skier © (02.09.03 11:39)
Извинияюсь, не могу разобраться, есть код, а как его с идентификаторами повторить?

private
{ Private declarations }
procedure hittest(var mes:Tmessage);


procedure Tft.hittest(var mes:Tmessage);
begin
inherited;
case mes.Result of
htcaption,httopright,htbottom,htbottomleft,htbottomright,httop,htleft, htright,httopleft,htsize:
mes.result:=HTNOWHERE ;
end;
end;


 
Skier   (2003-09-02 13:02) [7]

begin
inherited;
case mes.Result of
Windows.htcaption,..., Windows.htsize:
mes.result:= Windows.HTNOWHERE;
end;
end;

Не поможет ?


 
Layner   (2003-09-02 13:14) [8]

Skier © (02.09.03 13:02), спасибо за совет, в общем, сделал, ошибки нет, компилируется нормально, но, всё равно, форма двигается. Наверняка в БД есть какие то одинаковые ф-и, которые мешеют этой, в USES Windows переставлял в конец, всё равно не помогает...


 
Skier   (2003-09-02 13:17) [9]

>Layner (02.09.03 13:14)

> но, всё равно, форма двигается.

Сдаётся мне что не за то сообщение (wm_nchittest) ты взялся.
Попробуй поиграться с WM_MOVING или WM_WINDOWPOSCHANGING


 
Anatoly Podgoretsky   (2003-09-02 13:32) [10]

Наверно больше подойдет wm_getminmaxinfo, он как раз для этой цели и существует.


 
Skier   (2003-09-02 13:38) [11]

>Anatoly Podgoretsky © (02.09.03 13:32)
Всё ж таки getminmaxinfo больше подходит для ограничения размеров формы,
а автору нужно чтобы форму нельзя было бы двигать, если я правильно понял...


 
Layner   (2003-09-02 13:54) [12]

чтобы форму нельзя было бы двигать, если я правильно понял
да, нельзя было двигать.

procedure WMmove(var Message: TMessage); message WM_WINDOWPOSCHANGING;
procedure WMmove(var Message: TMessage); message WM_MOVING;
procedure WMmove(var Message: TMessage); message wm_getminmaxinfo;


Всё равно не обрабатывают..


 
[lamer]Barmaglot   (2003-09-02 13:56) [13]

Это что?


 
Skier   (2003-09-02 13:59) [14]

Присоединяюсь к [13]


 
Layner   (2003-09-02 15:15) [15]

Ну это я писал не всё вместе конечно, по одной, код не привожу, он был выше, и не обрабатывает всё равно, форма как двигалась, так и двигается.


 
Skier   (2003-09-02 15:23) [16]

TYourForm = class(...)
private
procedure WMMoving(var Message : TMessage); message WM_MOVING;

//.............................

procedure TYourForm.WMMoving(var Message: TMessage);
begin
inherited;
with PRect(Message.LParam)^ do begin
Left := Self.Left;
Top := Self.Top;
Right := Self.Left + Self.Width;
Bottom := Self.Top + Self.Height;
end; //with
end;


 
Skier   (2003-09-02 15:24) [17]

Перед Width и Height "Self." не обязательно...


 
Layner   (2003-09-03 10:05) [18]

Skier
Спасибо огромное! Ура! Благодаря последнему коду всё получилось. Желаю всего самого наилучшего!



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

Форум: "Основная";
Текущий архив: 2003.09.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.012 c
1-48638
td
2003-09-03 08:59
2003.09.15
TreeView


6-48678
ART_43
2003-07-11 15:26
2003.09.15
TWebBrowser as OLEObject


14-48708
DeMoN-777
2003-08-28 13:57
2003.09.15
Интересуюсь...


6-48663
Nikma
2003-06-30 03:33
2003.09.15
Как получить данные с web сайта


3-48413
eds
2003-08-25 17:40
2003.09.15
Есть ли у кого нибудь демка по работе с TreeView компонентом?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский