DirtyBorov
Пользователи-
Постов
71 -
Зарегистрирован
-
Посещение
-
Победитель дней
6
Достижения DirtyBorov
-
Anatoliy отреагировал на ответ на вопрос: Не отрисовываются итемы при FetchOptions.Mode:=fmManual у DataSet'a
-
Alisson R Oliveira отреагировал на вопрос: MaskEdit
-
e479 отреагировал на ответ на вопрос: Можно ли задать минимальные размеры для формы?
-
AngryOwl отреагировал на ответ на вопрос: Можно ли задать минимальные размеры для формы?
-
#WAMACO отреагировал на ответ на вопрос: Пример работы с TObjectList
-
Равиль Зарипов (ZuBy) отреагировал на ответ на вопрос: Пример работы с TObjectList
-
Еще пару вариантов. 1. Можно немного сократить, не указывая Items (почему - ищите в "корнях" property) for i:=0 to List.Count-1 do List[i].Position.Y := List[i].Position.Y+0.5; 2. Можно использовать такой вариант var c: TCircle; begin for c in List do c.Position.Y := c.Position.Y + 0.5; end;
-
Равиль Зарипов (ZuBy) отреагировал на ответ на вопрос: Пример работы с TObjectList
-
Все же более правильный вариант будет такой: with TStringList.Create do try Text := 'ТЕКСТ'; SaveToFile('c:\file.txt'); finally Free; end; Иначе, если при каких то проблемах с файлом, Free не будет вызван и мы получим утечку.
-
Да не ужели? Ни когда бы не догадался... я же всего то 20 лет программирую. Это сарказм. еще могу показать пару вариантов. Например: Label1->Caption = 15 / 3; или так double x = 15, y = 3; Label1->Caption = x / y; Улавливаете ход мысли?
-
Это я уже понял, немного поигравшись с разными вариантами. void __fastcall TForm1::Button1Click(TObject *Sender) { int x = 3.2; Label1->Caption = x; // выведет 3 } Просто я уже очень давно не писал на С++. Не пойму когда и для чего это сделали. В чем профит? Ведь С++ строго типизированый язык. На мой взгляд это только добавит неявных ошибок. Или я не прав?
-
Сегодня один товарищ сломал мне мозг вот таким кодом: void __fastcall TForm1::Button1Click(TObject *Sender) { int x = 2; Label1->Caption = x; } И компилятор это схавал! Как?! Может мне кто нибудь подсказать почему целое, без преобразования присвоилось в лейбу? код проверялся на XE10.1
-
Похоже проблема с прем-стилями. Причем проблема давняя, я ее обнаружил очень давно.
-
DirtyBorov отреагировал на ответ на вопрос: Выпадающий список
-
Очень интересная идея. Спасибо! Буду пробовать
-
DirtyBorov отреагировал на ответ на вопрос: Не работает IFMXPhoneDialerService?
-
DirtyBorov отреагировал на ответ на вопрос: Не работает IFMXPhoneDialerService?
-
DirtyBorov отреагировал на сообщение в теме: [TfgRichEdit]- компонент редактирования текста с поддержкой форматирования
-
Был бы весьма признателен. Куда уж без костылей )
-
При любых звонках, в memo падает только Phone is IDLE и Phone is OFFHOOK. Других сообщений нет. На сколько я понял, факт установки соединения под Android не отловить. Или я не прав? В идеале, хотелось бы отследить состояние исходящего звонка. Т.е. набор, соединение, отбой.
-
Конечно же я его смотрел. И он даже работает. Частично правда. Но все же.. разбираюсь. Спасибо
-
Допили для себя: /// AHex - строка вида "A1,B2,C3" /// Del - резделитель function HexToBytes(const AHex: string; const Del: string = ','): TBytes; var i: Integer; S: TStringDynArray; begin S := SplitString(Trim(AHex),Del); SetLength(Result, Length(S)); for i := Low(S) to High(S) do Result[i] := StrToIntDef('$'+S[i],0); end; function BytesToStr(const ABytes: TBytes): string; var i: integer; begin Result := EmptyStr; for I := Length(ABytes)-1 Downto 0 do Result := Chr(ABytes[I] + 48) + Result; end;
-
Доброго времени. Delphi Berlin. Попробовал воспроизвести пример http://docwiki.embarcadero.com/RADStudio/Seattle/en/Mobile_Tutorial:_Using_the_Phone_Dialer_on_Mobile_Devices_(iOS_and_Android) Выяснилось что событие OnCallStateChanged не вызывается (Android). Пробовал пример из поставки. Просмотрел как описано в разных книгах - везде одно и тоже. Но не работает. Как же получить статус звонка?
-
Из своего опыта (не про Delphi конкретно), приведу реальный пример. Доводилось работать на удаленке в одной международной компании. Уверен все о ней знают и пользуются ее продуктами (без названия, ок?). Так вот в нашей интранете мелкого городского провайдера, лежала подборка их крякнутого софта. Я конечно "стуканул" руководителю и предложил "наехать" на местную контору что бы убрали пиратский софт. Но неожиданно получил от "самого главного боса" нагоняй: "Не вздумай им писать! Пусть софт лежит! Пусть люди им пользуются! Да, именно пиратским. Финансовые потери не сопоставимы с прибылью от популяризации. Пиратство - гарантированная, бесплатная реклама. Тот, кому действительно наш софт нужен - заплатит. Кто не готов платить (например школьники) - не заставишь. По этому оставь маркетинг профессионалам, а сам занимайся поставленными задачами." С тех пор я не лезу в маркетинг.
-
DirtyBorov отреагировал на ответ на вопрос: Не работает TLang
-
DirtyBorov отреагировал на вопрос: Не работает TLang
-
DirtyBorov отреагировал на сообщение в теме: Product Roadmap August 2016
-
DirtyBorov отреагировал на ответ на вопрос: ListView Color Helper
-
DirtyBorov отреагировал на ответ на вопрос: RTF в Memo
-
Именно. Возможно в расчетах что то дергается что приводи к повторному событию. А вообще прав ZuBy, без исходников можно долго гадать и предлагать самые фантастические решения. А на деле все может оказаться просто.
-
DirtyBorov отреагировал на сообщение в теме: событие TFrame.OnResize
-
Событие OnResize может происходить несколько раз подряд. Код в этом событии должен быть как можно короче. Расчет большого количества динамических объектов в этом событии - плохая идея. Лучше действительно воспользоваться отдельным потоком (а для ускорения можно несколько). На вскидку, алгоритм примерно такой: в событии OnResize запускаете поток, в который передаете размеры фрейма. В потоке делает расчеты и генерируете свое событие, которое обрабатывает фрейм - отображает эти самые объекты или их данные. Конечно конкретная реализация зависит от задачи