Главная страница
    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.01 c
6-38427
tga
2002-12-20 12:53
2003.02.13
TIdHTTP. Как начать работу?


3-38110
radix
2003-01-28 08:58
2003.02.13
Как легко и просто создать хранимую процедуру из программы ?


1-38177
wam
2003-02-04 18:11
2003.02.13
Вложение конструкторов


7-38579
alex_bf
2002-12-07 06:35
2003.02.13
Загрузка Win 9x


4-38635
Wassily
2003-01-02 18:14
2003.02.13
Работа с мышью





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