вариант отрисовки может быть закодирован в имени картинки.
unit u_MarkPictureSimple
перечислены два варианта привязки. если нужны другие варианты - надо их сюда добавить
- Код: Выделить всё
TMarkPictureAnchor = (paDefault, paCenter, paTop, paLeft, paRight);
процедура = procedure TMarkPictureSimple.InitPic;
- Код: Выделить всё
var VFileName: string; {добавить объявление переменной в var}
перед строчкой case
- Код: Выделить всё
FPicAnchor of
получаем имя файла без пути VFileName := ExtractFileName(FFullFileName);
и проверяем префиксы
- Код: Выделить всё
{далее для каждого(!) случая прописываем проверку префикса. }
if(VFileName.Length() >= 7) then
if(VFileName.SubString(1,7) = 'Center_') then
FPicAnchor := paCenter;
if(VFileName.Length() >= 4) then
if(VFileName.SubString(1,4) = 'Top_') then
FPicAnchor := paTop;
if(VFileName.Length() >= 5) then
if(VFileName.SubString(1,5) = 'Left_') then
FPicAnchor := paLeft;
if(VFileName.Length() >= 6) then
if(VFileName.SubString(1,6) = 'Right_') then
FPicAnchor := paRight;
* если мы добавим свои варианты привязки, надо добавить и нахождение для этих случаев точки привязки
- Код: Выделить всё
case FPicAnchor of
paTop: begin {привязка верхней серединой}
VAnchor.X := VBitmap.Size.X / 2;
VAnchor.Y := 0;
end;
paLeft: begin {привязка левой серединой}
VAnchor.X := 0;
VAnchor.Y := VBitmap.Size.Y / 2;
end;
paRight: begin {привязка правой серединой}
VAnchor.X := VBitmap.Size.X;
VAnchor.Y := VBitmap.Size.Y / 2;
end;
paCenter: begin {привязка центром}
VAnchor.X := VBitmap.Size.X / 2;
VAnchor.Y := VBitmap.Size.Y / 2;
end;
else // paDefault
begin
VAnchor.X := VBitmap.Size.X / 2;
VAnchor.Y := VBitmap.Size.Y;
end;
end;
имена файлов в папке переименовываем, добавляя префиксы
Left_ (лево), Right_ (право), Top_ (верх), Center_ (центр)