Главная страница
    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.45 MB
Время: 0.009 c
7-78177
DBDev
2003-05-14 17:28
2003.07.24
Какой функцией получить путь к локальной папке


1-77933
TolikM
2003-07-10 16:40
2003.07.24
StringGrid


3-77772
Лора
2003-07-02 09:15
2003.07.24
Запрос в Access


1-77897
vitall
2003-07-12 11:41
2003.07.24
Как сделать чтобы PopupMenu из TrayIcon раскрывалось


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