Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/39: Рейтинг темы: голосов - 39, средняя оценка - 4.92
19 / 19 / 9
Регистрация: 15.12.2010
Сообщений: 120

Закрытие листа в PageControl [Delphi 7]

19.06.2011, 17:05. Показов 8655. Ответов 54
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как задать изначально чтобы 1 страница, да и вообще единственная не могла закрываться:
компонент sPageControl в нём функция ShoeCloseBtns=true
как написать чтобы при закрытии остальных листов - последняя страница не закрывалась?

Добавлено через 2 минуты
дело в том что у меня на форме закрыть стоит
Delphi
1
2
3
4
5
6
7
8
begin
if sRichEdit1.Modified then  // Если в мемо есть изменения текущего файла, то ...
  if MessageDlg('Сохранить текущий файл?',mtWarning, [mbYes, mbNo], 0) = mrYes then
   if CurFName<>'' then
    sRichEdit1.Lines.SaveToFile(CurFName)   // просто сохраняем
   else
    N4.Click;  // просим выбрать путь
end;
а когда все листы закрываю вылетает ошибка, тк не может выполнить проверку листа на изменение
Delphi
1
if sRichEdit1.Modified then
а его нету, вот мне надо чтобы последняя страница не закрывалась
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.06.2011, 17:05
Ответы с готовыми решениями:

Полное закрытие Excel, а не текущего листа
Если я последней строкой макроса делаю ActiveWindow.Close ' или ActiveWorkbook.Closeто остается пустое окно Excel. А как и его...

Закрытие вкладки в PageControl - Не выходит определить, у какой вкладки нажата кнопка закрытия
Всем привет. Не могу оседлать pagecontrol. Проблема в том, что не могу определить у какой вкладки нажата кнопка закрытия. Допустим,...

PageControl в delphi
Народ возникла такая проблема: Мне нужно узнать какая страница PageControl сейчас активна или же, к примеру, если TabSheet с индексом 1...

54
19 / 19 / 9
Регистрация: 15.12.2010
Сообщений: 120
19.06.2011, 19:19  [ТС]
Студворк — интернет-сервис помощи студентам
БогДелфей, ща попробую

deathNC,ок, ща сделаю ремень безопасности)

Добавлено через 2 минуты
БогДелфей, попробовал, поставил изначально ShowCloseBtns:=False, но при создании новых листов они выглядят как 1, тоесть их закрыть нельзя(

Добавлено через 1 минуту
Arcor, такой способ тоже пробовал, но если выбрать лист по середине то удаляется последний(

Добавлено через 56 секунд
вообще чтоль никаких способов нету?

Добавлено через 1 минуту
deathNC, ограничил но всё равно ошибка, значит это не из-за этого
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
19.06.2011, 19:19
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
  if PageControl1.PageCount = 1 then
    Button1.Enabled := False
  else
    Button1.Enabled := True;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  PageControl1.ActivePage.Destroy;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var Tab: TTabSheet;
begin
  Tab := TTabSheet.Create(Self);
  Tab.PageControl := PageControl1;
end;
при таком коде удаляется последний? в жизни не поверю, удаляется только тот который активен !!!
1
Заблокирован
19.06.2011, 19:23
Цитата Сообщение от _антон_ Посмотреть сообщение
попробовал, поставил изначально ShowCloseBtns:=False, но при создании новых листов они выглядят как 1, тоесть их закрыть нельзя(
значит чота не так сделал.
изначально у тя кнопки запрещены, открываешь форму одна вкладка без кнопки. так?
потом в событие где ты создаёшвкладку дописываешь ShowCloseBtns:=тру, тоесть разрешаешь кнопки. так?
1
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
19.06.2011, 19:25
вот глянь мож ты чего не то сделал
Вложения
Тип файла: zip pagecontrol.zip (556.5 Кб, 17 просмотров)
1
19 / 19 / 9
Регистрация: 15.12.2010
Сообщений: 120
19.06.2011, 19:26  [ТС]
щас всё перепишу попробую, делал по такой же методики


смотрите а может сделать ещё pagecontrol2 у которого 1 страницу можно закрыть, и сделать так чтобы в pagecontrol1 создавались листы и он брал их из 2 - которые закрываются??? потомучто если закрыть созданные страницы то остаётся одна - которую нельзя закрыть(это хорошо), но если с неё создать остальные страницы то они будут создаваться по коду с основного листа - который нельзя закрыть, а можно написать чтобы остальные листы создавались на подобии pagecontrol2 у которого главный лист можно закрыть??
но как так сделать?
0
Заблокирован
19.06.2011, 19:26
Цитата Сообщение от Arcor Посмотреть сообщение
при таком коде удаляется последний? в жизни не поверю, удаляется только тот который активен !!!
наверно последняя у него и активна, а он нажимает удалить на неактивной
1
19 / 19 / 9
Регистрация: 15.12.2010
Сообщений: 120
19.06.2011, 19:31  [ТС]
БогДелфей, да 1 кнопка без кнопки, кнопки создаются, но если их опять закрыть и оставить 1 страницу которая не закрывается и нажать на кнопку создать лист то он создаёт по подобии 1 листа а у 1 листа кнопка не активна
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
var Sheet:TTabSheet;
begin
with TsRichEdit.Create(Self) do
  begin
  Sheet:=TsTabSheet.Create(sPageControl1);
Sheet.Caption:='Новая страница  '+IntToStr(sPageControl1.PageCount)+'   ';
Sheet.PageControl:=sPageControl1;
sRichEdit1 := TsRichEdit.Create(Self);
sRichEdit1.Parent := Sheet;
sRichEdit1.Align:=alClient;
sRichEdit1.Font:=sRichEditMain.Font;// чтобы брал шрифт и размер с главной формы, а она скрыта
end;
end;
Добавлено через 2 минуты
Arcor, о заработало!!! спасибо, щас посмотрю в чём проблема

но всё-таки интересно как сделать чтобы на вкладке была кнопка закрыть))

Добавлено через 45 секунд
БогДелфей, тоже верно, хмм
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
19.06.2011, 19:32
думаю так же само, хотя нету у простого пейдж контрола таких кнопок насколько я знаю, в этом же самом обработчике в котором я делал сделай деактивацию кнопки закрывашки, крестик типа
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
19.06.2011, 19:36
удали эту строчку, это у меня дельфи ХЕ, удали и будет работаьь все ок дальше
0
19 / 19 / 9
Регистрация: 15.12.2010
Сообщений: 120
19.06.2011, 19:36  [ТС]
Arcor, чёто у меня в прожект 2 выдаёт ошибку MainFormOnTaskbar - не обнаружен
Delphi
1
  Application.MainFormOnTaskbar := True;
Добавлено через 48 секунд
Arcor, да, нету, это компонент alpha

Добавлено через 2 минуты
Arcor, стой а как он у тебя создаёт окно чтобы писать когда нету кода создании мемо или ритча?
0
Заблокирован
19.06.2011, 19:37
а так чо бует?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var Sheet:TTabSheet;
begin
with TsRichEdit.Create(Self) do
  begin
  sPageControl1.ShowCloseBtns:=True;
  Sheet:=TsTabSheet.Create(sPageControl1);
Sheet.Caption:='Новая страница  '+IntToStr(sPageControl1.PageCount)+'   ';
Sheet.PageControl:=sPageControl1;
sRichEdit1 := TsRichEdit.Create(Self);
sRichEdit1.Parent := Sheet;
sRichEdit1.Align:=alClient;
sRichEdit1.Font:=sRichEditMain.Font;
end;
end;
1
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
19.06.2011, 19:37
Цитата Сообщение от _антон_ Посмотреть сообщение
Arcor, стой а как он у тебя создаёт окно чтобы писать когда нету кода создании мемо или ритча?
не понял, по русски можно
1
19 / 19 / 9
Регистрация: 15.12.2010
Сообщений: 120
19.06.2011, 19:40  [ТС]
Arcor, да, разобрался уже заработало)
окно где можно писать загатка)) в моём делфи так нельзя, наверное, или это секрет какойто

Добавлено через 1 минуту
Arcor, ну у меня прописано
Delphi
1
2
3
4
sRichEdit1 := TsRichEdit.Create(Self);
sRichEdit1.Parent := Sheet;
sRichEdit1.Align:=alClient;
sRichEdit1.Font:=sRichEditMain.Font;
а у тебя нет, он просто создаёт готовую и активную TabShell для заполнения, а я когда делал по типа твоего кода он без окна заполнения создавал, ну мне и пришлось прописывать мемо или рич
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
19.06.2011, 19:41
Цитата Сообщение от _антон_ Посмотреть сообщение
окно где можно писать загатка
я все равно не понял что ты хочешь
1
19 / 19 / 9
Регистрация: 15.12.2010
Сообщений: 120
19.06.2011, 19:41  [ТС]
БогДелфей, ща попробую
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
19.06.2011, 19:42
ну я же просто макет показал как сделать, я же не писал тебе готовый проект со всеми примудростями...
0
19 / 19 / 9
Регистрация: 15.12.2010
Сообщений: 120
19.06.2011, 19:49  [ТС]
БогДелфей, не всё равно так

Добавлено через 2 минуты
Arcor, а у меня делфи глюканул, щас увидел, просто я открыл проект и у меня с rich уже был, а в коде его не было хех))
смотри, код работает но если в начале нажать на кнопку Del то ошибку выдаёт(с самого начало это если открыл и сразу закрыл страницу)

Добавлено через 3 минуты
Arcor, как прописать чтобы если листов нету то кнопка не активна, а когда листы появляются то активна кроме того пока не останется последний лист
0
Заблокирован
19.06.2011, 19:49
хз, попозже посмарю чо там как
1
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
19.06.2011, 19:50
Цитата Сообщение от _антон_ Посмотреть сообщение
код работает но если в начале нажать на кнопку Del то ошибку выдаёт(с самого начало это если открыл и сразу закрыл страницу)
как в дет саде, что нужно прям все предусмотреть ???Я же сказал я просто пример написал, а не рабочую программу, программу готовую я за так тебе не буду писать же... Ну естественно ошибка будет, а сам никак не можешь додуматься это исправить как то?
1
19 / 19 / 9
Регистрация: 15.12.2010
Сообщений: 120
19.06.2011, 19:51  [ТС]
Arcor, или сделать чо с самого начала 1 лист есть

Добавлено через 26 секунд
Arcor, ну попробую, спасибо за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.06.2011, 19:51

Delphi - PageControl и Button
На форме имеется: 2 кнопки Button1, Button2; PageControl с вкладками в количестве - 4 Описание: Button1 открывает предыдущую...

PageControl в Delphi (динамическое создание вкладок)
Уважаемые, разверните и пните в нужную сторону... Никак не могу придумать каким образом осуществить динамическое создание вкладок в...

Delphi Закрытие файла
Всем привет. Хотел попросить о помощи. Суть моей просьбы. Создал я программу через Delphi. Поставил кнопочку и прописал ей procedure...

DELPHI закрытие программы
Ничего не могу понять, написал код программы, но в конце выдает ошибку на закрытие, может кто подскажет в чем дело??? unit Oborot...

Открытие и закрытие файла из Delphi в C#
Добрый день! Подскажите, вот есть код из делфи - это открытие файла и сохранение procedure TForm1.btn2Click(Sender:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru