Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2015, 16:38   #1
AB96
Пользователь
 
Регистрация: 20.10.2015
Сообщений: 22
По умолчанию Создать три формы в программе

Здравствуйте! В Delphi мне нужно создать программу для решения определённой задачи. Всё работает, но... Нужно сделать ТРИ формы: первая - заставка, которая закрывается по таймеру (работает), после этого открывается вторая форма - форма с паролем. Она работает. Но при вводе пароля должна открываться главная форма - третья, где непосредственно и находится всё самое главное. Но третья форма не открывается. Везде Unit'ы прописывал. Не подскажете, как правильно делать программу с тремя формами?
AB96 вне форума Ответить с цитированием
Старый 29.11.2015, 16:50   #2
tsar_
Форумчанин
 
Аватар для tsar_
 
Регистрация: 06.01.2011
Сообщений: 369
По умолчанию

А код засекречен?
У меня, например, дождь за окном, думаю, именно он блокирует мой телепатор-3000 (волны плохо проходят).
Программирую по необходимости
tsar_ вне форума Ответить с цитированием
Старый 29.11.2015, 16:54   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
третья форма не открывается.
Проект в архиве в студию.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.11.2015, 16:56   #4
AB96
Пользователь
 
Регистрация: 20.10.2015
Сообщений: 22
По умолчанию

Прошу прощения, забыл код.

UNIT 1:

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
 var login, pass: string;
  begin
      Login:='admin';
      pass:='3P1';
      if (Edit1.Text=Login) and (Edit2.Text=Pass) then
        begin
          Form2.Show;
          Form1.Visible:=false;
        end
     else
        ShowMessage('Неверный логин или пароль. Повторите ввод. ');

  end;

end.
UNIT 2:

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
 var login, pass: string;
  begin
      Login:='admin';
      pass:='3P1';
      if (Edit1.Text=Login) and (Edit2.Text=Pass) then
        begin
          Form2.Show;
          Form1.Visible:=false;
        end
     else
        ShowMessage('Неверный логин или пароль. Повторите ввод. ');

  end;

end.
UNIT 3:

Код:
unit Unit3;

interface

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

type
  TForm3 = class(TForm)
    Label1: TLabel;
    StringGrid1: TStringGrid;
    Button1: TButton;
    Button2: TButton;
    BitBtn1: TBitBtn;
    Button3: TButton;
    procedure FormActivate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.FormActivate(Sender: TObject);
 begin

  StringGrid1.Cells[1,0]:='Äèíàìî';
  StringGrid1.Cells[2,0]:='Ñïàðòàê';
  StringGrid1.Cells[3,0]:='ÖÑÊÀ';
  StringGrid1.Cells[4,0]:='B.O.D.';
  StringGrid1.Cells[5,0]:='The Shield';
  StringGrid1.Cells[6,0]:='N.W.O.';
  StringGrid1.Cells[7,0]:='A.P.A.';
  StringGrid1.Cells[8,0]:='Ðóáèí';
  StringGrid1.Cells[9,0]:='Çåíèò';
  StringGrid1.Cells[10,0]:='New Day';
  StringGrid1.Cells[0,1]:='Èãðà 1';
  StringGrid1.Cells[0,2]:='Èãðà 2';
  StringGrid1.Cells[0,3]:='Èãðà 3';
  StringGrid1.Cells[0,4]:='Èãðà 4';
  StringGrid1.Cells[0,5]:='Èãðà 5';
  StringGrid1.Cells[0,6]:='Èãðà 6';


 end;

procedure TForm3.Button1Click(Sender: TObject);
 begin
    ShowMessage('Неразбериха');
 end;

procedure TForm3.Button3Click(Sender: TObject);
 var i, j: Integer;
 begin
   with StringGRid1 do
    for i:=1 to RowCount-1 do
      for j:=1 to ColCount-1 do
        Cells[j, i]:='';
  end;

procedure TForm3.StringGrid1KeyPress(Sender: TObject; var Key: Char);
 begin
  if not (Key in ['0'..'9', #8, DecimalSeparator]) then Key:=#0;
 end;

procedure TForm3.Button2Click(Sender: TObject);
 var A: array [1..10] of integer;
                Sum,k1,i,code: integer;
 begin
    sum := 0;
    for i:=0 to StringGrid1.RowCount-1 do
      sum := sum + StrToIntDef(StringGrid1.Cells[0,i],0);
         ShowMessage('Ñóììà: '+IntToStr(Sum));

 end;

end.

Последний раз редактировалось Stilet; 29.11.2015 в 17:30.
AB96 вне форума Ответить с цитированием
Старый 29.11.2015, 16:57   #5
AB96
Пользователь
 
Регистрация: 20.10.2015
Сообщений: 22
По умолчанию

У меня две версии программы. Сейчас под рукой эта версия (тут первая форма - тоже заставка с паролем, а не по таймеру, как я писал выше. Но, думаю, это особо сильно сути не меняет).

Ссылка на проект в архиве: https://cloud.mail.ru/public/DESR/Cn87DcDcz

Я нашёл ошибку. Спасибо, помощь больше не нужна. Я забыл изменить Form2.Show на Form3.Show.

Последний раз редактировалось Stilet; 30.11.2015 в 18:04.
AB96 вне форума Ответить с цитированием
Старый 29.11.2015, 17:10   #6
tsar_
Форумчанин
 
Аватар для tsar_
 
Регистрация: 06.01.2011
Сообщений: 369
По умолчанию

В unit2 поменять (по минимуму):
Код:
uses unit1, Unit3;

{$R *.dfm}


procedure TForm2.Button1Click(Sender: TObject);
 var login, pass: string;
 begin
      Login:='admin';
      pass:='3P1';
      if (Edit1.Text=Login) and (Edit2.Text=Pass) then
        begin
          Form3.Show;
          Form2.Visible:=false;
        end
     else
        ShowMessage('Неверный логин или пароль. Повторите ввод. ');

  end;
Программирую по необходимости

Последний раз редактировалось tsar_; 29.11.2015 в 17:12.
tsar_ вне форума Ответить с цитированием
Старый 29.11.2015, 17:14   #7
AB96
Пользователь
 
Регистрация: 20.10.2015
Сообщений: 22
По умолчанию

Form2 почему-то не хочет закрываться после ввода пароля. Странно. Я прописал же:

Код:
          Form3.Show;
          Form2.Visible:=false;
AB96 вне форума Ответить с цитированием
Старый 29.11.2015, 17:27   #8
tsar_
Форумчанин
 
Аватар для tsar_
 
Регистрация: 06.01.2011
Сообщений: 369
По умолчанию

Цитата:
Form2 почему-то не хочет закрываться после ввода пароля
У меня все работает

В качестве оффтопа: разберитесь с формами, негоже главную форму приложения делать мимолетной заставкой. Сейчас закрыть вашу программу можно только через Диспетчер задач, шлепнув процесс.
Программирую по необходимости
tsar_ вне форума Ответить с цитированием
Старый 29.11.2015, 21:23   #9
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Мне кажется, либо будет проще создать одну форму и на ней три фрейма. А затем поочередно их воспроизвести. Создавать и удалять компоненты динамически, думаю, ТС умеет.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 30.11.2015, 16:30   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Вот так, штоль, надо?


Прога тут.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
три задачи в Паскале: создать запись, вычислить выражение и решить уравнение kavkazeva Паскаль, Turbo Pascal, PascalABC.NET 1 14.12.2013 15:16
Три цикла в одной программе C# NeoX_2011 Помощь студентам 1 18.03.2012 16:56
оздать форму на форме разработать меню и создать кнопки конец и о программе, изменить цвет формы и иконку Андрей_И Общие вопросы Delphi 1 24.05.2011 08:58
создать форму на форме разработать меню и создать кнопки конец и о программе Андрей_И Помощь студентам 1 23.05.2011 23:42
как создать матрицу три на три в мемо (делфи) Lordigan Помощь студентам 0 15.03.2010 18:37