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

Вниз

Как впихнуть в 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 вся ветка

Форум: "KOL";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.008 c
1-77896
Skier
2003-07-11 12:54
2003.07.24
Left side cannot be assigned to


1-77982
lex7
2003-07-11 11:18
2003.07.24
Цвет MainMenu


1-77976
bloodman
2003-07-10 23:14
2003.07.24
Реестр


3-77723
Sergg
2003-06-30 14:32
2003.07.24
Проблема с буквой


1-77879
Alex134
2003-07-13 18:49
2003.07.24
Интерфейсы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский