![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Помогите разобраться с ошибкой в делфи, несовпадение типов: Incopatible types slovo and TCaption. Я пытаюсь записать в список слова из Edit1.
Код:
unit gel6;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Memo1: TMemo;
Memo2: TMemo;
Edit1: TEdit;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
Label1: TLabel;
Label2: TLabel;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
slovo= packed array [1..10] of char;
TPlink = ^link;
link = record
te : slovo;
next : TPlink;
end;
var
Form1: TForm1;
head, Endlist, NextList: TPlink; // начало (голова),конец,текущий списка
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
var
n:integer;
Temp, NextList: TPlink; // времен и новый элемент списка begin
begin
n:=0;
new(NextList); // выделить память для элемента списка
NextList^.te :=Edit1.Text;
n:=n+1;
// добавление в начало списка
NextList^.next:=head;
head :=NextList;
// очистить поле ввода
Edit1.text := '';
if n <> 0
then ShowMessage('Список:' + NextList^.te)
else ShowMessage('В списке нет элементов.');
end;
end. |
|
#2
|
|||
|
|||
|
Что за тип Slovo? Я не знаю, компилятор тоже
Код:
slovo= packed array [1..10] of char;
TPlink = ^link;
link = record
te : string;
next : TPlink;
end;Последний раз редактировалось nixon232, 24.04.2018 в 16:41. |
|
#3
|
|||
|
|||
|
Slovo у меня обозначен как массив символов
|
|
#4
|
||||
|
||||
|
Цитата:
ТС, может Вас устроит: Код:
type slovo = string[10]; |
|
#5
|
|||
|
|||
|
Цитата:
|
|
#6
|
||||
|
||||
|
Тогда преобразовывать на этапе вывода.
Код:
var slovo: array[1..10] of char; s: string; begin slovo[1] := 't'; slovo[2] := 'e'; slovo[3] := 's'; slovo[4] := 't'; SetString(s, PChar(@slovo), 4); // можно так ShowMessage(s); s := Copy(slovo, 1, 4); // можно так ShowMessage(s); end; |
| Этот пользователь сказал Спасибо dr. F.I.N. за это полезное сообщение: | ||
fathutdinovada (24.04.2018)
| ||