Последняя версия DataExpress 3 beta от 1 сентября 2019 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Песочница
ИзображениеИзображениеИзображение

Создание кнопок В RunTime

Вопросы о применении того или иного класса или функции.
Аватара пользователя
YurAnt
Эксперт
Сообщения: 3361
Зарегистрирован: Чт апр 13, 2017 8:57 am
Поблагодарили: 4 раза
Контактная информация:

Re: Создание кнопок В RunTime

Сообщение YurAnt » Пт ноя 24, 2017 7:52 pm

Не подскажете, в чём может быть причина?

1. OnCreateForm я прикрутил от винта. Попробую тщательнее изучить...
2. Некоторое столкновение логики последовательности в процедурах. Надо бы найти время, наморщить лоб, потереть виски и думаю выровняем...

KoalaBear
Интересующийся
Сообщения: 171
Зарегистрирован: Сб сен 02, 2017 5:05 pm

Re: Создание кнопок В RunTime

Сообщение KoalaBear » Пт ноя 24, 2017 7:56 pm

Отключал всё, кромеdxQueryGrid1.OnCreateForm:=@QGridOnCreateForm;, результат один :(
Но ведь первый то раз срабатывает правильно!

Аватара пользователя
YurAnt
Эксперт
Сообщения: 3361
Зарегистрирован: Чт апр 13, 2017 8:57 am
Поблагодарили: 4 раза
Контактная информация:

Re: Создание кнопок В RunTime

Сообщение YurAnt » Пт ноя 24, 2017 8:02 pm

Тут проблема в п.1 или п.2 из топика выше... :)
Надо до компа добрацца...

P.S. Щит, до чего уже дошли! Ладно, например, создавать с помощью скриптов недостающую в программе часть логики, но в основном чем занимаемся, так это ломаем встроенную... :lol:
Жесткач...

Аватара пользователя
admin
Разработчик
Сообщения: 4551
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская
Благодарил (а): 19 раз
Поблагодарили: 80 раз

Re: Создание кнопок В RunTime

Сообщение admin » Пт ноя 24, 2017 8:25 pm

Можно проще поступить: перехватить команду пункта меню "Добавить": сохранить запись и вызвать старый обработчик.

KoalaBear
Интересующийся
Сообщения: 171
Зарегистрирован: Сб сен 02, 2017 5:05 pm

Re: Создание кнопок В RunTime

Сообщение KoalaBear » Пт ноя 24, 2017 9:30 pm

admin писал(а):Можно проще поступить: перехватить команду пункта меню "Добавить": сохранить запись и вызвать старый обработчик.

Перехватил, сохранил и вызвал, Спасибо, admin и YurAnt!

Аватара пользователя
Иван
Интересующийся
Сообщения: 83
Зарегистрирован: Сб дек 22, 2018 2:16 pm
Благодарил (а): 8 раз
Поблагодарили: 2 раза

Создание кнопок В RunTime

Сообщение Иван » Ср окт 09, 2019 3:47 pm

Код создает кнопку в области Buttons. Одна картинка работает (закоментина), вторая, нет (пишет не верный формат, ошибка), в чем может быть разница?

Обе картинки корректно просматриваются в url, то есть по сути все перекодировало верно ( просмотр через браузер вставляя вместо точек base64 data:image/png;base64,......... ).

Код: Выделить всё

const Img = 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABd0lEQVR4XqWTUSsEURiGn3N2rLYF2GwrCblBbqnWUrT8EJW4YX8GQqUsP0C5UrlRoCJy74oKuVSiwLKz55jTnCmaSclTb2eqd55vms4ntNb8Bwegf+poDZjmbxQvNkZnJD7TszPdGM5WRzhcyZmwt5xjd2mIncUhthey7K0MYyhM9hAMdLDcPL5heHcV5we7RNGWHcdw+1AiwOEnuAo6s3k+lPYCpYqmpPCe/dMglAwLhBaAX7w53Y/8WZ+DedslLMAKElWSztwEZaUpa3BtKlqTTth6JfoLqG+tJj93zG80pJKmGxagoKUrSUtHrV9QInx6QUuIEggtQUlbEt9OGZJFCoIJ99cvPN2/8xNobK4hk2myvSiBnWZeNpfJ3AfzI0teEk6MicIxmXQKoQETi8SSTsZJOr7vtawYK5xw++py9exy9+YC+JNNtAgJiuublwy012GIScHWfJZqR1Ibj9HoxdDblqDPS0cqToDdxr8vVLBM/17nL4nDpGvP7v9OAAAAAElFTkSuQmCC';
    //  Img = 'Qk1GBQAAAAAAADYAAAAoAAAAEgAAABIAAAABACAAAAAAABAFAABkAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAA0AAAAP8AAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAADPAAAATwAAAEAAAABPAAAAzwAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAQAAAAgAAAAM8AAAAQAAAAUAAAAAAAAABQAAAAEAAAANAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADQAAAA4AAAAFAAAABQAAAA/wAAAKAAAAD/AAAAUAAAAFAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADfAAAA/wAAAEAAAAAAAAAAoAAAAP8AAACgAAAAAAAAAEAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAA4AAAAFAAAABQAAAA/wAAAJ8AAAD/AAAAUAAAAFAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAkAAAANAAAAAQAAAAUAAAAAAAAABQAAAAEAAAANAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAgAAAAP8AAADQAAAAUAAAAEAAAABQAAAA0AAAAM8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAACAAAAAzwAAAP8AAAC/AAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAP8AAAB/AAAAfwAAAP8AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAA8AAAAGAAAAAAAAAAAAAAAGAAAADwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAADQAAAAnwAAAAAAAAAAAAAAAAAAAAAAAACgAAAA0AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAADPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAO8AAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAO8AAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAA/wAAALAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAALAAAAD/AAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAvwAAAL8AAAC/AAAAvwAAAL8AAAC/AAAAvwAAAL8AAAC/AAAAvwAAAL8AAAC/AAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA';

procedure dxButSave (Sender:TObject);
var Bn: TBitBtn; lStrm: TStringStream;
begin
   Bn := TBitBtn.Create(Self.EditWindow.Buttons);
   With Bn do
     Begin
     Parent := Self.EditWindow.Buttons;
     SetBounds(100, 100, 120, 30);
     Caption := 'записать';
     Anchors:=[akTop, akRight];
  //   CanFocus:= true;
  //  OnClick := @ClickSave;
    end;
        try
          lStrm:= TStringStream.Create(DecodeBase64(Img, false));
          lStrm.Position := 0;
          Bn.Glyph.LoadFromStream(lStrm);
        finally
          lStrm.Free;
        end;
end;

Аватара пользователя
Develop-Soft
Сообщения: 801
Зарегистрирован: Вт мар 05, 2019 6:09 pm
Благодарил (а): 36 раз
Поблагодарили: 185 раз
Контактная информация:

Создание кнопок В RunTime

Сообщение Develop-Soft » Ср окт 09, 2019 3:53 pm

Glyph просит Bitmap а вы ему стримите чистый png. Конвертируйте картинку в bmp а только потом в base64. Или используйте другой тип кнопки который поддерживает загрузку картинок из TImageList, а в TImageList можно лить картинку в любом формате через AddFromStream.


Вернуться в «Вопросы по API DataExpress.»