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

Вниз

Не читается из ini-файла, не рисуется иконка...   Найти похожие ветки 

 
micron   (2005-07-06 00:47) [0]

Уже 2й день мучаюсь - не могу заставить делать сабж...
Выкладываю сразу весь код проекта...

program p1;

uses Windows, Messages, KOL;

{* Variables}
var
 Ini : PIniFile;
 Applet, FMain: PControl;
 Icons: Array[1..32] of PIcon;
 Left, Top, Width, Height : Integer;

{* Code}
BEGIN
{-----}
Applet := NewApplet("");
FMain := NewForm(Applet, "Finder");

 Ini := OpenIniFile(IniFilePathName);
 ini.Mode := ifmRead;
 Ini.Section := "Window";
 Left := Ini.ValueInteger("Left", Left);

FMain.Left := Left;

Icons[1] := NewIcon;
Icons[1].LoadFromFile("cd.ico");
Icons[1].Draw(FMain.Canvas.Handle,5,5);
Run(Applet);
{-----}
END.

Даже не могу понять в чем проблема, переменная Left сразу после создания равна 1, и так и не меняется... Вот текст ini файла.
[Window]
Left=200
Top=100
Width=500
Height=500

Иконка тоже не рисуется - при запуске программы на месте иконки 1 раз мигает черный квадрат.
Помогите, я уже и не знаю что делать... Все перепробовал. Может ошибка не  в коде работы с ini и рисования иконки, а где-то в другом месте?

ЗЫ: D7, KOL 2.09, замена System, Classes. Пробовал без замены - разницы нет.


 
Davlegov   (2005-07-06 01:21) [1]

Пути к иконке и ini-файлу, насколько я понимаю, должны быть правильные. У вас так есть?


 
micron   (2005-07-06 05:14) [2]

Ну естественно правильные.
ЗЫ: не в тему, но по поводу: иконка может быть любая? кол-во цветов или наличие альфа-канала имеют значение? Насколько я понял из kol.pas, то нет.


 
Thaddy   (2005-07-06 10:03) [3]

You have to keep drawing it!
You need to assign the OnPaint event, like:
procedure IconPaint(dummy:pointer;Ctr:Pcontrol;DC:HCD);
begin
Icons[1].Draw(dc,0,0);
end;

Fmain.OnPaint:=TOnPaint(MakeMethod( etc.


 
ECM ©   (2005-07-06 14:10) [4]

...З.Ы...По поводу отрисовки...
В любом случае для правильной отрисовки в любых ситуациях какого либо объекта, необходимо чтобы он (объект) всегда прорисовывался в полном объеме при приходе WM_PAINT (можно и WM_ERASEBKGND - в некоторых случаях это позволяет уменьшить ненужные "перемаргивания"). Thaddy это и имел ввиду....
...а в первом посте - этого нет Icons[1] рисуется на канве (это обертка вокруг DC) окна которое еще не появилось на экране. WM_PAINT - и вся прорисовка случится уже в цикле Run(Applet)..
А каким боком окно узнает что при прорисовке надо и Icons[1] рисовать?. В детях у FMain - Icons[1] не числится - значит рисовать "руками" перехватывая WM_PAINT (OnPaint)


 
micron   (2005-07-07 02:29) [5]

Хм... Извиняюсь за глупый вопрос, но как создать child объекта? Насколько я понял для этого предназначена ф-ция CreateParented, но она принимает только PControl, иконка же - PIcon. Или проще грузить ее и потом конвертить в битмап?


 
ECM ©   (2005-07-07 19:08) [6]

PIcon - это не оконный объект... Для его того чтобы загнать его отображение в child-объект проще всего (ИМХО) воспользоваться
PImageShow объектом...в функции NewImageShow первый параметр
AParent - родитель...


 
micron   (2005-07-08 00:51) [7]

Теперь все ясно. Вообще сказывается отсутвие детального описания по многим функциям...



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

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

Наверх





Память: 0.46 MB
Время: 0.013 c
2-1140275296
VAZMan
2006-02-18 18:08
2006.03.05
Регистрация пользователя


1-1138899343
webpauk
2006-02-02 19:55
2006.03.05
Закрытие окон


3-1137068778
начинающий5
2006-01-12 15:26
2006.03.05
Запрос


11-1119811388
Alexx2000
2005-06-26 22:43
2006.03.05
Работа с ComboBox в KOL


5-1126297047
TStas
2005-09-10 00:17
2006.03.05
Работает в disigntime но не работает в runtime





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