Форум: "Основная";
Текущий архив: 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