![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
Romario |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 89 Пол: Мужской Репутация: ![]() ![]() ![]() |
Всем дрясте
![]() ![]() Вот пишу программу и возникла у меня масса вопросов... т.к сильно с делфи я не знаком, в основном на C#, но вот возникла такая потребность.. помогите чем сможете ![]() Вопрос 1: Как запретить растягивать форму, т.е чтобы она была такого же размера как задал я ![]() Вопрос 2: Что подскажете насчёт настроек программы... лучше всё записывать в файл, реестр, ини файл и т.д и почему. Спасибо |
BlackShadow |
![]()
Сообщение
#2
|
Гость ![]() |
1). Запретить растягивать форму - масса способов. Самый простой - установи BorderStyle в bsDialog или bsSingle.
2). А вот тут фишка коварная. Delphi очень любит ini-шки в \Windows или \Windows\system32. Так что лучше указывать ему конкретный путь (легко делается через ParamStr(0), ExtractFilePath и конкатацию строк)... А вообще смотри сам - реестр-то он теряется после переустановки Windows... |
Romario |
![]()
Сообщение
#3
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 89 Пол: Мужской Репутация: ![]() ![]() ![]() |
BlackShadow
1) А ещё какие способы есть? Именно написать какую-нить функцию и чтоб кнопка РАЗВЕРНУТь была недоступна... 2) Спасибо.. буду думать Ещё такой вопросик. На главной форме у меня допустим была кнопка, мне понадобилось создать новую форму и я переместил эту кнопку на новую форму, но теперь все остальные функции, ссылаются на то что кнопка и соот-но ф-я теперь недоступны.. как к ней теперь обращаться и соотственно как этой фун-ии обращаться к фун-ям на другой форме. Спасибо |
BlackShadow |
![]()
Сообщение
#4
|
Гость ![]() |
2). В твоих аббр. я нич. не пон.
1). Посмотри в MSHelp доку по SetWindowLong и параметр SWL_STYLE а так же CreateWindow а заодно и CreateWindowEx |
trminator |
![]()
Сообщение
#5
|
Четыре квадратика ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: ![]() ![]() ![]() |
У формы есть свойство... склероз, как же называется... BorderIcons. Там выставь biMaximize в false. Все остальные bi* -- по желанию тоже =)
Но как я понял, ты это и так сделал? Тогда еще сделай, как предлагает BlackShadow -- Цитата("BlackShadow") установи BorderStyle в ... bsSingle -------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
P@sh@ |
![]()
Сообщение
#6
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: ![]() ![]() ![]() |
Romario
Как обращаться к другим формам? Дельфа по умолчанию для каждой новой формы создает отдельный модуль, вот и пропиши в строке uses нового модуля название старого и наоборот... ну и обращайся через имя соответствующего объекта (form1.button1....); а можно все классы в один модуль запихать, только придется ресурсы формы подключать вручную - добавить строчку {$R form2.dfm}, так как *.dfm означает, что подгружаться будет dfm-файл с именем модуля, а вовсе не все dfm-файлы в каталоге... правда запихивать все формы в один модуль стоит только в окончательном варианте, так как дельфа показывает (и дает редактировать) только первую из них Сообщение отредактировано: P@sh@ - 6.05.2004 18:17 |
BlackShadow |
![]()
Сообщение
#7
|
Гость ![]() |
В разделе Implementation Unit'а с Form1 Пишешь что-то типа
Uses UnitWithForm2; А затем спокойно общаешься с ней через ту переменную, которая там объявлена в стиле Var Form2:TForm2; |
Romario |
![]()
Сообщение
#8
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 89 Пол: Мужской Репутация: ![]() ![]() ![]() |
BlackShadow
Спасибо, понял. Но теперь вылетает Access violation at adress ... 2 раза, потом программа запускается, но естевственно работает не правильно ![]() Добавлено (8.05.04 0:47): Не подскажете где можно взять такие же иконки, как на кнопках в ИЕ или Експлорере в ХП? Очень нужно. Спасибо. |
BlackShadow |
![]()
Сообщение
#9
|
Гость ![]() |
Access Violation вылетает потому, что ты спешишь лезть к Form2. Я так понял ты пытаешься сделать это из Form1.OnCreate, а в это время Form2 ещё не создана. Попробуй поченять порядок создания форм в .Dpr.
А иконки можно надыбать легко и просто Image Editor + PrintScreen ![]() |
Romario |
![]()
Сообщение
#10
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 89 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(BlackShadow @ 8.05.04 6:39) Access Violation вылетает потому, что ты спешишь лезть к Form2. Я так понял ты пытаешься сделать это из Form1.OnCreate, а в это время Form2 ещё не создана. Попробуй поченять порядок создания форм в .Dpr. А иконки можно надыбать легко и просто Image Editor + PrintScreen ![]() Скорее всего.... Насчёт иконок я имел ввиду готовые ) Может есть у кого или знает где взять. |
AlaRic |
![]()
Сообщение
#11
|
... ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 347 Пол: Мужской Репутация: ![]() ![]() ![]() |
Romario и вам здрасти <_< (извиняюсь за флейм)
|
Romario |
![]()
Сообщение
#12
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 89 Пол: Мужской Репутация: ![]() ![]() ![]() |
BlackShadow
Да вроде нет... всё создаёться последовательно.. Код Application.CreateForm(TMainForm, MainForm); Application.CreateForm(THolidayForm, HolidayForm); Application.CreateForm(TFormSettings, FormSettings); Application.Run; |
BlackShadow |
![]()
Сообщение
#13
|
Гость ![]() |
Если ты из MainForm.OnCreate пытаешься дотянуться до HolidayForm или до FormSettings, а так же из HolidayForm.OnCreate доFormSettings, то ничего тут правильного нет! В этот момент формы ещё не созданы!
Сообщение отредактировано: BlackShadow - 8.05.2004 14:04 |
Romario |
![]()
Сообщение
#14
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 89 Пол: Мужской Репутация: ![]() ![]() ![]() |
BlackShadow
только что просмотрел и вроде ты прав.. а как надо тогда сделать? Что в коде подправить? |
BlackShadow |
![]()
Сообщение
#15
|
Гость ![]() |
Поменяй порядок создания форм. Например:
Application.CreateForm(TFormSettings, FormSettings); |
Romario |
![]()
Сообщение
#16
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 89 Пол: Мужской Репутация: ![]() ![]() ![]() |
BlackShadow
Пробовал, не получается... Если так, то сначала появляется форма TFormSettings,а у меня главная форма TMainForm. т.е она должна появляться первой, а все остальные при нажатии на кнопки... В модуле главной формы в функции TMainForm.CreateForm(); она действительно обращается к объктам формы TFormSettings... |
AlaRic |
![]()
Сообщение
#17
|
... ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 347 Пол: Мужской Репутация: ![]() ![]() ![]() |
Долго я ждал пока ты изменишь название темы.
|
BlackShadow |
![]()
Сообщение
#18
|
Гость ![]() |
А у форм, как и у прочего остального визуального есть св-во Visible. Поставь туда False, и создавай в указанном мною порядке.
|
Romario |
![]()
Сообщение
#19
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 89 Пол: Мужской Репутация: ![]() ![]() ![]() |
BlackShadow
Так получаеться что одна форма обращается к другой. Т.е форма настроек создаётся первой и обращается к главной... Насчёт Visible тоже не понятно... ставлю Visible - False, а она всё равно появляется... Сообщение отредактировано: Romario - 9.05.2004 17:41 |
BlackShadow |
![]()
Сообщение
#20
|
Гость ![]() |
Главная форма появляется ПОЛЮБОМУ. Чтобы спрятать её надо перед созданием форм в .Dpr вставить строку Application.ShowMainForm:=False. А вообще можно вывести все переменные, нужные и там и там за пределы класса формы.
|
![]() ![]() |
![]() |
Текстовая версия | 8.07.2025 19:57 |