Я построил новый компонент на основе кнопки Intraweb (Intraweb XIV) и установил его в новый пакет, регулярно устанавливаемый на ide.Невозможно увидеть имя компонента во время разработки
Компонент работает отлично, единственная проблема заключается в том, что во время разработки я не вижу названия компонента, так как компонент отображается как маленький серый прямоугольник с логотипом Iw без названия или заголовка.
Чтобы я мог разместить несколько кнопок на форме, я не могу различить их. Любое предложение?
Некоторые больше информации:
IntraWeb является основой для реализации веб-приложений. Вы размещаете компоненты на специальной «поддельной» форме, которая существует только во время разработки, но этого не существует во время выполнения. Во время работы инфраструктура запрашивает каждый компонент, чтобы он сам создавал конечный html-код. С этой целью каждый компонент имеет переопределяемую процедуру RenderHtml, которая должна возвращать html-код.
Что вы видите во время разработки (возможно), созданное другой процедурой (доктору это не хватает), который я бы хотел переопределить, но о котором я не знаю.
Как я уже сказал, если разместить на форме оригинальный tIWButton, во время разработки я вижу классическую трехмерную серо-кнопку с надписью на ней. Если вместо этого я разместил NewButton, я вижу другую темную серо-плоскую кнопку с маленьким логотипом Iw на нем.
Это код компонента (ничего не указано).
Я создал компонент, чтобы добавить поле изображения и визуализировать другой код html во время выполнения, который я могу настроить с помощью css. Это не должно влиять на внешний вид конструкции компонента.
Practicaly, все, что мне нужно было бы переопределить должна быть функция renderhtml:
TNewButton = class(TIWButton)
protected
fImage : string;
published
property Image: string read fImage write fImage;
public
function RenderHTML(AContext: TIWBaseHTMLComponentContext): TIWHTMLTag; override;
end;
function tNewButton.RenderHTML(AContext: TIWBaseHTMLComponentContext): TIWHTMLTag;
var Elem : tIwTextElement;
txt : string;
disab : string;
begin
if enabled then disab := '' else disab := ' disabled="disabled" ';
txt := '<button class="newbutton" '+disab+'>';
if fimage <> '' then
txt := txt + '<img src="'+ fimage +'"/>';
txt := txt + '<span class="newbutton-text">' + Caption + '</span>';
txt := txt + '</button>';
Elem := tIwTextElement.Create(nil);
elem.text := txt;
Result := TIWHTMLTag.CreateTag('DIV');
Result.Contents.Add (Elem);
end;
Используйте цветной код в режиме разработки –
Основываясь на том факте, что вы указываете, что эти компоненты показаны в виде прямоугольников с только иконкой IW на них, я бы предположил, что во время разработки Delphi может рассматривать их как невизуальные компоненты. Это очень помогло бы, если бы вы могли показать свой новый код компонента, чтобы мы могли отслеживать проблему. Без кода мы могли только гадать, что не так, а что нет. – SilverWarior