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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2017, 22:15   #1
BlackTerror
 
Регистрация: 29.10.2017
Сообщений: 4
По умолчанию Delphi

Я создал 4 формы и связал их кнопкой Далее (код для нее внизу), и дело в том, что код рабочий, но, когда я кликаю Далее на первой форме (Form1), он сразу перескакивает на третью форму и пропускает вторую, а затем когда нажимаю Далее уже на третьей форме, он выдает ошибку <Project raised exception class EStackOverflow with message 'Stack overflow'>. Возможно какие то проблемы с циклом, но я понять не могу. Подскажите!

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Edit1: TEdit;
    Label9: TLabel;
    Edit2: TEdit;
    Label10: TLabel;
    Edit3: TEdit;
    Label11: TLabel;
    Edit4: TEdit;
    Label12: TLabel;
    Edit5: TEdit;
    Label13: TLabel;
    Label14: TLabel;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Edit10: TEdit;
    Edit11: TEdit;
    Edit12: TEdit;
    Edit13: TEdit;
    Label15: TLabel;
    Edit14: TEdit;
    Panel3: TPanel;
    BitBtn1: TBitBtn;
    procedure BitBtn1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
      procedure ShowForm;
    { Private declarations }
  public
    { Public declarations }
    NextForm:Integer;
  end;

var
  Form1: TForm1;

implementation

uses Unit2, Unit3, Unit4;


{$R *.dfm}

  procedure TForm1.ShowForm;
var
  Form:TForm;
begin
 case NextForm of
  2:Form:=Form2;
  3:Form:=Form3;
  4:Form:=Form4;
   else
    begin
    Form:=nil;
    // не даем счетчику выйти за нужный диапазон
    if NextForm>4 then NextForm:=4;
    if NextForm<2 then NextForm:=2;
    end
 end;
  if Form<>nil then
begin
 Form.Parent:=Panel1;
 Form.Align:=alClient;
 Form.BorderStyle:=bsNone;
 Form.Show;
end;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
NextForm:=NextForm+1;
ShowForm;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
NextForm:=2;
ShowForm;
end;

end.
Оформляйте код по правилам.

Последний раз редактировалось Вадим Мошев; 18.12.2017 в 20:16.
BlackTerror вне форума Ответить с цитированием
Старый 16.12.2017, 03:13   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

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


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в libcef.dll только с Delphi 7, в Delphi XE3 - нет noname_06 Общие вопросы Delphi 6 08.05.2013 06:49
Не изменяется интерфейс моей программы при переходе с Delphi 7 на Delphi 2010 Elvisnya Общие вопросы Delphi 3 28.04.2011 15:59
Rad Studio 2011 XE: новое в Delphi, C++ Builder, RadPHP и Delphi Prism savva-paladin Софт 18 02.10.2010 20:24
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? redred Общие вопросы Delphi 10 11.12.2007 10:43
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? dagarik БД в Delphi 7 22.10.2007 17:54