2015-08-16 3 views
1

Я пытаюсь изменить цвет панели на Lazarus при наведении мыши.Идентификатор не найден в компиляторе (Free Pascal)

Я пытаюсь запустить этот код на Lazarus:

unit test; 

{$mode objfpc}{$H+} 

interface 

uses 
[...] 

type 

    { Tvendas_menu } 

    Tvendas_menu = class(TForm) 

    [...] 
    procedure StartMouseEnter(Sender: TObject); 
    [...] 


    private 
    { private declarations } 
    public 
    { public declarations } 
    end; 

var 
[...] 

implementation 
[...] 

procedure Tvendas_menu.StartMouseEnter(Sender: TObject); 
begin 
    Start.Color := $00E7E7E7; 
end; 
[...] 

Но при составлении программы показывают следующий код ошибки:

Ошибка: идентификатор не найден "Start"

я уверен, что «Start» - это имя панели в Object Inspector и файле .lfm.

Я пытаюсь изменить «Начать» на другое имя, но ошибка все еще происходит.

Спасибо!

+0

Покажите нам _complete_ исходный код – xmojmr

+1

Где указано объявление объекта 'Start' в' Tvendas_menu', которое вы указали? Очевидно, что это не в одном из разделов '...]', или компилятор не будет жаловаться на это. –

+0

Вы удалили код, который имеет значение. Пожалуйста, найдите время, чтобы узнать, как сделать MCVE. –

ответ

1

Когда вы добавляете элементы управления в форму, они автоматически добавляются под класс формы, в вашем случае они появятся под Tvendas_menu = class(TForm).

Одним из возможных вариантов ошибки может быть, потому что линия Start отсутствует, вы должны иметь что-то вроде:

type 
    Tvendas_menu = class(TForm) 
    Start: TPanel; 
    private 
    { Private declarations } 
    public 
    { Public declarations } 
    end; 

Чтобы решить эту проблему, попробуйте добавить строку Start: TPanel;, как и выше, если его нет.

Еще один вариант у вас есть, чтобы просмотреть форму в текстовом виде (.lfm для Lazarus и .dfm для Delphi) и найти опорный блок для Start, это может выглядеть примерно так:

object Start: TPanel 
    Left = 152 
    Top = 248 
    Width = 185 
    Height = 41 
    Caption = 'Start' 
    TabOrder = 1 
end 

Удалить это и затем вернитесь к виду формы.

Затем вы можете попробовать добавить новую панель в форму и называть ее Start, тогда вам просто нужно связать обработчики событий с новым элементом управления.

В качестве бокового наконечника, назначение элемента управления Start на самом деле не очень полезно, возможно, подумайте об улучшенном именованном идентификаторе, таком как panStart.

+1

Я забыл вставить «Start: TPanel;» ниже «Tvendas_menu = class (TForm)». Благодаря! – Erick2280

+0

Но он должен был быть добавлен дизайнером формы, а не вами. Дизайнер формы должен был добавить его, когда вы уронили панель в форме. Вы вручную отредактировали файл .lfm или что произошло? –