IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Написание программы..., :)
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 89
Пол: Мужской

Репутация: -  0  +


Всем дрясте smile.gif Я опять тут smile.gif
Вот пишу программу и возникла у меня масса вопросов... т.к сильно с делфи я не знаком, в основном на C#, но вот возникла такая потребность.. помогите чем сможете smile.gif

Вопрос 1:
Как запретить растягивать форму, т.е чтобы она была такого же размера как задал я smile.gif Убрать кнопку развернуть и т.д.

Вопрос 2:
Что подскажете насчёт настроек программы... лучше всё записывать в файл, реестр, ини файл и т.д и почему.

Спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






1). Запретить растягивать форму - масса способов. Самый простой - установи BorderStyle в bsDialog или bsSingle.
2). А вот тут фишка коварная. Delphi очень любит ini-шки в \Windows или \Windows\system32. Так что лучше указывать ему конкретный путь (легко делается через ParamStr(0), ExtractFilePath и конкатацию строк)... А вообще смотри сам - реестр-то он теряется после переустановки Windows...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 89
Пол: Мужской

Репутация: -  0  +


BlackShadow
1) А ещё какие способы есть? Именно написать какую-нить функцию и чтоб кнопка РАЗВЕРНУТь была недоступна...
2) Спасибо.. буду думать

Ещё такой вопросик.
На главной форме у меня допустим была кнопка, мне понадобилось создать новую форму и я переместил эту кнопку на новую форму, но теперь все остальные функции, ссылаются на то что кнопка и соот-но ф-я теперь недоступны.. как к ней теперь обращаться и соотственно как этой фун-ии обращаться к фун-ям на другой форме. Спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






2). В твоих аббр. я нич. не пон.

1). Посмотри в MSHelp доку по SetWindowLong и параметр SWL_STYLE а так же CreateWindow а заодно и CreateWindowEx
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


У формы есть свойство... склероз, как же называется... BorderIcons. Там выставь biMaximize в false. Все остальные bi* -- по желанию тоже =)

Но как я понял, ты это и так сделал? Тогда еще сделай, как предлагает BlackShadow --
Цитата("BlackShadow")
установи BorderStyle в ... bsSingle


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Бывалый
***

Группа: Пользователи
Сообщений: 180
Пол: Мужской

Репутация: -  2  +


Romario
Как обращаться к другим формам? Дельфа по умолчанию для каждой новой формы создает отдельный модуль, вот и пропиши в строке uses нового модуля название старого и наоборот... ну и обращайся через имя соответствующего объекта (form1.button1....); а можно все классы в один модуль запихать, только придется ресурсы формы подключать вручную - добавить строчку {$R form2.dfm}, так как *.dfm означает, что подгружаться будет dfm-файл с именем модуля, а вовсе не все dfm-файлы в каталоге... правда запихивать все формы в один модуль стоит только в окончательном варианте, так как дельфа показывает (и дает редактировать) только первую из них

Сообщение отредактировано: P@sh@ -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






В разделе Implementation Unit'а с Form1 Пишешь что-то типа
Uses UnitWithForm2;

А затем спокойно общаешься с ней через ту переменную, которая там объявлена в стиле
Var
Form2:TForm2;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Пионер
**

Группа: Пользователи
Сообщений: 89
Пол: Мужской

Репутация: -  0  +


BlackShadow
Спасибо, понял. Но теперь вылетает Access violation at adress ... 2 раза, потом программа запускается, но естевственно работает не правильно sad.gif

Добавлено (8.05.04 0:47):
Не подскажете где можно взять такие же иконки, как на кнопках в ИЕ или Експлорере в ХП? Очень нужно. Спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Access Violation вылетает потому, что ты спешишь лезть к Form2. Я так понял ты пытаешься сделать это из Form1.OnCreate, а в это время Form2 ещё не создана. Попробуй поченять порядок создания форм в .Dpr.

А иконки можно надыбать легко и просто Image Editor + PrintScreen smile.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Пионер
**

Группа: Пользователи
Сообщений: 89
Пол: Мужской

Репутация: -  0  +


Цитата(BlackShadow @ 8.05.04 6:39)
Access Violation вылетает потому, что ты спешишь лезть к Form2. Я так понял ты пытаешься сделать это из Form1.OnCreate, а в это время Form2 ещё не создана. Попробуй поченять порядок создания форм в .Dpr.

А иконки можно надыбать легко и просто Image Editor + PrintScreen smile.gif

Скорее всего....
Насчёт иконок я имел ввиду готовые ) Может есть у кого или знает где взять.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


...
*****

Группа: Пользователи
Сообщений: 1 347
Пол: Мужской

Репутация: -  3  +


Romario и вам здрасти <_< (извиняюсь за флейм)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Пионер
**

Группа: Пользователи
Сообщений: 89
Пол: Мужской

Репутация: -  0  +


BlackShadow
Да вроде нет... всё создаёться последовательно..

Код
Application.CreateForm(TMainForm, MainForm);
 Application.CreateForm(THolidayForm, HolidayForm);
 Application.CreateForm(TFormSettings, FormSettings);
 Application.Run;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гость






Если ты из MainForm.OnCreate пытаешься дотянуться до HolidayForm или до FormSettings, а так же из HolidayForm.OnCreate доFormSettings, то ничего тут правильного нет! В этот момент формы ещё не созданы!

Сообщение отредактировано: BlackShadow -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Пионер
**

Группа: Пользователи
Сообщений: 89
Пол: Мужской

Репутация: -  0  +


BlackShadow
только что просмотрел и вроде ты прав.. а как надо тогда сделать? Что в коде подправить?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Гость






Поменяй порядок создания форм. Например:
 Application.CreateForm(TFormSettings, FormSettings);
Application.CreateForm(THolidayForm, HolidayForm);
Application.CreateForm(TMainForm, MainForm);
Application.Run;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Пионер
**

Группа: Пользователи
Сообщений: 89
Пол: Мужской

Репутация: -  0  +


BlackShadow
Пробовал, не получается...
Если так, то сначала появляется форма TFormSettings,а у меня главная форма TMainForm. т.е она должна появляться первой, а все остальные при нажатии на кнопки...
В модуле главной формы в функции TMainForm.CreateForm(); она действительно обращается к объктам формы TFormSettings...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


...
*****

Группа: Пользователи
Сообщений: 1 347
Пол: Мужской

Репутация: -  3  +


Долго я ждал пока ты изменишь название темы.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Гость






А у форм, как и у прочего остального визуального есть св-во Visible. Поставь туда False, и создавай в указанном мною порядке.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Пионер
**

Группа: Пользователи
Сообщений: 89
Пол: Мужской

Репутация: -  0  +


BlackShadow
Так получаеться что одна форма обращается к другой. Т.е форма настроек создаётся первой и обращается к главной...

Насчёт Visible тоже не понятно... ставлю Visible - False, а она всё равно появляется...

Сообщение отредактировано: Romario -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Гость






Главная форма появляется ПОЛЮБОМУ. Чтобы спрятать её надо перед созданием форм в .Dpr вставить строку Application.ShowMainForm:=False. А вообще можно вывести все переменные, нужные и там и там за пределы класса формы.
 К началу страницы 
+ Ответить 

2 страниц V  1 2 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 15:23
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name