![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый день всем. Прошу помощи со следующим:
Код:
unit Control; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type CommandType = record {Тип команда} Address: byte; Checksum: byte; Comm1,Comm2: byte; NData: byte; Data1, Data2, Data3, Data4, Data5, Data6: byte; end; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Button1: TButton; Button2: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; GroupBox1: TGroupBox; GroupBox2: TGroupBox; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Edit5: TEdit; Edit6: TEdit; Edit7: TEdit; Edit8: TEdit; Button3: TButton; Button4: TButton; ComboBox1: TComboBox; ComboBox2: TComboBox; Label9: TLabel; GroupBox3: TGroupBox; Button5: TButton; { procedure Button1Click(Sender: TObject);} procedure StartMove(Sender: TObject); { procedure SendSettings(Sender: TObject);} procedure Send(Sender: TObject; CommandData: CommandType); private { Private declarations } public { Public declarations } end; const Update: CommandType = (Address:0; Checksum:0; Comm1:0; Comm2:$1A; NData:0; Data1:0; Data2:0; Data3:0; Data4:0; Data5:0; Data6:0); var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Send(Sender: TObject; CommandData: CommandType); begin Close; end; procedure TForm1.StartMove(Sender: TObject); begin Send(Sender, Update); :confused: end; {procedure TForm1.Button1Click(Sender: TObject); begin SendSettings(Sender); end;} end. Вылезает ошибка Incompatible types: 'CommandType' and 'procedure, untyped pointer or untyped parameter' с указанием на строку, где стоит ![]() Последний раз редактировалось Admin, 23.06.2011 в 18:38. |
#2
|
||||
|
||||
![]() Код:
Send(Sender, Control.Update); Пишу программы за еду. __________________ |
#3
|
|||
|
|||
![]() Спасибо, NumLock!
Сделал по вашему указанию, теперь ошибка [Fatal Error] Control_Project1.dpr(10): Internal error: SY576 сначала указывал на строку Application.Initialize; когда попытался сделать Build - стал указывать тремя одинаковыми ошибками на строку Код:
type CommandType = record {Тип команда} Address: byte; <----- Checksum: byte; Comm1,Comm2: byte; NData: byte; Data1, Data2, Data3, Data4, Data5, Data6: byte; end; Люди в интернетах пишут, что это внутренняя ошибка компилятора, и ничего с этим не сделать. Действительно ли ничего и следует как-то иначе составлять код (например, используя массивы вместо записей)? |
#4
|
||||
|
||||
![]() Delphi закрой и запусти заново.
Пишу программы за еду. __________________ |
#5
|
|||
|
|||
![]() Так и сделал, действительно помогло.
Благодарность NumLock'у. |
#6
|
|||
|
|||
![]() Проблема усложняется.
Возможно ли задать константу в виде записи, одно из полей которых не строковый массив (с точки зрения принципа)? Код:
ype CommandType = record {Тип команда} Address: byte; Checksum: byte; Comm1,Comm2: byte; NData: byte; Data: array[1..6] of byte; end; Код:
const Upd: CommandType = (Address:0; Checksum:0; Comm1:0; Comm2:$1A; NData:0; Data[1]:0; Data[2]:0; Data[3]:0; Data[4]:0; Data[5]:0; Data[6]:0); |
#7
|
||||
|
||||
![]() Код:
const Upd: CommandType = (Address:0; Checksum:0; Comm1:0; Comm2:$1A; NData:0; Data:(1, 2, 3, 4, 5, 6)); Пишу программы за еду. __________________ |
#8
|
|||
|
|||
![]() NumLock, спасибо еще раз за отзывчивость!
|