Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.02.2013, 20:59
Damik Damik вне форума
Прохожий
 
Регистрация: 10.02.2013
Сообщения: 11
Репутация: 10
По умолчанию Undeclared identifier OkBottomDlg

Помогите исправить ошибку Undeclared identifier OkBottomDlg
Код:
procedure TForm1.Button1Click(Sender: TObject);
Label NN;
var k:integer;
begin
 If OpenDialog1.Execute Then
 A:=OpenDialog1.FileName
 Else
begin Soob;
 Exit;
end;
 NN:
if (OKBottomDlg.ShowModal=mrOk)
 then
 begin M:=StrToInt(OkBottomDlg.MaskEdit1.Text);
 N:=StrToInt(OkBottomDlg.MaskEdit2.Text);
 if (M=0) or (N=0) then
 begin
 ShowMessage('Вы ввели нулевое значение! Повторите ввод!');
 Exit;
 End;
 end
 else begin
 if Application.MessageBox('Вы не ввели значения. Повторить ввод?','Надо ввести значения или Отмена',MB_OKCANCEL)=1
 then Goto NN
 else Exit;
 end;
 Vvod(B);
 if K>0 then  begin
 ShowMessage('Ошибочно количество строк исходного массива'+'Проверьте файл с исходными данными');
 Halt; end;
 Label1.Caption:='Введены исходные данные';
 Button1.Enabled:=False;
 Button2.Enabled:=True;
 Button2.SetFocus;
 if SaveDialog1.Execute then
 begin A:=SaveDialog1.FileName;
 AssignFile(FI,A); Rewrite (FI);
 end
 else begin Soob; Exit; end;
 Writeln(FI, 'Исходные данные');
 P(B,M,N);
end;
Ответить с цитированием
  #2  
Старый 10.02.2013, 21:05
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,090
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Вообще, нужен ВЕСЬ код модуля. Судя по представленному куску, OKBottomDlg это другая форма. Соответсвенно, надо подключить соответвующий модуль в uses.
Ответить с цитированием
  #3  
Старый 10.02.2013, 21:34
Damik Damik вне форума
Прохожий
 
Регистрация: 10.02.2013
Сообщения: 11
Репутация: 10
По умолчанию

Можете помочь если сюда выложу весь проект?
Ответить с цитированием
  #4  
Старый 10.02.2013, 22:50
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

Прикрепи исходник.
Ответить с цитированием
  #5  
Старый 10.02.2013, 23:13
Damik Damik вне форума
Прохожий
 
Регистрация: 10.02.2013
Сообщения: 11
Репутация: 10
По умолчанию

Код:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Buttons, Vcl.ExtCtrls, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Panel1: TPanel;
    BitBtn1: TBitBtn;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Label1: TLabel;

    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;



implementation
uses Unit2, Unit3, Unit4;

{$R *.dfm}


procedure Soob;
begin ShowMessage('Вы не ввели имя файла.Повторите ввод!');
end;

procedure TForm1.Button1Click(Sender: TObject);
Label NN;
var k:integer;
begin
 If OpenDialog1.Execute Then
 A:=OpenDialog1.FileName
 Else
begin Soob;
 Exit;
end;
 NN:
if (OKBottomDlg.ShowModal=mrOk)
 then
 begin M:=StrToInt(OkBottomDlg.Edit1.Text);
 N:=StrToInt(OkBottomDlg.Edit2.Text);
 if (M=0) or (N=0) then
 begin
 ShowMessage('Вы ввели нулевое значение! Повторите ввод!');
 Exit;
 End;
 end
 else begin
 if Application.MessageBox('Вы не ввели значения. Повторить ввод?','Надо ввести значения или Отмена',MB_OKCANCEL)=1
 then Goto NN
 else Exit;
 end;
 Vvod(B);
 if K>0 then  begin
 ShowMessage('Ошибочно количество строк исходного массива'+'Проверьте файл с исходными данными');
 Halt; end;
 Label1.Caption:='Введены исходные данные';
 Button1.Enabled:=False;
 Button2.Enabled:=True;
 Button2.SetFocus;
 if SaveDialog1.Execute then
 begin A:=SaveDialog1.FileName;
 AssignFile(FI,A); Rewrite (FI);
 end
 else begin Soob; Exit; end;
 Writeln(FI, 'Исходные данные');
 P(B,M,N);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Obr(B,M,N);
 Label1.Caption:='Выполнена обработка данных';
 Button2.Enabled:=False;
 Button3.Enabled:=True;
 Button3.SetFocus;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
P(B,M,N);
 Button3.Enabled:=False;
 CloseFile(FI);
 Label1.Caption:='Выведены результаты в тестовый файл';
 Button4.Enabled:=True;
 Button4.SetFocus;

end;

procedure TForm1.Button4Click(Sender: TObject);
begin
Button4.Enabled:=False;
Form2.Show;
Form3.Show;
Form1.FormStyle:=fsStayOnTop;
Form1.FormStyle:=fsNormal;
Panel1.Visible:=True;
Label1.Caption:='Открыты формы для вывода результатов';
Button5.SetFocus;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
Form2.ListBox1.Items.LoadFromFile(A);
Label1.Caption:=' ListBox1 терезесіне жауаптар енгізілген';
Button5.Enabled:=False;
Button6.SetFocus;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
Form2.ComboBox1.Items.LoadFromFile(A);
Label1.Caption:= 'ComboBox1 терезесіне жауаптар енгізілген';
Button6.Enabled:=False;
Button7.SetFocus;

end;

procedure TForm1.Button7Click(Sender: TObject);
begin
Form3.Memo1.Lines.LoadFromFile(A);
Label1.Caption:=' Memo1 терезесіне жауаптар енгізілген';
Button7.Enabled:=False;
Button8.SetFocus;

end;

procedure TForm1.Button8Click(Sender: TObject);
var
i,j:integer;
S:string[14];
begin
With Form3.StringGrid1 do begin
ColCount:=N;   FixedCols:=0;
RowCount:=M+1; FixedRows:=1;
For J:=0 to N-1 do
Case J of
0,1,3,4:Cells[J,0]:='   F';
        2,5:Cells[J,0]:='   E';
  end;
FOR I:=1 TO M DO
FOR J:=1 TO N DO BEGIN
CASE J  OF
1, 2, 4, 5: STR(B^((I-1)*N+J):10:4, S);
3,6: STR(B^[(I-1)*N+J]:12, S);
end;
Cells[J-1,I]:= ' ' + S;
END;
end;
FREEMEM ( B, M * N * SIZEOF (REAL));
Label1.Caption:=' StringGrid1 терезесіне жауаптар енгізілген';
Button8.Enabled:=False;
BitBtn1.SetFocus;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 AssignFile(Output,'lr.txt');
 Rewrite(Output);
end;
end.
Ответить с цитированием
  #6  
Старый 10.02.2013, 23:18
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

Скорее всего он в каком-либо стороннем юните которого здесь нет. Поищите там, где Вы брали код.
Ответить с цитированием
  #7  
Старый 10.02.2013, 23:39
Damik Damik вне форума
Прохожий
 
Регистрация: 10.02.2013
Сообщения: 11
Репутация: 10
По умолчанию

Можешь помочь? Я толком не понимаю. Вот в одном юните еще есть вот такой код:
Код:
unit Unit4;

interface


uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs;

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

var
  Form4: TForm4;
  const M=3; N=6;
 Type TB=Array[1..M,1..N] of real;
 var
 A:string[80];
 B:tb;
 FI:TEXTFile;
 Procedure P(B:TB; M,N:Integer);
 Procedure Vvod(var B:TB);
 Procedure Obr(var B:TB; M,N:Integer);

implementation
 uses Unit1, Unit2, Unit3;
{$R *.dfm}
 Procedure P(B:TB; M,N:Integer);
 var
 C:char; i,j: integer;
 begin
 C:=chr(124);
 For i:=1 to M do
 begin
 Write(C);
 For j:=1 to N do
 Case j of
 1,2,4,5:Write(B[i,j]:10:4,C);
        3: Write(B[i,j]:11,C);
        6:Writeln(B[i,j]:12,C);
        end;
        Writeln(A);
       end
 end;

     Procedure VVOD(var B:TB);
    var i,j: integer;
 begin
     AssignFile(FI,A);
     Reset(FI);
 For i:=1 to 4 do
 Readln(FI,A);   Writeln(A);
  For i:=1 to M do
   For j:=1 to N do
   Read(FI,B[i,j]);
   P(B,M,N);
   CLOSEFile(FI);
             end;

    Procedure OBR(var B:TB; M,N:Integer);
    var i,j,i1,i2,j1,j2:integer;
    MN,MX:Real;
    begin
    MN:=B[1,1];
     MX:=B[1,1];
     i1:=1; i2:=1; j1:=1; j2:=1;
       For i:=1 to M do
       For j:=1 to N do
       if B[i,j]<MN Then Begin
       MN:=B[i,j]; i1:=i;j1:=j;
       end
       else
       if B[i,j]>MX Then Begin
       MX:=B[i,j]; i2:=i;j2:=j;
       end;
       MN:=B[i2,j2];
       MX:=B[i1,j1];
       Writeln
       (#10#13, 'MIN=', MN:12, 'IMIN=', i1, 'JMin=', j1, #10#13, 'MAX=', MX:12, 'IMAX=', i2, 'JMAX=', j2);
       end;


end.
Ответить с цитированием
  #8  
Старый 11.02.2013, 00:29
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Просили "прикрепить" архив, а не выкладывать листинг. Иначе можно долго гадать где и что вызывается.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #9  
Старый 11.02.2013, 00:39
Damik Damik вне форума
Прохожий
 
Регистрация: 10.02.2013
Сообщения: 11
Репутация: 10
По умолчанию

Вот проект. Буду рад если поможете
Вложения
Тип файла: rar Lab1-KR.rar (119.2 Кбайт, 2 просмотров)
Ответить с цитированием
  #10  
Старый 11.02.2013, 01:51
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Нужно убрать бардак который устроен в dpr-файле
Код:
...
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.CreateForm(TForm3, Form3);
  Application.CreateForm(TForm4, Form4);
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm4, Form4);
  Application.CreateForm(TForm4, Form4);
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.CreateForm(TForm3, Form3);
  Application.Run;
end.

должно быть
Код:
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.CreateForm(TForm3, Form3);
  Application.CreateForm(TForm4, Form4);
  Application.Run;
end.

формы с именем OKBottomDlg не существует. В проекте вообще нет формы на которой располагался бы TEdit (OkBottomDlg.Edit1.Text, OkBottomDlg.Edit2.Text).
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:10.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025