Delphi10.3 FMX 上の Listvew

解決


はくちゃん  2020-06-18 11:15:19  No: 148825

タップされたITEMの順位番号、 レコード内容等を取得したいのですが、 どのようにしたら可能でしょうか?


はくちゃん  2020-06-19 12:46:44  No: 148832

説明不足ですいません。 androidスマホ対応の1ヶ月毎の縦型万年カレンダーをLISTVEWを使って以下のように表示させています。
例えば"6/2"の表示部分をタップしたとき、当該ラインのライン番号、表示している文字等を取得したいのです。
月単位でそのつど表示させています。
外部からのデータの読み込みはありません

6/1(月)
6/2(火)
6/3(水)
6/4(木)  
     ・
     ・    

よろしくお願いいたします。


KONNOYA  2020-06-19 14:47:44  No: 148834

試しておりませんが、
TListView.OnTapイベントではなく、TListView.OnItemClickイベントで、
procedure   TForm1.ListView1ItemClick( const Sender : TObject; const Item : TListViewItem );
と、該当ラインのItemが渡されますから、

Item.Index、Item.Text、Item.Detail、Item.Checked等で取得できませんか?


はくちゃん  2020-06-20 07:13:08  No: 148836

ご指摘の通り、TListView.OnItemClickに変更して以下の通り試しましたら、必要な情報を取得出来ました!有り難うございました。

procedure TForm1.ListView1ItemClick(const Sender: TObject;
  const AItem: TListViewItem);
var
Li: TListViewItem;
begin
    Li := listview1.items[Listview1.ItemIndex];
       showmessage('Calender '+Li.Text+'  Item No. '+Inttostr(Listview1.ItemIndex+1));
end;

引き続きの質問なのですが、逆に クリックした itemに文字列を追加することは可能でしょうか?
スケジュール表作成を目指しております。
引き続きよろしくお願いいたします。


はくちゃん  2020-06-20 14:13:09  No: 148837

たとえば、 上記 item "6/2(火)"の文字列に " 今日は東京" の文字列を追加して表示させたいのですが。。


igy  2020-06-20 22:46:30  No: 148838

試していませんが、
Li.Text := Li.Text + '今日は東京';
では、ダメですか?


KONNOYA  2020-06-22 08:42:02  No: 148842

ちょっと説明不足ですみません。

procedure TForm1.ListView1ItemClick( const Sender : TObject; const AItem : TListViewItem );
begin
  // クリックされた行番号を格納
  Caption := AItem.Index.ToString;
  // クリックされた行の文字列に「今日は東京」の文字列を追加
  AItem.Text := AItem.Text + '今日は東京';
end;

これで出来ませんか?
AndroidとiPhone共に動作を確認しました。


はくちゃん  2020-06-22 09:56:18  No: 148843

いつもお世話様です。ご連絡ありがとうございます。 
帰宅後動作確認させていただき、 ご返信いたします。
よろしくお願いいたしますm(__)m


はくちゃん  2020-06-22 20:38:58  No: 148848

igy様、KONNAYA様

ありがとうございます。ばっちりです!!
I=I+1 の文字列版ですね!
何か特殊な処理が必要かとおもっていました。
すっきりししました!


はくちゃん  2020-06-22 21:46:34  No: 148849

お陰様で解決しましたので、一度クローズさせていただきます。 引き続きまたよろしくお願いいたします。


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加