Autor Téma: FMX - list box z obrazkami ?  (Přečteno 1253 krát)

Offline dee

  • Plnoletý
  • ***
  • Příspěvků: 116
  • Karma: 0
    • Verze Delphi: D7, XE7
FMX - list box z obrazkami ?
« kdy: 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



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  ;)




Offline martinnr

  • Plnoletý
  • ***
  • Příspěvků: 118
  • Karma: 2
    • Verze Delphi: 7,2009,XE7
Re:FMX - list box z obrazkami ?
« Odpověď #1 kdy: 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\

Offline dee

  • Plnoletý
  • ***
  • Příspěvků: 116
  • Karma: 0
    • Verze Delphi: D7, XE7
Re:FMX - list box z obrazkami ?
« Odpověď #2 kdy: 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


Ale kedze ten ListBox item vytvaram az za behu programu tak neviem vyuzit Live Binding na namapovanie BLOBu z obrazkom z DB.

Offline dee

  • Plnoletý
  • ***
  • Příspěvků: 116
  • Karma: 0
    • Verze Delphi: D7, XE7
Re:FMX - list box z obrazkami ?
« Odpověď #3 kdy: 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 ?   :-[


Offline martinnr

  • Plnoletý
  • ***
  • Příspěvků: 118
  • Karma: 2
    • Verze Delphi: 7,2009,XE7
Re:FMX - list box z obrazkami ?
« Odpověď #4 kdy: 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.

Offline dee

  • Plnoletý
  • ***
  • Příspěvků: 116
  • Karma: 0
    • Verze Delphi: D7, XE7
Re:FMX - list box z obrazkami ?
« Odpověď #5 kdy: 26-08-2016, 12:14:48 »
Dakujem ! - Vyriešené  ;) ten "listboxitemnodetail" je OK

Offline dee

  • Plnoletý
  • ***
  • Příspěvků: 116
  • Karma: 0
    • Verze Delphi: D7, XE7
Re:FMX - list box z obrazkami ?
« Odpověď #6 kdy: 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



.asVariant a podobne nepomaha a .AsImage neexistuje  ???

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2648
  • Karma: 25
    • Verze Delphi: XE7 professional
Re:FMX - list box z obrazkami ?
« Odpověď #7 kdy: 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)
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline mjseven

  • Mladík
  • **
  • Příspěvků: 60
  • Karma: 5
    • Verze Delphi: D7, D2006, XE2, Lazarus
Re:FMX - list box z obrazkami ?
« Odpověď #8 kdy: 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


Offline dee

  • Plnoletý
  • ***
  • Příspěvků: 116
  • Karma: 0
    • Verze Delphi: D7, XE7
Re:FMX - list box z obrazkami ?
« Odpověď #9 kdy: 27-08-2016, 07:16:54 »
dik, zaujimave riesenie


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


Offline dee

  • Plnoletý
  • ***
  • Příspěvků: 116
  • Karma: 0
    • Verze Delphi: D7, XE7
Re:FMX - list box z obrazkami ?
« Odpověď #10 kdy: 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



Co robim blbo ?  :-[
« Poslední změna: 28-08-2016, 13:11:46 od dee »

Offline dee

  • Plnoletý
  • ***
  • Příspěvků: 116
  • Karma: 0
    • Verze Delphi: D7, XE7
Re:FMX - list box z obrazkami ?
« Odpověď #11 kdy: 28-08-2016, 13:18:45 »
dokonca nepomaha ani toto  >:(


Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 1641
  • Karma: 68
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (teď XE8 a XE10)
    • O Delphi v češtině
Re:FMX - list box z obrazkami ?
« Odpověď #12 kdy: 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

Embarcadero MVP - Czech republic

Offline dee

  • Plnoletý
  • ***
  • Příspěvků: 116
  • Karma: 0
    • Verze Delphi: D7, XE7
Re:FMX - list box z obrazkami ?
« Odpověď #13 kdy: 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.  

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Křestní jméno zpěváka Gotta: