Вот беда с Form4.Show

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Вот беда с Form4.Show

Сообщение Джентельмен » 08.07.2007 18:53:48

запускаетса форма Form1... на форме кнопка... в процедуре написано:

Form2.Show

вторая форма есть... и в юзесах юнит описан... и неодна форма есть... а при нажатии на кнопку на медленном компе проверял... форма появляетса и закрываетса программа... куда копать? и какой лопатой?
Джентельмен
постоялец
 
Сообщения: 162
Зарегистрирован: 16.10.2005 10:47:26
Откуда: Украина Донбасс Краматорск

Сообщение Джентельмен » 08.07.2007 19:14:36

а кто нить на сайте есть??? отзовитесь хоть... проблема гарящая... срочто нужно решить... даже низнаю как в поисковике вопрос задать...
Джентельмен
постоялец
 
Сообщения: 162
Зарегистрирован: 16.10.2005 10:47:26
Откуда: Украина Донбасс Краматорск

Сообщение shade » 08.07.2007 20:13:16

А причем тут 9мая?
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение v-t-l » 08.07.2007 22:36:43

А Form2 уже создана к моменту вызова Form2.Show? - смотри порядок создания форм (если Form2 - автосоздаваемая).
А Lazarus не ругается?
Ставь точку останова на Form2.Show и трассируй F7/F8.
v-t-l
энтузиаст
 
Сообщения: 728
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение Джентельмен » 09.07.2007 09:25:58

да насчет 9 мая... это короста на компе была... добавила текст без моего ведома...

вот:
Код: Выделить всё
program project1;

{$mode objfpc}{$H+}

uses
  Interfaces, // this includes the LCL widgetset
  Forms
  { add your units here }, Unit1, Unit2, fiblaz, Unit3, Unit4, Unit5, Unit6,
  Unit7, DBFLaz, Unit8, Unit9, Unit10, Printer4Lazarus, Unit11, Unit12, Unit13,
  Unit14, Unit15, InterbaseLaz, Unit16, RunTimeTypeInfoControls, Unit17, Unit18,
  Unit19, Unit20;

begin
  Application.Initialize;
  Application.CreateForm(TDataModule1, DataModule1);
  Application.CreateForm(TForm19, Form19);
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.CreateForm(TForm3, Form3);
  Application.CreateForm(TForm4, Form4);
  Application.CreateForm(TForm5, Form5);
  Application.CreateForm(TForm6, Form6);
  Application.CreateForm(TForm7, Form7);
  Application.CreateForm(TForm8, Form8);
  Application.CreateForm(TForm9, Form9);
  Application.CreateForm(TForm10, Form10);
  Application.CreateForm(TForm11, Form11);
  Application.CreateForm(TForm12, Form12);
  Application.CreateForm(TForm13, Form13);
  Application.CreateForm(TForm14, Form14);
  Application.CreateForm(TForm15, Form15);
  Application.CreateForm(TForm16, Form16);
  Application.CreateForm(TForm17, Form17);
  Application.CreateForm(TForm18, Form18);
  Application.Run;
end.

сначала создается 19 форма... на ней ComboBox1 и Edit1... и кнопка... а в кнопке написано:
Код: Выделить всё
procedure TForm19.Button1Click(Sender: TObject);
var
  d: TDateTime;
  a: integer;
begin
  form8.MenuItem10.Visible := True;
  DataModule1.FIBDataSet1.First;
  if DataModule1.FIBDataSet1.FieldByName('ID').AsInteger = 0 then
    begin
      Form8.MenuItem5.Visible := False;
      Form8.MenuItem9.Visible := False;
      Form8.MenuItem4.Visible := False;
      Form8.MenuItem5.Visible := False;
    end;
  name_sclad := ComboBox1.Text;
  if (combobox1.Text = 'admin') and (Edit1.Text = 'admin180683')then
    Begin
      DataModule1.FIBDataSet4.First;
      Form1.Edit1.Text := DataModule1.FIBDataSet4.FieldByName('CGP').AsString;
      Form9.Hide;
      Form1.Show;
    End;

  if (combobox1.Text = 'admin') and (Edit1.Text = 'admin') then
    Begin
      Form4.Show;
      DataModule1.FIBDataSet4.First;
      Form4.MenuItem2.Visible := False;
      Form4.MenuItem4.Visible := False;
      Form4.MenuItem7.Visible := False;
      Form4.MenuItem9.Visible := False;

      Form4.Edit14.Text := DataModule1.FIBDataSet4.FieldByName('CGP').AsString;
      Form4.ComboBox3.Text := 'Проба';
      Form4.ComboBox4.Text := 'Наименование изделия';
      Form4.ComboBox3.Items.LoadFromFile('prob');
      Form4.ComboBox4.Items.LoadFromFile('vid_sprav');
      Form4.Caption := 'Выдача товара на склады';

      d := Now;
      Form4.Edit3.ReadOnly := False;
      Form4.Edit3.Text := FormatDateTime('dd.mm.yyyy', d);
      Form4.Button3Click(nil);
      Form4.Button5Click(nil);
      Form4.Edit1.Text := '';
      Form4.ComboBox4.Text := '';
      Form4.Edit4.Text := '';
      Form4.Edit6.Text := '';
      Form4.Edit7.Text := '';



      DataModule1.Dbf17.Edit;
      DataModule1.Dbf17.First;
      While not DataModule1.Dbf17.EOF do
        begin
          DataModule1.Dbf17.Delete;
        end;



    End;
  if (combobox1.Text = 'admin') and (Edit1.Text = '') then
    Begin
      Form4.Show;
      DataModule1.FIBDataSet4.First;
      Form4.MenuItem2.Visible := False;
      Form4.MenuItem4.Visible := False;
      Form4.MenuItem7.Visible := False;
      Form4.MenuItem9.Visible := False;

      Form4.Edit14.Text := DataModule1.FIBDataSet4.FieldByName('CGP').AsString;
      Form4.ComboBox3.Text := 'Проба';
      Form4.ComboBox4.Text := 'Наименование изделия';
      Form4.ComboBox3.Items.LoadFromFile('prob');
      Form4.ComboBox4.Items.LoadFromFile('vid_sprav');
      Form4.Caption := 'Выдача товара на склады';

      d := Now;
      Form4.Edit3.ReadOnly := False;
      Form4.Edit3.Text := FormatDateTime('dd.mm.yyyy', d);
      Form4.Button3Click(nil);
      Form4.Button5Click(nil);
      Form4.Edit1.Text := '';
      Form4.ComboBox4.Text := '';
      Form4.Edit4.Text := '';
      Form4.Edit6.Text := '';
      Form4.Edit7.Text := '';
      Form4.ComboBox2.Items.LoadFromFile('items');
      DataModule1.Dbf17.Last;
      Form4.Edit3.Text := DataModule1.Dbf17.FieldByName('data_s').AsString;
      Form4.ComboBox2.Text := DataModule1.Dbf17.FieldByName('name_s').AsString;
      Form4.Edit3.ReadOnly := True;
      Form4.ComboBox2.ReadOnly := True;

      id_sclad := DataModule1.Dbf17.FieldByName('sclad_id').AsInteger;
      DataModule1.FIBDataSet4.First;
      a := 1;
      While (not DataModule1.FIBDataSet4.EOF) and (a = 1) do
        Begin
          If DataModule1.FIBDataSet4.FieldByName('s_id').AsInteger = id_sclad then
            begin
              a := 0;
            end;
            DataModule1.FIBDataSet4.Next;
        End;
        DataModule1.FIBDataSet4.Prior;

    End;

  DataModule1.FIBDataSet2.First;
  While not DataModule1.FIBDataSet2.EOF do
    Begin
      if combobox1.Text = DataModule1.FIBDataSet2.FieldByName('name').AsString then
        Begin

          if DataModule1.FIBDataSet2.FieldByName('obmen').AsString = '1' then
            Begin
              Form8.GroupBox6.Visible := False;
              Form8.GroupBox7.Visible := False;
              Form8.Label33.Visible := False;
              Form8.Label36.Visible := False;
              Form8.Label37.Visible := False;
              Form8.Label7.Visible := False;
              Form8.Label17.Visible := False;
              Form8.Label10.Visible := False;
            End;
          if DataModule1.FIBDataSet2.FieldByName('obmen').AsString = '0' then
            Begin
              Form8.GroupBox6.Visible := True;
              Form8.GroupBox7.Visible := True;
              Form8.Label33.Visible := True;
              Form8.Label36.Visible := True;
              Form8.Label37.Visible := True;
              Form8.Label7.Visible := True;
              Form8.Label17.Visible := True;
              Form8.Label10.Visible := True;
            End;
          idus := DataModule1.FIBDataSet2.FieldByName('id').AsInteger;
          Form8.ComboBox2.Items.LoadFromFile('user');
          Form9.Hide;
          Form8.Show;
        End;
       DataModule1.FIBDataSet2.Next;
    End;
  ComboBox1.Text := '';
  Edit1.Text := '';

end;


и когда должно выполнятся условие admin admin или admin '' то показуетса четвертая форма...

пробывал в Project1.lpr написать так:
Код: Выделить всё
  Application.Initialize;
  Application.CreateForm(TDataModule1, DataModule1);
  Application.CreateForm(TForm4, Form4);
  Application.CreateForm(TForm19, Form19);
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.CreateForm(TForm3, Form3);
  Application.CreateForm(TForm5, Form5);
  Application.CreateForm(TForm6, Form6);
  Application.CreateForm(TForm7, Form7);
  Application.CreateForm(TForm8, Form8);
  Application.CreateForm(TForm9, Form9);
  Application.CreateForm(TForm10, Form10);
  Application.CreateForm(TForm11, Form11);
  Application.CreateForm(TForm12, Form12);
  Application.CreateForm(TForm13, Form13);
  Application.CreateForm(TForm14, Form14);
  Application.CreateForm(TForm15, Form15);
  Application.CreateForm(TForm16, Form16);
  Application.CreateForm(TForm17, Form17);
  Application.CreateForm(TForm18, Form18);

  Application.Run;

и тогда программа не запускаетса...

но раньше работало... ё в м...
Джентельмен
постоялец
 
Сообщения: 162
Зарегистрирован: 16.10.2005 10:47:26
Откуда: Украина Донбасс Краматорск

Сообщение Attid » 09.07.2007 14:41:56

застрелится, поубивал бы за Form1\Form18
и где что находится ищи свищи.

во первых на первом сообщении нажимаешь кнопку редактировать и убераешь мусор, в последнем ставишь теги [ Code ] если тебе дорого свое время то заботься и о чужом, читать невозможно.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Padre_Mortius » 09.07.2007 16:05:54

Код: Выделить всё
Form4.Button3Click(nil);
Form4.Button5Click(nil);


За что отвечают эти обработки?
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Джентельмен » 09.07.2007 17:51:40

Код: Выделить всё
procedure TForm4.Button3Click(Sender: TObject);
begin
  DataModule1.FIBDataSet3.First;
  ComboBox1.Text := 'Поставщик';
  ComboBox1.Items.LoadFromFile('items');
  while not DataModule1.FIBDataSet3.EOF do
    begin
      ComboBox1.Items.Add(DataModule1.FIBDataSet3.FieldByName('name').AsString);
      DataModule1.FIBDataSet3.Next;
    end;
end;

procedure TForm4.Button5Click(Sender: TObject);
begin
  DataModule1.FIBDataSet2.First;
  ComboBox2.Text := 'Склад';
  ComboBox2.Items.LoadFromFile('items');
  while not DataModule1.FIBDataSet2.EOF do
    begin
      ComboBox2.Items.Add(DataModule1.FIBDataSet2.FieldByName('name').AsString);
      DataModule1.FIBDataSet2.Next;
    end;
end;
Джентельмен
постоялец
 
Сообщения: 162
Зарегистрирован: 16.10.2005 10:47:26
Откуда: Украина Донбасс Краматорск

Сообщение Джентельмен » 10.07.2007 08:08:39

Во блин... откопал вчера архив исходников... апрельский... в архиве все работало, скомпилировал... и такая же проблема... но еще прикольней блин... взял exe файл компилированный в апреле месяце, и такая же проблема... может с системой че-то... или с лазарусом??? вообще тогда нихрена непонятно...

что скажите уважаемые знатоки???
Джентельмен
постоялец
 
Сообщения: 162
Зарегистрирован: 16.10.2005 10:47:26
Откуда: Украина Донбасс Краматорск

Сообщение Padre_Mortius » 10.07.2007 08:57:34

Насколько я понял программа правильно завершает свою работу, а не слетает с ошибкой. Если так, то и смотреть нужно те места, где организован выход из программы. А вообще было бы желательно избавиться от стандартных наименований, потому как разбираться в таком коде практически невозможно.
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Джентельмен » 10.07.2007 09:37:08

но как обьясни что архивные рабочие исходники перестали работать???
Джентельмен
постоялец
 
Сообщения: 162
Зарегистрирован: 16.10.2005 10:47:26
Откуда: Украина Донбасс Краматорск

Сообщение Padre_Mortius » 10.07.2007 09:46:29

Что происходит с программой, если она не смогла найти базу данных?
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Джентельмен » 10.07.2007 12:05:08

самому интересно... сегодня проверю соединение с базой...
Джентельмен
постоялец
 
Сообщения: 162
Зарегистрирован: 16.10.2005 10:47:26
Откуда: Украина Донбасс Краматорск


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 94

Рейтинг@Mail.ru