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

Вниз

Вопрос по сохранению иконки   Найти похожие ветки 

 
msoftware   (2003-02-04 14:07) [0]

Здравствуйте мастера! Вопрос есть один:
Ниже представлен один код, но там какая-то ошибка, непойму:
type FSM = record
...
FrmMain_Width: integer;
...
FrmMain_Height: integer;
...
VertMenu_BtnImages: array[0..10] of array [0..55] of TIcon; //Трехмерный массив
...
end;

...

procedure TfrmMain.FormCreate(Sender: TObject);
var f: File of FSM;
GSet: FSM;
Icon: TIcon;
begin
Icon:=TIcon.Create;
ImageList2.AddIcon(GSet.VertMenu_BtnImages[0][0]);
END;

МОЖЕТ КТО ЗНАЕТ В ЧЕМ ЗДЕСЬ ДЕЛО???


 
han_malign   (2003-02-04 14:16) [1]

Создаешь какую-то пустую пиктограмму(Icon), ссылку на которую(а значит и память) тут-же теряешь, а потом пытаешся вставить в лист левый, и вероятно несуществующий объект (типа TIcon) из массива который забит стековым мусором (локальная запись GSet - нигде не инициализируется)
- и что по твоему должно получиться


 
msoftware   (2003-02-04 14:20) [2]

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ОЙ-Ой извиняюсь недописал, торопился вот он:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


----------
СЧИТЫВАНИЕ ИЗ ФАЙЛА
----------

type FSM = record
...
FrmMain_Width: integer;
...
FrmMain_Height: integer;
...
VertMenu_BtnImages: array[0..10] of array [0..55] of TIcon; //Трехмерный массив
...
end;

...

procedure TfrmMain.FormCreate(Sender: TObject);
var f: File of FSM;
GSet: FSM;
Icon: TIcon;
begin
Icon:=TIcon.Create;
AssignFile(f,"MailSettings.fsm");
Reset(f);
Read(f,GSet);
ImageList2.AddIcon(GSet.VertMenu_BtnImages[0][0]);
END;
---------
ЗАПИСЬ В ФАЙЛ
----------


procedure TfrmMain.FormDestroy(Sender: TObject);
var f: File of FSM;
Save: FSM;
Icon: TIcon;
begin
Icon:=TIcon.Create;
assignFile(f,"MailSettings.fsm");
reset(f);
ImgIndex:=VertMenu.GetHeaderByIndex(H).GEtButtonByIndex(B).ImageIndex;
ImageList2.GetIcon(0,Save.VertMenu_BtnImages[0][0]);
write(f,Save);
closeFile(f);



 
msoftware   (2003-02-04 14:39) [3]

Ну че никто ни знает шоли???


 
han_malign   (2003-02-04 14:45) [4]

Ну-ну:
1. Зачем вообще - Icon:=TIcon.Create; - абсолютно ничего, кроме утечек памяти, не делающий код (то есть зачем он был изначально, до твоих переделок, понятно - для создания буфферного экземпляра межде файлом и TImageList-ом)
2. Если записал в файл указатель на экземпляр класса, а потом считал в другом сеансе, то это будет просто указатель на произвольный блок памяти.
3. LoadFromStream и SaveToStream не просто так к TIcon прицеплен, никто за тебя содержимое экземпляра по указателю на него(элементу массива) сохранять и восстанавливать не будет.

Короче сохранять и восстанавливать массив икон надо поэлементно, через LoadFromStream и SaveToStream, причем должен понимать что TIcon(nil).LoadFromStream/SaveToStream - Access Violation.


 
msoftware   (2003-02-05 09:29) [5]

> han_malign ©
Самый простой исходничок не подкинешь?


 
Anatoly Podgoretsky   (2003-02-05 09:49) [6]

Тут обсуждать абсолютно нечего, это просто надо все удалить.
Взяться за учебники по Дельфи.


 
msoftware   (2003-02-05 11:00) [7]

УУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУРРРРРРРРРРРРРРРРРРРРРРРРРРРАААААААААААААААААААААААААААААААААААААААА!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11
У МЕНЯ ПОЛУЧИИИИИИИИИИИЛЛЛЛЛЛЛОООООООООООООООООООООССССССССЬЬЬЬЬЬЬЬ!!!!!!!!!!!!!!!!!!!!!
ТОЛЬКО СОХРАНЯЕТ В 16 ЦВЕТОВ, никто незнает как сохранять в hicolor"e



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

Форум: "Основная";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
7-38613
_igor
2002-12-09 12:34
2003.02.13
Поиск файла по фрагменту имени


14-38440
Nick-From
2003-01-30 12:37
2003.02.13
Где делся Коля Быков ?


3-38062
BlackTiger
2003-01-26 21:24
2003.02.13
DevExpress: Как частично


1-38306
msoftware
2003-02-06 06:32
2003.02.13
Сохранение иконки в типизированный файл


1-38261
Brain
2003-02-03 12:06
2003.02.13
Tab Stop





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