Перейти к содержанию
Fire Monkey от А до Я

Rusland

Пользователи
  • Постов

    1 204
  • Зарегистрирован

  • Посещение

  • Победитель дней

    26

Весь контент Rusland

  1. Это уже как говорится: "на вкус и цвет...". Тут главное учесть, что если программа "умерла", то после перезапуска она должна подгрузить предыдущую информацию. Почему бы не писать в SQLite?
  2. Подправил uChatBox.pas под себя, заменил TLabel на TText, теперь проблем с отрисовкой бордюра не наблюдаю. Добавил выделение заголовка и градиент в "облачка". ChatBox.zip
  3. Похоже этот бордюр бывает только в Windows (в Android не наблюдаю), причем если окно свернуть/развернуть или проскроллировать сообщения, то бордюр исчезает. Видимо что-то с прорисовкой. Пробовал делать Invalidate - не помогает.
  4. Процедуру перепроверил - один в один - странно, у меня и на андройде, и на Windows одинаковый размер облаков. Попробовал в Seattle - действительно нормальные размеры облаков, а в Berline все одинакового размера... мдаа...
  5. Да, я уже попробовал ставить False - безрезультатно ^^^
  6. Ответ сервером дается 401 - сервер и должен его выдать, потому что пришел запрос без авторизации. А вот второй запрос приходит нормально с авторизацией. Сделал aHTTPClient.HandleRedirects:=false; Все равно в программе вижу сразу ответ код 200. Что-то этот компонент делает странное в своих недрах...
  7. Спасибо. Пока этот чат нравится больше остальных. После очистки длинного чата, остается висеть скроллер VertScrollBox. Как его скрыть? Как сделать, например, на longtap облачка открытие url (вместо отображения кнопки... не очень красиво выходит) или предложить выбор (если ссылок несколько)? (копирование из мемо не интересует, поэтому готов им пожертвовать... тем более что если CalloutRectangle не белого цвета, то при активации мемо - он белого цвета)
  8. Заработало! Но почему-то появляются полоски: Отчего это? И при нажатии на кнопку Открыть урл не открывается. procedure TChatBox.ButtonClick(Sender: TObject); Var URL : String; begin URL:=TButton(Sender).HelpKeyword; if Assigned(FonURLButtonClick) then FonURLButtonClick(URL); // сюда не заходит end; И как очистить чат?
  9. Я думаю чаще чем раз в день нет смысла выдавать пуш одному и тому же человеку, иначе превратится в спам рассылку )
  10. а в Deployment они видны?
  11. В чем проблема то была? )
  12. zairkz, на картинке видно что размер как-то подсчитывается. Запустил этот пример и вижу: Почему на коротких словах ширина "облачка" длинная? И еще вопрос: как можно очистить чат? (как удалить все из TPresentedScrollBox?) Попробовал так - безрезультатно - ничего не удаляется. procedure TFormMain.ChatClean(); var i: word; begin for i:= Psb.ControlsCount-1 downto 0 do if (Psb.Controls[i] is TText) or (Psb.Controls[i] is TLayout) then Psb.Controls[i].Free; end;
  13. Rusland

    Двойной запрос NetHTTPClient

    Пытаюсь авторизоваться на локальном сервере: type TResponser = record Response: string; Code: integer; end; ... procedure TFrmLogin.OnAuthEvent(const Sender: TObject; AnAuthTarget: TAuthTargetType; const ARealm, AURL: string; var AUserName, APassword: string; var AbortAuth: Boolean; var Persistence: TAuthPersistenceType); var MyCredential: TCredentialsStorage.TCredential; begin MyCredential := TNetHTTPClient(Sender).CredentialsStorage.FindAccurateCredential(AnAuthTarget, ''); AUserName := MyCredential.UserName; APassword := MyCredential.Password; end; procedure TFrmLogin.OnValidateServerCertificate( const Sender: TObject; const ARequest: TURLRequest; const Certificate: TCertificate; var Accepted: Boolean); begin Accepted:=true; end; function TFormLogin.LoginToServer(login,pass:String):TResponser; var aResponse: IHTTPResponse; aResponser: TResponser; sStream: TStringStream; aHttpClient: TNetHTTPClient; begin try aHTTPClient := TNetHTTPClient.Create(nil); aHTTPClient.OnAuthEvent:=OnAuthEvent; aHTTPClient.OnValidateServerCertificate:=OnValidateServerCertificate; aHTTPClient.CredentialsStorage.AddCredential (TCredentialsStorage.TCredential.Create(TAuthTargetType.Server,'', sURL, login, pass)); aHTTPClient.AllowCookies :=true; aHTTPClient.AcceptLanguage:='ru-RU;q=0.8,en-US;q=0.5,en;q=0.3'; aHTTPClient.ContentType :='text/json'; aHTTPClient.AcceptCharset :='utf-8'; aHTTPClient.Accept :='text/json,text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'; try sStream := TStringStream.Create(); try aResponse := aHttpClient.Get(sURL, sStream); aResponser.Response:=sStream.DataString; aResponser.Code:=aResponse.StatusCode; // тут получаю код 200 Result:=aResponser; except end; finally sStream.Free; end; finally aHttpClient.Free; end; end; После get cразу получаю код 200 (от ответного кода я решаю авторизован я или нет). Однако на сервер реально приходит 2 запроса: первый без basic authorization (и на него дается в ответ код 401), второй с basic authorization (на него уже в ответ код 200). Почему проходит два запроса, когда в программе я вижу только один?
  14. Евгений Корепов, а как пользоваться этим чатом? Вот, например, я подцепил к проекту unit ChatBox и пытаюсь добавить сообщения. public { Public declarations } chat:TChatBox; end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.Button1Click(Sender: TObject); begin chat.AddMessage(1,'22:15','Автор1','сообщение',TMessagePos.msgLeft); chat.AddMessage(2,'22:16','Автор2','сообщение2',TMessagePos.msgRight); end; procedure TForm1.FormCreate(Sender: TObject); begin chat:=TChatBox.Create(Layout1); end; procedure TForm1.FormDestroy(Sender: TObject); begin chat.Destroy; end; но ничего не происходит.
  15. Rusland

    Align кнопок

    Есть несколько кнопок в ряд внутри Layout. У всех Align=Right. В программе часто делаются манипуляции - некоторые кнопки скрываются. Из-за этого порядок кнопок нарушается (меняются между собой местами). Как его можно восстановить или программно задать (какая кнопка первая, какая вторая и т.д.)?
  16. Rusland

    Мини чат на ListView

    Помню кто-то выкладывал пример как с помощью listview (а может это был другой компонент) сделать что-то типа чата, но не помню где это видел (примеры whatsapp, telegram). Где искать?
  17. Rusland

    Exception в System

    Странно что так редко говорят о Segmentation fault, я его ловлю с завидной регулярностью. Правда в моем случае это бывает не в System, а в FMX.Graphics (на 5-ом андройде чаще чем на 4-ом). Причину найти - самое сложное, ведь глюк непостоянен.
  18. В конце какой-то код приписывать надо, как нумерация, тогда телефон при получении нескольких смс сам их склеит... лет 10 назад этим занимался, к сожалению, сейчас уже не вспомню
  19. Может самому разбивать на несколько СМС в зависимости от текста (кол-во символов, лат/кир)?
  20. Kitty, есть же пример Notification для CB в \CPP\Mobile Snippets\Notifications\SendCancelNotification неужели приложение не стартует при вызове приложения?
  21. Интересный сервис
  22. Rusland

    NetHTTPClient и SSL

    То-то я заметил ConnectionTimeout и ResponseTimeout и удивлялся что раньше не видел... хм... значит они только появились
  23. Попробую объяснить на примере: ListViewInRX10.1.zip procedure TForm1.Button1Click(Sender: TObject); var Item: TListViewItem; i:integer; begin Lsv.Items.Clear; Lsv.BeginUpdate; for i:=0 to 4 do begin try Item :=Lsv.Items.Add; Item.Tag := i; Item.Text := 'ул.Ленина, д.'+IntToStr(i+1); Item.Detail := 'название'; Item.Accessory:=TAccessoryType.Detail; begin if i mod 2 = 0 then begin Item.ImageIndex:=0; SetItemColor(Lsv,i,$FFFFFF00,0); end else begin Item.ImageIndex:=1; SetItemColor(Lsv,i,$FFFFFF00,1); end; end; finally end; end; Lsv.EndUpdate; end; procedure TForm1.SetItemColor(const aLV: TListView; const aItemIndex: integer; const aCustomColor: TAlphaColor; aTip:integer; const aUseCustomColor: Boolean = true); begin if (aLV.ItemCount>0) and (aItemIndex>=0) then with aLV.Items[aItemIndex] do begin Data['aUseCustomColor'] := aUseCustomColor; Data['aCustomColor'] := aCustomColor; if aTip=0 then Data['aCustomSelectedColor'] := $FFFF0000 // красный цвет фона выделенного объекта else Data['aCustomSelectedColor'] := $FF00FF00; // зеленый end; end; Если я кликаю на каком-нибудь Item, я ожидаю что цвет выделенного будет через один то красный, то зеленый. А в результате получаю всегда красный.
  24. Допустим через один (i mod 2 =0) при выделении item были либо красный либо зеленый (подчеркиваю: при выделении). А у меня получается что выделенные item-ы могут быть только либо красный, либо зеленые.
  25. Получилось раскрасить выделенные объекты в определенный цвет. А вот как сделать два варианта цвета не пойму Можно как-то двум Item-ам задавать отдельные стили?
×
×
  • Создать...