Перейти к содержанию
  • Регистрация
  • 0
dim

Как получить доступ к TListBoxItem на котором нажали Speedbutton

Вопрос

Создаю динамически ListBoxItem и размещаю на них кнопу

  lbi:=TListBoxItem.Create(ListBox2);
  lbi.Parent:=ListBox2;
  lbi.StyleLookup:='listboxitembottomdetail';
  lbi.Height:=57;
  lbi.ItemData.Text:='Добавить';
  lbi.ItemData.Detail:='';

  SpeedButton2:=TSpeedButton.Create(lbi);
  SpeedButton2.Action:=del_adres;
  SpeedButton2.Align:=TAlignLayout.Right;
  SpeedButton2.StyleLookup:='trashtoolbutton';
  SpeedButton2.Width:=48;
  SpeedButton2.Parent:=lbi;
  SpeedButton2.Tag:=ListBox2.Count-2;

как при нажатии на кнопку получить ее ListBoxItem чтобы удалить

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендуемые сообщения

  • 0
<SpeedButton>.Parent

парент кнопки и есть айтем, зная его можно манипулировать им

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

так у тебя там Action завязан, его убери и сделай через событие

test_del.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
11 часов назад, dim сказал:

при нажатии на кнопку получить ее ListBoxItem чтобы удалить

Ох уж эти любители "удалить себя из себя".

dim - обрати внимание на тему

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Похожий контент

    • От dnekrasov
      Механизм, который позволяет использовать иконку символьного шрифта вместо картинки на кнопках.
      Уж очень мне не нравится стандартный механизм добавления картинки на кнопку, поэтому, пару лет назад, начал искать альтернативу и остановился на символьных шрифтах (таких как FontAwesome). Вот что из этого получилось:

      IconicFontGlyph.zip 
      Под Windows работает без проблем - на других системах не пробовал.
      Как это работает
      Добавляем в проект модуль UIExt.IconicFont.pas Добавляем в проект модули описания шрифтов, которые будут использоваться (см. ниже) Описываем символ, который будет использоваться в качестве иконки (см. ниже) В обработчике  события OnApplyStyleLookup кнопки пишем одну строчку - TIconicFont.ApplyButtonStyle(TCustomButton(Sender)); Модули описания шрифтов
      UIExt.IconicFont.FA.pas -  Font Awesome UIExt.IconicFont.IM.pas - IcoMoon UIExt.IconicFont.IML.pas - IcoMoon Lindua UIExt.IconicFont.IMLN.pas - IcoMoon Linear UIExt.IconicFont.MDI.pas - Material Design Icons UIExt.IconicFont.WHHG.pas - WebHostingHub Glyphs Описание символа
      Для описания символа используется свойство StyleName (не знаю как остальные - лично я его нигде не использую). Само описание - это строка в определённом формате:
      [Короткое имя шрифта];[код символа];[размер шрифта];[цвет]
      2 первых поля - обязательны. Короткое имя шрифта можно увидеть в его модуле описания (TIconicFont.Short)
      Примеры можно увидеть на скриншотах выше (текст над кнопками).
      Ну и напоследок - небольшая демка IconicFontDemo.zip
    • От x11
      У ListBoxItem нужно реализовать вызов контекстного меню.
      На ListBoxItem лежит ImagesViwer с картинкой и у ImagesViwer свойство HitTest отключено.
       
      почитал справку http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Gestures_in_FireMonkey
      сделал как описано:
       
      procedure TfmEditObject.AddPhoto(Image: TBitmap); Var item: TListBoxItem; imageV: TImageViewer; begin item := TListBoxItem.Create(lbPhotos); item.parent := lbPhotos; item.text := ''; item.Width := lbPhotos.Width; item.Touch.GestureManager := GestureManager1; item.Touch.InteractiveGestures := [TInteractiveGesture.LongTap, TInteractiveGesture.DoubleTap]; item.OnGesture := ListBoxItemGesture; imageV := TImageViewer.Create(lbPhotos); imageV.HitTest := False; imageV.Parent := item; imageV.Align := TAlignLayout.Client; imageV.Bitmap.Assign(image); item.SetFocus; end; procedure TfmEditObject.ListBoxItemGesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean); Var s: string; begin if GestureToIdent(EventInfo.GestureID, s) then ShowMessage( S ); if EventInfo.GestureID = igiLongTap then ShowMessage( Sender.ClassName ); Handled := True; end;  
      Ничего не происходит. На на андроид устройстве, ни на винде.
       
       
      И правильно ли я понял, что для LongTap, т.е. для InteractiveGestures не нужен GestureManager?
       

    • От VirusZ2D
      Есть 5 итемов  у listbox свойство Allowc drag = true  итемы переносятся в нутри листа все путем 
      но как только включаю у итемов HitTest = true переносимость проподает (((.
      (Еще замечание если DragMode = dmAutomatic и HitTest = true  то итем можно поменять с итемом у которого HitTest = false)
      Как заставить их меняться ?
    • От x11
      Первая картинка - Master. Здесь всё правильно. А вот две другие картинки
      Вторая - iPhone 5,5"
      Третья - Android 5" Phone
      Четвертая - Android 7" Tablet
      У всех компонент Align := Right.
      Это зависит от каких-то свойств?
       
      Проверил на iPhone 4"  - норм. На iPhone 4.7"  - тоже криво.




    • От Pax Beach
      Коллеги, хочу раскрасить кнопки, не могу найти свойство в DesignTime. Может нет такового?
      А в RunTime это делать через SpeedButton.Canvas.FillRect и перерисовку текста или картинки?
      Подскажите пожалуйста, кто знает?
       
    • От chaplin.u@gmail.com
      У меня есть ListBox с 7 ListBoxItem , на каждом ListBoxItem есть 7 CheckBox-ов.
      Получается как-бы двухмерный массив CheckBox-ов. 
      Какой самый простой способ обращаться к каждому конкретному CheckBox-у ?
    • От Rusland
      У меня стоит WordWrap=true.
      Бывает так что текста больше чем обычно и он весь не помещается и обрезается. Как программно определить что текст не умещается?
    • От Rusland
      Добавил на ListBoxItem эффект InnerGlowEffect. Trigger=IsPressed=true 
      Но когда я нажимаю на этот ListBoxItem, то никакого эффекта не происходит. Почему?
      Пробовал все возможные Trigger-ы - никакого толку.
      Вообще реально придать какой-нибудь эффект помимо InnerGlowEffect?
       
      PS. Пока делаю так: 
      procedure TFrmMain.ListBoxItem1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin InnerGlowEffect1.Enabled:=true; end; procedure TFrmMain.ListBoxItem1MouseEnter(Sender: TObject); begin InnerGlowEffect1.Enabled:=true; end; procedure TFrmMain.ListBoxItem1MouseLeave(Sender: TObject); begin InnerGlowEffect1.Enabled:=false; end;  
    • От Alex924
      В качестве masterbutton использую кнопку, но есть такая проблема что подпись у SpeedButton вылезает за края TMultiView когда оно в свёрнутом состоянии, мне нужно чтобы в свёрнутом состоянии были видны только картинки у кнопок, а в развёрнутом был виден ещё и текст

    • От ivadimos
      Могу ли я каким-то образом вставить Item не в конец списка, а после определённого?
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...