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

Вниз

Как впихнуть в ListView другие контролы?   Найти похожие ветки 

 
lomman ©   (2002-11-18 19:44) [0]

Собственно нужно в одну колонку сунуть CheckBox, в следущую Button, а также ProgressBar.
Помогите кто чем сможет!


 
Gandalf   (2002-11-20 10:06) [1]

Создавай контролы с родителем ListView и позиционируй. Но вообще вопрос ближе к WinAPI.


 
lomman ©   (2002-11-20 19:53) [2]

Я пробовал! Создаю например ProgressBar с родителем lstDo (ListView). Запускаю программу, он рисует ProgressBar вроде нормально, но буквально через 2 секунды вываливается в отладчик с ошибкой "Access Violation at 0x77f5135f" или вроде того! Что делать подскажи!
Делаю примерно следующее:

var
pb: TKOLProgressBar;
begin
pb := NewProgressBar(lstDo);
pb.Width := 100;
pb.Height := 20;
pb.Top := 20;
pb.Left := 0;
pb.CreateWindow ;
end;


Где lstDo компонент TKOLListView!


 
lomman ©   (2002-11-22 21:48) [3]

Подскажите почему не работает этот код ^^^^^ ???


 
Gandalf   (2002-11-22 23:05) [4]


> Подскажите почему не работает этот код ^^^^^ ???


Нахожусь в стадии думалки, попахивает новым bug"ом (KOL), но не хотелось бы делать поспешных выводов... Вот мое мнение:
1) Ошибка происходит только присоздании Common"ов (твой progressBar)
2) Ошибка расположена в адресу 034FD:FF1A ;) - шучу.

function _NewCommonControl( AParent: PControl; ClassName:
-=Cut=-
//InitCommonControlSizeNotify( Result ); // Так и было
//InitCommonControlCommonNotify( Result ); // Вот тут беда
end;


Я пока анализом не занимался, по всей видимости идет неверное прикручивание WndProc, толи не то, толи не тому.

В любом случаи после проделаных операций (комментирования выше перечисленной строки) и перекомпилирования КОЛ-Паскаль версии (!) - ошибка не появляется, правда понятно что такое решение лишь временное. 23:04 по Москве - все я хочу спать, всем до завтра :0


 
Gandalf   (2002-11-22 23:16) [5]

Мда... под ночь мозги плохо работают... ме-е-дленно...
Ошибка тут, вернее решение:

procedure InitCommonControlCommonNotify( Ctrl: PControl );
var AParent: PControl;
begin
Ctrl.fIsCommonControl := True;
AParent := Ctrl.Parent;
if AParent <> nil then
begin
Ctrl.AttachProc( WndProcCommonNotify );
if AParent.fIsCommonControl then // Вот тут соб@ка
AParent.AttachProc( WndProcCommonNotify )
else
AParent.AttachProc( WndProcNotify );
// Кто сказал, что родитель обезательно рядовой контрол, может это Common
end;
end;


ЗЫ: Думаю теперь все понятно, всем спасибо за очередной шаг к совершенству КОЛ (lomman - персонально за вскрытие ошибки)

ЗЗЫ: Прошу прощение за стиль... засыпаю... да простит меня Модератор.


 
lomman ©   (2002-11-22 23:42) [6]

Большое спасибо. Будем стараться далше! Сделаем KOL лучше!



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

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

Наверх




Память: 0.48 MB
Время: 0.017 c
8-78006
Fast
2003-04-02 23:54
2003.07.24
mp3->wav


3-77783
OlkaGTS
2003-07-01 17:22
2003.07.24
Delphi + поля объекта OLE в MS Access


7-78172
Nucl
2003-05-16 13:19
2003.07.24
2 монитора


7-78177
DBDev
2003-05-14 17:28
2003.07.24
Какой функцией получить путь к локальной папке


3-77759
Zigs
2003-06-30 13:22
2003.07.24
Уважаемые мастера, можно можно ли в TDBText отображать несколько