Форум: "Основная";
Текущий архив: 2003.08.25;
Скачать: [xml.tar.bz2];
ВнизВопрос про закладки и массив строк. Найти похожие ветки
← →
deninside (2003-08-13 22:37) [0]Мне нужно при открытии рисунка, добавлять новую закладку в TabControl (потому что добавлять закладку в PageControl я неумею), на TabControl лежит всего один TImage>Image1. При смене закладок, я в Image1 подгружаю рисунок соответствующий каждой заклаке.
При нажатии на Button1 я присваиваю каждому элементу массива адрес каждого рисунка.
var
Str:array[0..100] of String;
C:Integer;
implementation
.....
procedure ButtonClick;
If OpenDialog1.Execute then
begin
C:=C+1;
TabControl1.Tabs.Add(IntToStr(c));
str[c]:=OpenDialog1.FileName;
end;
end;
procedure TForm1.TabControl1Change(Sender: TObject);
begin
StatusBar1.Panels[0].Text:=ExtractFileName(Str[StrToInt(TabControl1.Ta bs.Text)]);
Image1.Picture.LoadFromFile(Str[StrToInt(TabControl1.Tabs.Text)]);
end;
но приложение виснет напрочь уже на первой строчке.
Вопрос(ы):
1. Как сделать так что бы при выполнении этого кода приложение не зависало?
2. Может этот код можно записать проще и грамотнее, тода как?
Если я непонятно написал и спросил, то поясню всем кому непонятно, очень уж надо идею реализовать.
← →
Моджахед (2003-08-13 23:51) [1]> но приложение виснет напрочь уже на первой строчке.
первая строка у тебя "var",
может, все таки, объяснишь по-человечески?
← →
Abelisto (2003-08-14 00:11) [2]Хм... я бы это делал примерно так:
==================================
Pictures: array of TPicture;
..................................
procedure TForm1.BtnInsertClick(Sender: TObject);
begin
if od.Execute then
begin
TabControl1.Tabs.Add(ExtractFileName(od.FileName));
SetLength(Pictures,TabControl1.Tabs.Count);
Pictures[TabControl1.Tabs.Count-1] := TPicture.Create;
Pictures[TabControl1.Tabs.Count-1].LoadFromFile(od.FileName);
TabControl1.TabIndex := TabControl1.Tabs.Count-1;
TabControl1Change(TabControl1); // здесь вызов метода потому как событие TabControl1Change не вызывается при программной смене закладки
end;
end;
procedure TForm1.TabControl1Change(Sender: TObject);
begin
Image1.Picture.Assign(Pictures[TabControl1.TabIndex]); // Image1 лежит на клиентской части TabControl1
end;
====================================================
Проверено на Delphi 7
Ежели кто подскажет лучшее решение - буду безмерно благодарен :)
Спасибо за внимание.
ЗЫЖ И не забывать освобождать Pictures :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.08.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.013 c