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

Razmir

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

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

  • Посещение

Посетители профиля

7 504 просмотра профиля
  1. Razmir

    Ping в андроид

    Доброго всем. Подскажите пожалуйста. Мне по работе надо зачастую проверять ping, ноутбук не всегда удобно использовать, поэтому решил сделать приложение для телефона. Использовал следующий код: procedure TForm1.Button1Click(Sender: TObject); begin IdIcmpClient1.Host:='173.194.73.138'; IdIcmpClient1.Ping; end; procedure TForm1.IdIcmpClient1Reply(ASender: TComponent; const AReplyStatus: TReplyStatus); begin ListBox1.Items.Add (' Ответ '+IntToStr (AReplyStatus.MsRoundTripTime) +' TTL='+IntToStr (AReplyStatus.TimeToLive) ); end; В windows работает как надо, под андроидом выдает ошибку - Socket Error # 1. Как с этим бороться, что делать? Заранее благодарю.
  2. Прошу прощения, что поднимаю некротему, но уже устал биться с такой проблемой - В Listbox выводится от 2х до 4х итемов с текстом разной длины, попытался применить этот код, нашел еще другие варианты, уже дошел до того, что тупо создаю label, присваиваю ему текст и autosize в true, высоту label присваиваю итему. Но проблема в том, что любой из кодов нормально работает, если listbox видим на главной форме. Ежели размещаю на другой форме, или на tabcontrol на не основном табе, то почему то код начинает работать только со второго раза. В первый вообще непонятно какие размеры ставятся. Почему так?
  3. Спасибо, но ровно то же самое, появляется только после 2х кликов
  4. Razmir

    SpinBox не отображается в TColumn

    Всем доброго, вопрос такой.RAD Studio 11.2 Нашел как создать свой тип ячейки таким образом: type TSpinBoxCell = class(TSpinBox) private ............................... protected constructor Create(AOwner: TComponent); override; end; ............................... constructor TSpinBoxCell.Create(AOwner: TComponent); begin inherited; ............................... end; procedure TForm1.StringGrid1CreateCustomEditor(Sender: TObject; const Column: TColumn; var Control: TStyledControl); var XSpin: TSpinbox; begin if Column.Index=5 then begin XSpin:= TSpinBoxCell.Create(nil); XSpin.TagObject := Column; XSpin.text:='1'; Control := XSpin; end; end; Проблема в том, что spinbox не отображается пока не кликнешь по ячейке 2 раза, ну и после перехода на другую ячеку он опять исчезает и соответственно не видно результата. Что надо сделать, чтобы это исправить? Заранее благодарю.
  5. Сравнил с вашим вариантом, я не использовал beginupdate, потому как у меня загружается items при onshow и тогда форма как бы подвисает, что не желательно, попробовал с кнопки создавать действительно, практически моментально все создается. Буду думать как организовать загрузку иначе. Спасибо. Уже не впервые выручаете. Отдельное спасибо за подсказку на счет фреймов.
  6. Офигенная вещь фреймы и почему я раньше не знал о них, но тем не менее у меня с ними так:
  7. хм, не подумал об этом
  8. Этот вариант как раз таки без стилизации, динамическое создание компонентов, со стилизацией еще медленнее
  9. Сейчас пробую TFrame, интересная штука, как то раньше не использовал, возможно то, что надо
  10. То есть можно сделать стиль с кнопками и текстом не у итема, а у rectangle, который будет кидаться на пустой итем и у него менять цвет без всяких стилей? точно, надо попробовать.
  11. Так это выглядит визуально, компонентов штук 20
  12. да, тоже думал о таком варианте, даже накидал код, но удалил его, так как такой вариант оказался не приемлем, возникает несколько проблем, например сортировка, несколько колонок и так далее, конечно это все можно решить созданием тонны кода, но зачем тогда стандартные компоненты, если их нельзя использовать?
  13. Код как бы 2 варианта. Первый, это в стилях создаю тот итем как мне нравится, и в цикле присваиваю значения, на примере ListBox: for i := 0 to xcount-1 do begin n:=trunc(date-strtodate(s)); list.Items.Add(nomenklatura[i]); with list.ListItems[list.Count-1] do begin if (n>3) and (n<10) then StyleLookUp:='ListBoxItemBrown1'; if (n<=3) then StyleLookUp:='ListBoxItemGreen1'; if (n>9) then StyleLookUp:='ListBoxItemRed1'; StylesData['Label2.Text']:=xdate[i]; if list.Name='ListBox1' then StylesData['Button1.OnClick'] := TValue.From<TNotifyEvent>(XItemClick); if list.Name='ListBox2' then StylesData['Button1.OnClick'] := TValue.From<TNotifyEvent>(form2.XItemClick); end; end; Здесь вроде как все элементарно, но со стилями вообще жуткие тормоза. Второй вариант динамическое создание компонентов, здесь код побольше: begin FRectangle := TRectangle.Create(Owner); with FRectangle do begin Align:=TAlignLayout(9); Margins.Left:=3; Margins.Right:=3; Margins.Bottom:=3; Margins.Top:=3; XRadius:=7; YRadius:=7; locGradient := TGradient.Create; n:=trunc(date-xdate[i]); if (n>3) and (n<10) then with locGradient do begin Color :=$FFFBFAFA; Color1 :=$FFDABC76; end; if (n<=3) then with locGradient do begin Color :=$FF73FD11; Color1 :=$FF4EA43B; end; if (n>9) then with locGradient do begin Color :=$FFFD834E; Color1 :=$FFC8311A; end; with Fill do begin Kind := TBrushKind.Gradient; Gradient := locGradient; end; end; FDate:=TLabel.Create(self); with FDate do begin Parent:=FRectangle; StyledSettings := []; Text:=xdate[i]; Align:=TAlignlayout.Left; width:=80; Margins.Left:=3; Margins.Bottom:=3; Margins.Right:=3; Margins.Top:=3; textsettings.VertAlign:=TTextalign(0); TextSettings.HorzAlign:=TTextalign(0); TextSettings.Font.Size:=14; TextSettings.Font.Style:=TextSettings.Font.Style + [TFontStyle.fsBold]; end; FName:=TLabel.Create(self); with FName do begin Parent:=FRectangle; Text:=nomenklatura[i]; StyledSettings := []; Align:=TAlignlayout(9); Margins.Left:=5; Margins.Bottom:=3; Margins.Right:=0; Margins.Top:=3; TextSettings.HorzAlign:=TTextalign.Leading; textsettings.VertAlign:=TTextalign(0); textsettings.WordWrap:=true; TextSettings.Font.Size:=14; TextSettings.Font.Style:=TextSettings.Font.Style + [TFontStyle.fsBold]; end; FButton:=TCornerButton.Create(self); with FButton do begin width:=40; Parent:=FRectangle; StyledSettings := []; Align:=TAlignlayout.Right; Margins.Left:=0; Margins.Bottom:=7; Margins.Right:=7; Margins.Top:=7; Xradius:=15; yradius:=15; TextSettings.HorzAlign:=TTextalign(0); textsettings.VertAlign:=TTextalign(0); textsettings.WordWrap:=true; TextSettings.Font.Size:=14; TextSettings.Font.Style:=TextSettings.Font.Style + [TFontStyle.fsBold]; TextSettings.FontColor:=talphacolorRec.Ivory; text:='✔'; OnClick:=FButtonClick; end; FKol:=TCornerButton.Create(self); with FKol do begin width:=40; Parent:=FRectangle; StyledSettings := []; Align:=TAlignlayout(2); Margins.Left:=7; Margins.Bottom:=7; Margins.Right:=0; Margins.Top:=7; Xradius:=15; yradius:=15; text:=floattostr(abs(хvolume[i])); OnClick:=FKolClick; TextSettings.HorzAlign:=TTextalign(0); textsettings.VertAlign:=TTextalign(0); textsettings.WordWrap:=true; TextSettings.Font.Size:=14; if h>=0 then TextSettings.FontColor:=talphacolorRec.Lightgreen else TextSettings.FontColor:=talphacolorRec.Red; TextSettings.Font.Style:=TextSettings.Font.Style + [TFontStyle.fsBold]; tag:=x; end; в этом случае работает быстрей, но тем не менее появление каждого итема можно посчитать
  14. Razmir

    Вывод данных

    Доброго времени. Есть массив данных о товаре, на основании которых должен выводится стилизованный список. Динамически создается Rectangle, который окрашивается градиентом в зависимости от даты поступления, на нем же 2 Button - 1 с информацией об излишке или недостаче, при нажатии на которую появляется окно для коррекции информации, 2 для обновления даты. Так же 2 Label, в которых выводится название товара и дата поступления. Проблема в следующем: пробовал использовать ListBox, ListView, TreeView. При создании списка жуткие тормоза. То есть пока все Item выведутся проходит пару тройку секунд и это при списке из 20 товаров, боюсь представить, как это долго если товаров будет 100 и больше. При чем на андроид таких тормозов нет, только под виндой. Как можно решить данную проблему?
  15. Ох как же я затупил ? ведь ларчик просто открывался. Оказывается проблема вообще не в JSON, на андроид почему то приходит GET запрос с дополнительным символом, из за него то и вылетает. Тема закрыта, спасибо.
×
×
  • Создать...