powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Проблема с создоваемым компонентом
2 сообщений из 2, страница 1 из 1
Проблема с создоваемым компонентом
    #32121859
ddv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ddv
Гость
Создается компонент SpeedButton со свойствами ImageList и ImageIndex для связи с компонентом ImageList. На стадии проектирования все работает, а после компиляции на всех SpeedButton отображается один и тот же Image.
Просьба помочь!!!

unit SpeedButtonImage;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, ImgList;

type
TSpeedButtonImage = class(TSpeedButton)
private
FImageList:TCustomImageList;
FImageIndex:Integer;
protected
procedure Paint; override;
public
procedure SetImageIndex(Value:Integer);
published
property ImageList:TCustomImageList read FImageList write FImageList;
property ImageIndex:Integer read FImageIndex write SetImageIndex;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('Samples', [TSpeedButtonImage]);
end;

{ TSpeedButtonImage }
procedure TSpeedButtonImage.Paint;
begin
inherited;
if Assigned(FImageList) then
if (FImageIndex in [0..Pred(FImageList.Count)]) then
begin
if not Enabled then
begin
FImageList.Draw(Canvas,Round(FImageList.Width/2),Round(Height/2-FImageList.Height/2),FImageIndex,False)
end
else
FImageList.Draw(Canvas,Round(FImageList.Width/2),Round(Height/2-FImageList.Height/2),FImageIndex,True);
end;
end;

procedure TSpeedButtonImage.SetImageIndex(Value: Integer);
begin
if Assigned(FImageList) then
if (Value in [0..Pred(FImageList.Count)]) then
begin
FImageIndex:=Value;
Paint;
end;
end;

end.
...
Рейтинг: 0 / 0
Проблема с создоваемым компонентом
    #32122164
oleg_e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй не перекрывать метод Paint, а копировать рисунок в Gliph
...
Glyph.Width:=Width;
Glyph.Height:=Height;
FImageList.Draw(Glyph.Canvas, 0, 0, FImageIndex);
...
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Проблема с создоваемым компонентом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]