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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2008, 13:11   #1
PayBack
 
Аватар для PayBack
 
Регистрация: 11.05.2008
Сообщений: 6
По умолчанию проблемы с компеляцией...^^

Доброго времени суток!Собрал прогу по частям в нете и не компелируется она зараза.Надеюсь на помощь более опытных програмистов


Задание:
Разработать прогу "библиотечный каталог" .
Записи каталога должны содержать поля:раздел,Ф.И.О
автора,название.издательство.год издания


Возможности:
а)добавление.удаление и редактирование записей
б)поиск по каталогу по одному или нескольким полям
в)сортировка результатов,полученных по запросу по любому из
полей,указанных пользователем
код:

Код:
unit Laba06.v3;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    StringGrid1: TStringGrid;
    Button2: TButton;
    Button3: TButton;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
          // Save a TStringGrid to a file 

procedure SaveStringGrid(StringGrid: TStringGrid;const Temp: TTemp );
 var
   f:    TextFile;
   i, k: Integer;
 begin
   AssignFile(f, temp);
   Rewrite(f);
   with StringGrid do
   begin
     // Write number of Columns/Rows 
    Writeln(f, ColCount);
     Writeln(f, RowCount);
     // loop through cells 
    for i := 0 to ColCount - 1 do
       for k := 0 to RowCount - 1 do
         Writeln(F, Cells[i, k]);
   end;
   CloseFile(F);
 end;

 // Load a TStringGrid from a file 

procedure LoadStringGrid(StringGrid: TStringGrid; const temp: TTemp);
 var
   f:          TextFile;
   iTmp, i, k: Integer;
   strTemp:    String;
 begin
   AssignFile(f, FileName);
   Reset(f);
   with StringGrid do
   begin
     // Get number of columns 
    Readln(f, iTmp);
     ColCount := iTmp;
     // Get number of rows 
    Readln(f, iTmp);
     RowCount := iTmp;
     // loop through cells & fill in values 
    for i := 0 to ColCount - 1 do
       for k := 0 to RowCount - 1 do
       begin
         Readln(f, strTemp);
         Cells[i, k] := strTemp;
       end;
   end;
   CloseFile(f);
 end;


 // Save StringGrid1 to 'c:\temp.txt':

procedure TForm1.Button1Click(Sender: TObject);
 begin
   SaveStringGrid(StringGrid1, 'c:\temp.txt');
 end;

 // Load StringGrid1 from 'c:\temp.txt': 

procedure TForm1.Button2Click(Sender: TObject);
 begin
   LoadStringGrid(StringGrid1, 'c:\temp.txt');
 end;

    procedure TForm1.Button3Click(Sender: TObject);
var R,I: Integer;
begin
for R:= 0 to StringGrid1.RowCount-1 do
begin
i := StringGrid1.Rows[R].IndexOf('Text');
if i>=0 then
begin
StringGrid1.Row:=R;
StringGrid1.Col:=i;
end;
end;
end;

end.
me!?

Последний раз редактировалось PayBack; 11.05.2008 в 13:22.
PayBack вне форума Ответить с цитированием
Старый 11.05.2008, 13:14   #2
kisser_san
Пользователь
 
Регистрация: 25.04.2008
Сообщений: 17
По умолчанию

ты бы может написал где ругается...
можно не иметь высшего образования, достаточно иметь среднюю сообразительность...
kisser_san вне форума Ответить с цитированием
Старый 11.05.2008, 13:16   #3
PayBack
 
Аватар для PayBack
 
Регистрация: 11.05.2008
Сообщений: 6
По умолчанию

Цитата:
Сообщение от kisser_san Посмотреть сообщение
ты бы может написал где ругается...
да конечно,обозначил красным или тридцатая строчка "Temp"
me!?

Последний раз редактировалось PayBack; 11.05.2008 в 13:25.
PayBack вне форума Ответить с цитированием
Старый 11.05.2008, 13:28   #4
Airou
Форумчанин
 
Регистрация: 09.04.2008
Сообщений: 151
По умолчанию

Сразу что бросается в глаза - процедуры не записаны в Type.
Airou вне форума Ответить с цитированием
Старый 11.05.2008, 15:39   #5
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Сообщение

Когда вставляете код, неиспользуйте внутри его, постороние теги, они небудут отображаться.

По коду, просто неописана переменная, добавьте:
Код:
 var  TTemp :string; {описали TTemp}
  Form1: TForm1;
Alter вне форума Ответить с цитированием
Старый 15.05.2008, 01:04   #6
PayBack
 
Аватар для PayBack
 
Регистрация: 11.05.2008
Сообщений: 6
Вопрос

Temp-это название файла ,на сколько я понял.


Код:
procedure SaveStringGrid(StringGrid: TStringGrid; const Temp: TTemp);
 var
   f:    TextFile;
   i, k: Integer;
 begin
   AssignFile(f, temp);
   Rewrite(f);
Присвоил ей стринг,но ошибка таже
me!?
PayBack вне форума Ответить с цитированием
Старый 15.05.2008, 01:06   #7
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

какой смысл в процедуру передавать константу ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 15.05.2008, 17:24   #8
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Вообще зачем называть его как Ttemp замените на String, и всё, смысл её от этого неизмениться.
Alter вне форума Ответить с цитированием
Старый 16.05.2008, 22:53   #9
PayBack
 
Аватар для PayBack
 
Регистрация: 11.05.2008
Сообщений: 6
По умолчанию

да спасибо!ошибка пропала.Появилась правда в этом участке кода ошибка
Код:
// Save StringGrid1 to 'c:\temp.txt':

procedure TForm1.Button1Click(Sender: TObject);
 begin
   SaveStringGrid(StringGrid1, 'c:\temp.txt');
 end;

 // Load StringGrid1 from 'c:\temp.txt':
после TForm1.Button1Click в компиляторе ошибка-" Could not compile used unit "Unit1.pas""
me!?

Последний раз редактировалось PayBack; 16.05.2008 в 22:56.
PayBack вне форума Ответить с цитированием
Старый 17.05.2008, 14:36   #10
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

# procedure TForm1.Button1Click(Sender: TObject);
# begin
# SaveStringGrid(StringGrid1, 'c:\temp.txt');
# end;

Для этой процедуры нет описания в слассе TForm1

в описании надо добавить строчку
procedure Button1Click(Sender: TObject);

и сразу добавлю кроме этого надо будет (после добавления в нужный раздел) еще выбрать ее в качестве обработчика соответствующего события в ObjectInspector
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с WIN+D Altera Общие вопросы Delphi 4 15.08.2008 15:55
Проблемы с DLL Дмитрий2006 Общие вопросы C/C++ 5 15.10.2007 12:43
Проблемы с FPC Акашаев Нурлан Паскаль, Turbo Pascal, PascalABC.NET 1 10.07.2007 17:09
проблемы с INI delphi Общие вопросы Delphi 4 10.04.2007 00:28