-
Постов
2 517 -
Зарегистрирован
-
Посещение
-
Победитель дней
264
Весь контент Равиль Зарипов (ZuBy)
-
SSL [Android] [6.0] Не удается загрузить SSL библиотеку
Равиль Зарипов (ZuBy) опубликовал вопрос в SSL
Привет Всем! Во общем пришла беда откуда не ждали... не так давно обновился на Android 6.0, все работает за исключением кода где используется https протокол Пишет что не может загрузить библиотеку, хотя в корне я нашел libssl.so Изменили расположение библиотеки в андроиде? Delphi 10 не может загрузить библиотеку по другим причинам? код выдаёт TRUE // uses IdSSLOpenSSL if IdSSLOpenSSL.LoadOpenSSLLibrary then Как решить? -
у меня всё норм, смотрите настройки TForm.Position
-
Привет Всем! Решил поделится впечатлениями по работе с SuperObject'ом и родным JSON'ом тест был файла с 2000+ объектами в JSON файле структура файла была такая { "status":"OK", "last_id":"711", "objects":[ { "obj_id":"1", "obj_acc_id":"1", "obj_cat_id":"24", "obj_title":"13 магистраль", "obj_descr":"ЖК представляет собой комфортный дом, состоящий из 14 блок-секций (подъездов). Расположен в перспективном развивающемся районе по 13 Магистрали с удобным выездом как на левый берег, так и в старую часть города. Вблизи Жилого комплекса распологается новая школа, парк отдыха и культуры.", "obj_address":"ул. Мамышулы - 104, д. 16\/1", "obj_address2":null, "obj_url":"3fa07dd73be072b049529c80c7d74732", "obj_planet":"1", "obj_country":"1", "obj_region":"1", "obj_city":"292", "obj_lat":"51.141", "obj_lon":"71.4835", "obj_insert_dt":null, "obj_update_dt":null, "obj_editted":"0", "obj_updated":"0", "obj_deleted":"0", "obj_showed":"1", "obj_rating":"0", "obj_pro_top":"0", "obj_pro_selected":"0", "obj_pro_unix_dt":"0", "obj_partner":"0", "obj_parent_id":"0", "obj_has_child":"0", "obj_currency":"0" }, // тут далее 2000+ объектов ] } SuperObject Время выполнения: ~01:393 JSON родной Время выполнения: ~01:690 разница не особо ощутима, тем более если будет меньше объектов JSON родной function JSONParse(const aJSONData: string; const aMemo: TMemo): boolean; var aJSValue: TJSONValue; aJSObject, aJSObjArr: TJSONObject; aJSArray: TJSONArray; I: integer; begin Result := false; aJSValue := TJSONObject.ParseJSONValue(aJSONData) as TJSONValue; if Assigned(aJSValue) then begin aJSObject := aJSValue as TJSONObject; aMemo.Lines.Add('status: ' + aJSObject.GetValue('status').Value); if aJSObject.GetValue('status').Value = 'OK' then begin Result := true; if Assigned(aJSObject) then begin aJSArray := aJSObject.GetValue('objects') as TJSONArray; if Assigned(aJSArray) then begin Result := true; aMemo.Lines.Add('last_id: ' + aJSObject.GetValue('last_id').Value); aMemo.Lines.Add('count: ' + aJSArray.Count.ToString); for I := 0 to aJSArray.Count - 1 do begin aJSObjArr := aJSArray.Items[I] as TJSONObject; if Assigned(aJSObjArr) then begin aMemo.Lines.Add(aJSObjArr.GetValue('obj_id').Value + ',' + aJSObjArr.GetValue('obj_acc_id').Value + ',' + aJSObjArr.GetValue('obj_cat_id').Value); aMemo.Lines.Add(aJSObjArr.GetValue('obj_title').Value); aMemo.Lines.Add(aJSObjArr.GetValue('obj_descr').Value); aMemo.Lines.Add(aJSObjArr.GetValue('obj_address').Value); aMemo.Lines.Add(aJSObjArr.GetValue('obj_url').Value); end; end; end; end; end; aJSValue.Free; end; end; SuperObject function JSONSOParse(const aJSONData: string; const aMemo: TMemo): boolean; var xObject: ISuperObject; xCount, I: integer; sfmt: string; begin Result := false; xObject := SO(aJSONData); aMemo.Lines.Add('status: ' + xObject['status'].AsString); if xObject['status'].AsString = 'OK' then begin Result := true; xCount := xObject['objects'].AsArray.Length; aMemo.Lines.Add('count: ' + xCount.ToString); aMemo.Lines.Add('last_id: ' + xObject['last_id'].AsInteger.ToString); for I := 0 to xCount - 1 do begin aMemo.Lines.Add(xObject['objects[' + I.ToString + ']."obj_id"'].AsInteger.ToString + ',' + xObject['objects[' + I.ToString + ']."obj_acc_id"'].AsInteger.ToString + ',' + xObject['objects[' + I.ToString + ']."obj_cat_id"'].AsInteger.ToString); aMemo.Lines.Add(xObject['objects[' + I.ToString + ']."obj_title"'].AsString); aMemo.Lines.Add(xObject['objects[' + I.ToString + ']."obj_descr"'].AsString); aMemo.Lines.Add(xObject['objects[' + I.ToString + ']."obj_address"'].AsString); aMemo.Lines.Add(xObject['objects[' + I.ToString + ']."obj_url"'].AsString); end; end; end; Разница ощутима когда пишешь код, SO намного легче читать Подробней почитать и скачать SO
- 15 ответов
-
- SuperObject
- Json
-
(и ещё 1 )
C тегом:
-
Разрешение стоят? READ_EXTERNAL_STORAGE WRITE_EXTERNAL_STORAGE
- 13 ответов
-
Привет Всем! Много тем на форуме про раскраску TListView, нашел в интернете решение и доработал его Вот что получилось LV_Helper.zip ColorListView.zip Доступно для Seattle ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); //выделенный ListView1.SetColorItemFill(TAlphaColorRec.Gray); // обычный цвет Item ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); // альтернативный цвет Item ListView1.SetColorBackground(TAlphaColorRec.Black); // цвет самого TListView ListView1.SetColorItemSeparator(TAlphaColorRec.Lightgray); // Линия разделения Item'ов ListView1.SetColorText(TAlphaColorRec.Red); // Обычный текст ListView1.SetColorTextSelected(TAlphaColorRec.White); // выделенный текст ListView1.SetColorTextDetail(TAlphaColorRec.Yellow); // текст доп. инфы ListView1.SetColorTextHeader(TAlphaColorRec.Green); // текст заголовка ListView1.SetColorTextHeaderShadow(TAlphaColorRec.Lightgray); // тень текста ListView1.SetColorButtonText(TAlphaColorRec.Orange); // цвет текста кнопки ListView1.SetColorButtonTextPressed(TAlphaColorRec.Orangered); // цвет нажатой кнопки добавлено в Berlin ListView1.SetColorPullRefresh(TAlphaColorRec.Orange); ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Orangered); ListView1.SetColorStretchGlow(TAlphaColorRec.Lime); ModernListView.rar
-
TidIPWatch [TidIPWatch] Узнаём локальный IP
Равиль Зарипов (ZuBy) ответил neohost вопрос в TidIPWatch
можно использовать вот это -
это тоже ответ
-
как напишете такой обязательно поделитесь))
-
Как создать понятно. Непонятно как изменить Вот я создаю маркер var Descrip: TMapMarkerDescriptor; MyLocation: TMapCoordinate; begin MyLocation:=TMapCoordinate.Create(Lat,Lon); Descrip:=TMapMarkerDescriptor.Create(MyLocation); Descrip.Icon:=ImageListMarker.Source[0].MultiResBitmap.Items[1].Bitmap; /// в ImageList у меня хранятся картинки Descrip.Draggable:=True; Descrip.Title:='Title'; Descrip.Snippet:='Snippet'; MyMarker:=MapView.AddMarker(Descrip); // появляется маркер с первой картинкой FMarkers.Add(MyMarker); end; если я пытаюсь загнать в маркер другой Bitmap, то ничего не происходит Marker.Descriptor.Icon.Assign(ImageListMarker.Source[0].MultiResBitmap.Items[0].Bitmap); // картинка не меняется попробуй Visible поменять туда-сюда у маркера
-
создать нужно изначально Marker.Descriptor.Icon := TBitmap.Create;
-
uses maskUtils Edit1.Text := MaskDoFormatText('000.000.000.000;#0',Edit1.Text, #0);
-
Items есть же
-
TObjectList при Free сам делает чистку своих объектов
-
Кто вам мешает создать TListBoxItem var item: TListBoxItem; begin item := TListBoxItem.Create(nil); item.text := 'combo item'; item.parent := Combobox1; Item.tag := 1000; end; доступ к значению (по памяти) ComboBox1.ListItems[0].Tag
-
я к Вашему слайдеру повесил жесты (Left,Right) и нормально так получилось. пришлось вынести пару методов в public, писал вроде об этом уже
-
Для того чтобы поля ввода были видны, в демках есть ScrollableForm Поизучайте её
-
называется Bounce TScroll.AniCalculations.BoundsAnimation := false; TScroll.AniCalculations.Animation := false;
-
а клиенты работают по локалке или через инет? Декстопные по локалке, на тонком клиенте через глобальную корпоративную сеть, считай через инет. т.е. в любом случае логин\пароль записан в клиенте и любой кто занимается или разбирается во взломах может получить вашу пару и полный доступ к БД? правильно я понимаю?
-
Если есть коннект до БД, значит есть возможность и приложение обновить. В моем случае бизнес-логика размазана между приложением и БД и разработка прослоек для преобразования XML-данных только снизит скорость. Ваш вариант безусловно тоже хороший, и у нас некоторые приложения примерно так и работают. каждый клиент имеет прямой коннект к базе?