Доброго времени суток! Пытаюсь написать читалку сообщений через VK API
| Код | procedure TDialogLoad.Execute; var i: Integer; JSON: TJSONValue; Res: TDateTime; begin http := THTTPSendEx.Create; http.GET(api_vk_link + 'messages.getDialogs' + access_token + '&preview_length=100', html); html := Utf8ToAnsi(html); http.ClearAll; JSON := TJSONObject.ParseJSONValue(html); for I := 0 to JSON.GetValue<TJSONArray>('response.items').Count - 1 do begin Res := UnixToDateTime(StrToInt(JSON.GetValue<string>('response.items[' + inttostr(I) + '].message.date'))); date := DateToStr(Res); body := JSON.GetValue<string>('response.items[' + inttostr(I) + '].message.body'); user_id := JSON.GetValue<string>('response.items[' + inttostr(I) + '].message.user_id'); Synchronize(sync); end; http.Free; end; procedure TDialogLoad.sync; var dynpanel: TPanel; begin dynpanel := TPanel.Create(Form1.ScrollBox1); with dynpanel do begin Parent := Form1.ScrollBox1; Height := 65; Align := alTop; end; with TImage.Create(dynpanel) do begin Parent := dynpanel; Height := 50; Width := 50; Left := 16; top := 8; end; with Tlabel.Create(dynpanel) do begin Parent := dynpanel; Left := 72; top := 8; Caption := user_id; end; with Tlabel.Create(dynpanel) do begin Parent := dynpanel; Left := 72; top := 35; Caption := date; end; with Tlabel.Create(dynpanel) do begin Parent := dynpanel; Left := 184; top := 24; Caption := body; end; end;
|
Вот так вывожу список диалогов, правильный ли я вообще путь выбрал для этого? Или есть способ проще чем динамически создавать панели?
Если да, то есть пару вопросов по коду:
1) Панели создаются уже над созданными панелями, а не идут вниз, и получаются что диалоги идут снизу вверх, как исправить? 2) Мне после клика по какой-то панельки нужно загрузить диалог, как можно как-то привязать id диалога ("id") к панелям? (надеюсь понятно изъяснился...) |