Forum Delphi.cz

Delphi => Firemonkey => Téma založeno: dee 25-08-2016, 12:37:50

Název: FMX - list box z obrazkami ?
Přispěvatel: dee 25-08-2016, 12:37:50
Zdar,

Este jadna hadam uz posledna otazocka k FMX

Potreboval by som v FireMonkey aplikácii ListBox prípadne iný komponent ktory by umoznoval nieco take

(https://s4.postimg.org/dajlppo4t/Sn_mka.png)

teda ze v ramci itemu mame obrazok a text. Konkretne by slo o to ze mam DataSet (image a varchar + nejake to ID)ktory by som chcel takto nabindovat na listbox. Ten dvojriadkovy text (ako vo vzore) nieje potrebny ... v podstate v mojom pripade dataset obsahuje len obrazok a popis.

Za odpovede dakujem  ;)



Název: Re:FMX - list box z obrazkami ?
Přispěvatel: martinnr 25-08-2016, 12:54:34
v podpise vidim XE5, ale narychlo v najnovsom Berline 10.1 trebars:
var
  Item: TListBoxItem;
begin
  // create custom item
  Item := TListBoxItem.Create(nil);
  Item.Parent := ListBox1;
  Item.StyleLookup := 'CustomItem';
  Item.Text := 'item ' + IntToStr(Item.Index); // set filename
  if Odd(Item.Index) then
    Item.ItemData.Bitmap := Image1.Bitmap // set thumbnail
  else
    Item.ItemData.Bitmap := Image2.Bitmap; // set thumbnail
  Item.StylesData['resolution'] := '1024x768 px'; // set size
  Item.StylesData['depth'] := '32 bit';
  Item.StylesData['visible'] := true; // set Checkbox value
  Item.StylesData['visible.OnChange'] := TValue.From<TNotifyEvent>(DoVisibleChange); // set OnChange value
  Item.StylesData['info.OnClick'] := TValue.From<TNotifyEvent>(DoInfoClick); // set OnClick value
end;

je to priamo demo v tom delphi - Samples\Object Pascal\Multi-Device Samples\User Interface\CustomListBox\
Název: Re:FMX - list box z obrazkami ?
Přispěvatel: dee 25-08-2016, 23:12:29
ano, to riesi cca tu prvu cast otazky teda ako vytvorit taky list box item
nakoniec som o tom nasiel aj tento clanok
http://stackoverflow.com/questions/25349858/custom-tlistbox-style-firemonkey (http://stackoverflow.com/questions/25349858/custom-tlistbox-style-firemonkey)


Ale kedze ten ListBox item vytvaram az za behu programu tak neviem vyuzit Live Binding na namapovanie BLOBu z obrazkom z DB.
Název: Re:FMX - list box z obrazkami ?
Přispěvatel: dee 26-08-2016, 09:20:28
Teoreticky by sa mal dat obrazok priradit k ListBox item cez
ListBoxItem.ItemData.Bitmap....
no skusil som k jednej iteme priradit obrazok priamo natvrdo cez obiect inspector ...no napriek tomu sa v aplikacii nezobrazuje ?

dalsia zrada v firemonkey ?   :-[

(https://s12.postimg.org/3lb98h0al/Sn_mka.png)
Název: Re:FMX - list box z obrazkami ?
Přispěvatel: martinnr 26-08-2016, 10:31:50
pre ten Item musis nastavit prislusny StyleLookup. Nie vsetky zobrazia ten bitmap.
Pre teba asi najlepsie "listboxitemnodetail", ale skus vsetky pripadne.
Název: Re:FMX - list box z obrazkami ?
Přispěvatel: dee 26-08-2016, 12:14:48
Dakujem ! - Vyriešené  ;) ten "listboxitemnodetail" je OK
Název: Re:FMX - list box z obrazkami ?
Přispěvatel: dee 26-08-2016, 13:22:33
To dynamicke vytvaranie ListBox Itemov by bolo teda vyiesene, zobrazenie obrazku tiez no mam este problem ako zabezpecit dotiahnutie obrazku z databazy

(https://s12.postimg.org/77rwwcvm5/dyna.png)

.asVariant a podobne nepomaha a .AsImage neexistuje  ???
Název: Re:FMX - list box z obrazkami ?
Přispěvatel: Stanislav Hruška 26-08-2016, 21:26:00
Do kelu, dávaj sem priamo kód a nie je nejaké snímky >:(
A čo takéto pretypovanie TBitmap(FDSP1.FieldByname('img').Value)
Název: Re:FMX - list box z obrazkami ?
Přispěvatel: mjseven 26-08-2016, 23:01:51
Předpokládám, že obrázky máš v db uložený v binárním podobě.
Pak je potřeba obsah toho pole uložit do streamu a z něj teprve do bitmapy.

Mrkni na tohle: http://stackoverflow.com/questions/27207049/loading-a-blob-field-into-a-listbox (http://stackoverflow.com/questions/27207049/loading-a-blob-field-into-a-listbox)

Název: Re:FMX - list box z obrazkami ?
Přispěvatel: dee 27-08-2016, 07:16:54
dik, zaujimave riesenie


 nakoniec som vypatral este jedno, priamo funkcia na prevod  :)

(https://s12.postimg.org/tz4ntpq59/Sn_mka.png)
Název: Re:FMX - list box z obrazkami ?
Přispěvatel: dee 28-08-2016, 13:09:01
Pokusam sa o opacny postup teda poslat obrázok (blob) ako parameter pre FDStoredProc, no tu to zjavne take jednoduche nieje.
Na zvyraznenom riadku to skonci na AccessViolation

(https://s11.postimg.org/m4xwm0acz/Sn_mka.png)

Co robim blbo ?  :-[
Název: Re:FMX - list box z obrazkami ?
Přispěvatel: dee 28-08-2016, 13:18:45
dokonca nepomaha ani toto  >:(

(https://s15.postimg.org/7n7olnqcr/fok.png)
Název: Re:FMX - list box z obrazkami ?
Přispěvatel: Radek Červinka 29-08-2016, 09:04:09
Pokusam sa o opacny postup teda poslat obrázok (blob) ako parameter pre FDStoredProc, no tu to zjavne take jednoduche nieje.
Na zvyraznenom riadku to skonci na AccessViolation


Co robim blbo ?  :-[


a) postujes sem obrazky misto pouzit tagu code (ber to jako napomenuti)
b) http://forum.delphi.cz/index.php/topic,13206.msg84323.html#msg84323

Název: Re:FMX - list box z obrazkami ?
Přispěvatel: dee 30-08-2016, 05:47:11
a. skusim sa polepsit  :)
b. Dik ale bohuzial to asi neviem spravne pouzit.  :-[
Kód: Delphi [Vybrat]
  1.   (FDStoredProc1.ParamByName('@img1') as TBlobField).LoadFromStream(ms);
  2. //[dcc32 Error] unewoperation.pas(103): E2010 Incompatible types: 'TFDParam' and 'TBlobField'
  3.  
  4.   (FDStoredProc1.ParamByName('@img1').value as TBlobField).LoadFromStream(ms);
  5. //[dcc32 Error] unewoperation.pas(103): E2015 Operator not applicable to this operand type
  6.  
  7.