Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как сделать диалог "Настройка"


Автор: Alex103 20.3.2005, 06:45
Как мне сделать следующее мне нужно что-бы при нажатии на кнопке настройка появлялась форма в этой форме в Чек боксах или в разном другом выбрать определенные настройки а все это присенилось лиш тогда когда будет нажата клавиша применить. Обьясните все по порядку

Автор: Vit 20.3.2005, 07:33
Появлялась форма - создаёшьл новую форму в проекте, показать -

Form2.Showmodal;

Запоминать - ну сам должен придумать чего, как и где ты будешь запоминать

Автор: Alex103 20.3.2005, 07:37
Цитата(Vit @ 20.3.2005, 07:33)
Появлялась форма - создаёшьл новую форму в проекте, показать -

Form2.Showmodal;

Запоминать - ну сам должен придумать чего, как и где ты будешь запоминать

А конкретнее!!!

Автор: Vit 20.3.2005, 07:38
Не, писать за тебя не буду... Это ты конкретнее задавай вопрос, что именно тебе не понятно

Автор: Alex103 20.3.2005, 07:55
Цитата(Vit @ 20.3.2005, 07:38)
Не, писать за тебя не буду... Это ты конкретнее задавай вопрос, что именно тебе не понятно

Спокойно!! Щас я все растолкую!!! Мне не понятно следующее как сделать так что-бы при загрузке какой-то 2 формы которая грузиться при нажатии на кнопке на 1 форме. Сделать так что-бы при изменении каких-то параметров 1 формы (но что-бы эти изменения прошли на 2 форме) это все применилось при нажатии на кнопку. Вроде все понятно!!!!!

Автор: Vit 20.3.2005, 09:24
Во второй форме можно обратиться к первой по имени:

Код

Form1.memo1.enabled:=checkbox1.checked;

Автор: ~FoX~ 21.3.2005, 13:39
Ни че не понял
Код

procedure AplyPress(sender: TObject);
begin
  Form1.Left := Form2.SpinEdit1.Value;
end;

Так что ли?
Если изменения должны сохраниться, то исползуй ини файлы или реестр.

Автор: Alex103 22.3.2005, 02:28
Цитата(Vit @ 20.3.2005, 09:24)
Во второй форме можно обратиться к первой по имени:

Код

Form1.memo1.enabled:=checkbox1.checked;

Я просто не могу подклячить 2 форму к первой так как уже подключил 1 к 3 и как только я юзах для 3 формы прописываю 1 то мне выдаеться ошибка.

Автор: Poseidon 22.3.2005, 04:05
Цитата(Alex103 @ 22.3.2005, 02:28)
Я просто не могу подклячить 2 форму к первой так как уже подключил 1 к 3 и как только я юзах для 3 формы прописываю 1 то мне выдаеться ошибка.

Значит так. Я обычно делаю следующим образом:
В unit главной формы в разделе interface в Uses (там где все юниты прописаны) прописываю все unit проекта. А уже в дополнительных модулях прописываю юнит главной формы в разделе implementation, т.е там где по сути код. В противном случае генерируется фатальная ошибка "Circular unit reference to '<element>'". Видимо именно с ней ты и столкнулся.

Если ничего не понятно, то вот пример:

Unit главной формы:
Код
unit MainUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Unit2, Unit3, Unit4;   // здесь все и прописываеся.

type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// здесь процедуры и функции

end.



Unit НЕглавной формы:
Код
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm2 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

Uses MainUnit // здесь прописан Unit главной формы.

// здесь процедуры и функции

end.

Автор: mvdr 22.3.2005, 06:19
вопрос: а зачем вторая форма? Если надо вывести меню "настройка", то его удобнее выводить в CheckBox, чтобы был выбор пунктов. Только не легче ли сделать этот checkBox на отдельной Panel и при выборе где нибудь "настройка" все остальное делать не видимым, а эту
Код

Panel1.Visible:=true;
? Проще и удобнее.
Я так понял вторая форма нужна лишь для настройки, так зачем "губить" ради этого форму?

Автор: Poseidon 23.3.2005, 01:23
Femida, ну хочет человек отдельную форму и все тут.

Автор: Alex103 23.3.2005, 02:01
Цитата(Femida @ 22.3.2005, 06:19)
вопрос: а зачем вторая форма? Если надо вывести меню "настройка", то его удобнее выводить в CheckBox, чтобы был выбор пунктов. Только не легче ли сделать этот checkBox на отдельной Panel и при выборе где нибудь "настройка" все остальное делать не видимым, а эту
Код

Panel1.Visible:=true;
? Проще и удобнее.
Я так понял вторая форма нужна лишь для настройки, так зачем "губить" ради этого форму?

Пойми меня правильно я не только хочу понять как сделать диалог настройка но и еще научиться программировать. Панелькой я бы и сам сделал но вот таким способом который предложил Посейдон немного сложнее вот я и хочу понять все тонкости.
Добавлено @ 02:03
Цитата(Poseidon @ 22.3.2005, 04:05)
Цитата(Alex103 @ 22.3.2005, 02:28)
Я просто не могу подклячить 2 форму к первой так как уже подключил 1 к 3 и как только я юзах для 3 формы прописываю 1 то мне выдаеться ошибка.

Значит так. Я обычно делаю следующим образом:
В unit главной формы в разделе interface в Uses (там где все юниты прописаны) прописываю все unit проекта. А уже в дополнительных модулях прописываю юнит главной формы в разделе implementation, т.е там где по сути код. В противном случае генерируется фатальная ошибка "Circular unit reference to '<element>'". Видимо именно с ней ты и столкнулся.

Если ничего не понятно, то вот пример:

Unit главной формы:
Код
unit MainUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Unit2, Unit3, Unit4;   // здесь все и прописываеся.

type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// здесь процедуры и функции

end.



Unit НЕглавной формы:
Код
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm2 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

Uses MainUnit // здесь прописан Unit главной формы.

// здесь процедуры и функции

end.

Именно эта ошибка у меня и вылетала. Спасибо тебе огромное. Вот тебе + к репутации!!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)