Главная страница
    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.011 c
15-1139757412
alexsis
2006-02-12 18:16
2006.03.05
2 вопроса


2-1140189073
The Sound
2006-02-17 18:11
2006.03.05
Складование побайтно 2х чисел.


1-1138874022
Doma
2006-02-02 12:53
2006.03.05
Путь к проеткув DesignTime


15-1139506703
Volf_555
2006-02-09 20:38
2006.03.05
Где достать фотографию листа в клетку? СРОЧНО!


1-1138560810
taz
2006-01-29 21:53
2006.03.05
Меняем вид компонентов





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