Лидеры
Популярный контент
Показан контент с высокой репутацией 16.03.2016 во всех областях
-
Обновление форума
Alex7wrt и 5 других отреагировал Brovin Yaroslav за тема
Добрый вечер, уважаемые форумчане, Вместе с Андреем Ефимовым мы проделали огромную работу, чтобы сделать наш форум еще удобнее и лучше, а так же решить ряд проблем, возникших в недавнее время. Работа над технической составляющей форума закончена. Однако, работа над структуризацией и модерированием тем начинается, чтобы сделать форум еще удобнее и эффективнее в решении ваших задач. Основные нововведения Быстрый вход. Использование нескольких систем входа на сайт (VK, Facebook, Google, Microsoft, Linked-In, Twitter) Введение нового формата ответов: Вопрос/Ответ. Теперь при вводе вопроса, ценится полнота и исчерпанность ответа. Это, возможно, потребует изменение структуры форума, чтобы разделять вопросы от обсуждений. Пока этот формат в процессе оценки. Мгновенные оповещения. Поддержка оповещений браузером. Теперь, если ваш браузер открыт, а форум закрыт, то при получении сообщения или новых ответов в ваших темах, вы получите системное уведомление.6 баллов -
Можно помучаться с TListView, но я остановился на TPresentedScrollBox и стилизованных Label'ах (облачки сообщений, под разные scale на png 9patch), скорость скролла хорошая, плюс есть боунсы и тд. Приложил исходники проекта, также в архиве отдельно chat.style procedure TForm2.ChatUp(UsID: integer; LastId: integer; CText: string); var Labb: TLabel; Marg: Single; LT: TLayout; begin LT := TLayout.Create(PR); LT.Parent := PR.Content; LT.Margins.Top := 2; LT.Align := TAlignLayout.Top; LT.Position.Y := PR.ContentBounds.Height + 50; Marg := PR.Width * 0.20; Labb := TLabel.Create(PR); Labb.Parent := PR; Labb.Align := TAlignLayout.Top; Labb.AutoSize := True; Labb.WordWrap := True; Labb.TextSettings.WordWrap := True; if UsID = 0 then begin Labb.Margins.Left := Marg; Labb.Margins.Right := 4; Labb.TextAlign := TTextAlign.Trailing; Labb.StyleLookup := 'labelchat_green'; end else begin Labb.Margins.Right := Marg; Labb.Margins.Left := 4; Labb.TextAlign := TTextAlign.Leading; Labb.StyleLookup := 'labelchat_white'; end; Labb.NeedStyleLookup; Labb.Text := ' ' + CText + ' '; LT.Height := Labb.Height + 4; Labb.Parent := LT; if UsID = 0 then Labb.Align := TAlignLayout.Right else Labb.Align := TAlignLayout.Left; end; Первые признаки шизофрении: Chat.zip6 баллов
-
блин, имхо, плохое умолчание (( и опять имхо же дизайн уж слишком раздольный получился 2-3 поста на FullHD - как-то жирно. даже в окне редактора высота строки 300%3 балла
-
TksChatView component for building iOS style chat applications2 балла
-
Было бы очень хорошо вставлять видео, чтобы можно было размещать небольшие ролики, показывающие наглядно какие-то проблемы, их решения, небольшие мастер классы от профи!2 балла
-
Обновление форума
Равиль Зарипов (ZuBy) и ещё один отреагировал Brovin Yaroslav за тема
Лимит вообще убрал. Спасибо за информацию.2 балла -
Обновление форума
Вячеслав и ещё один отреагировал Brovin Yaroslav за тема
Я понял, постараюсь сделать такой же блок, который был в предыдущей версии форума.2 балла -
Обновление форума
Равиль Зарипов (ZuBy) и ещё один отреагировал #WAMACO за тема
Спорно, а если я в конце дня хочу посмотреть все сообщения за день! В старом варианте, я сразу видел сообщения за сегодня, за вчера и т.д.2 балла -
Обновление форума
zairkz и ещё один отреагировал Равиль Зарипов (ZuBy) за тема
Еще нужно сгруппировать "последние сообщения, а то одна тема везде2 балла -
Если есть возможность в мобильной версии форума "Последние темы" поднять в начало страницы. Думаю дл многих актуально...2 балла
-
Обновление форума
zairkz и ещё один отреагировал Равиль Зарипов (ZuBy) за тема
исправьте отображение Города под аватаркой. и не всегда темы становятся прочитанными... не удобно а уведомлением вообще классно стало жить!2 балла -
Супер! Гораздо удобнее! А мобильное приложение планируется?2 балла
-
Отличные изменения. Ещё было бы неплохо увидеть закреплённую верхнюю панель при скролле вниз, ну или плавающую кнопку которая будет скролить вверх2 балла
-
[TAniIndicator] Почему у меня не виден TAniIndicator, помещенный в TListBox?
zairkz и ещё один отреагировал Brovin Yaroslav за вопрос
Добрый день, Чтобы его запустить, нужно установить свойство Enabled = True Это свойство его включает. На платформе Windows вы его не видите потому, что первая фаза анимированных кругов начинается с пустого кадра.2 балла -
Обновление форума
Равиль Зарипов (ZuBy) и ещё один отреагировал Rusland за тема
Еще бы не плохо в Последние сообщения видеть дату последнего сообщения в теме, а не дату создания.2 балла -
Обновление форума
Brovin Yaroslav и ещё один отреагировал Andrey Efimov за тема
Safari 6 Chrome 27 Firefox 222 балла -
[TidTCPClient] В IdTCPClient возникает Max line length exceeded при чтении
Евгений Корепов и ещё один отреагировал rareMax за вопрос
Для начала - я бы попробовал обновить инди. Та версия, что поставляется с Делфи - немного отстает. Постоянно выходят багфиксы. Скачать последнюю версию можно с помошью SVN клиента(ваш любимый либо встроенный в ИДЕ): https://svn.atozed.com:444/svn/Indy10 Имя: Indy-Public-RO пароль пустой оставь2 балла -
А еще вроде как новые устройства на Intel Atom поддерживают эмуляцию, поэтому вам только старые устройства отключить на которых приложения вообще не запустятся. На эмуляторе Intela нормально все работает если правильно делать. А "работающие и пользующиеся популярностью приложения" наврятли оно таким станет, если у ~30% пользователей не будет возможность даже скачать (Допустим 30% скачало, из них 10% не запустилось). Кроме того все надеемся на новые версии студии в котором будет поддержка Intel2 балла
-
Обновление форума
Равиль Зарипов (ZuBy) отреагировал Brovin Yaroslav за тема
Кнопку добавил. Теперь при прокручивании вниз, слева появляется кнопка по всей высоте сайта для прокрутки контента вверх1 балл -
Благодарю за ответ, пытался исходник поредактировать — винда на права доступа ругалась. Сделал так: unit Forms.Persistent; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, {$IF Defined(WIN32) OR Defined(WIN64)} Winapi.Windows, FMX.Platform.Win, Winapi.Messages, {$ENDIF} FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs; type TfrmPersistent = class(TForm) {$IF Defined(WIN32) OR Defined(WIN64)} private FHwnd: HWND; FOldWndProc: LONG_PTR; protected procedure CreateHandle; override; procedure DestroyHandle; override; {$ENDIF} end; implementation {$R *.fmx} {$IF Defined(WIN32) OR Defined(WIN64)} { TfrmPersistent } procedure TfrmPersistent.CreateHandle; function WindowProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; var frm: TCommonCustomForm; begin frm := FindWindow(hwnd); Assert(frm.InheritsFrom(TfrmPersistent)); if Assigned(frm) then begin if uMsg = WM_GETMINMAXINFO then begin with PMinMaxInfo(LParam)^.ptMinTrackSize, frm do begin X := 950 + Width - ClientWidth; Y := 500 + Height - ClientHeight; end; Result := 0; end else Result := CallWindowProc(Ptr(TfrmPersistent(frm).FOldWndProc), hwnd, uMsg, WParam, lParam); end else Result := DefWindowProc(hwnd, uMsg, wParam, lParam); end; begin inherited CreateHandle; FHwnd := WindowHandleToPlatform(Handle).Wnd; FOldWndProc := GetWindowLongPtr(FHwnd, GWL_WNDPROC); SetWindowLongPtr(FHwnd, GWL_WNDPROC, NativeInt(@WindowProc)); end; procedure TfrmPersistent.DestroyHandle; begin Assert(FHwnd <> 0); SetWindowLongPtr(FHwnd, GWL_WNDPROC, FOldWndProc); inherited DestroyHandle; end; {$ENDIF} end. Может кому пригодится.1 балл
-
Обновление форума
zairkz отреагировал Brovin Yaroslav за тема
Так и сейчас работает. Нужно просто ссылку вставить на YouTube видео:1 балл -
да, только просмотр не переходя на YouTube! вот это бы замечательно отличало данный форум от многих других!1 балл
-
Обновление форума
Равиль Зарипов (ZuBy) отреагировал zairkz за тема
Пожалуйста сделайте возможность нажимать нравиться больше чем 10 раз на день, уж очень мне многое нравиться, а лайкнуть не могу)), лимит 30 хотя бы.1 балл -
и еще, если можно, чуть покомпактнее дизайн сделать, огромные отступы между строк, большие аватарки слева в сообщениях и информация по ним... получается на экран 15-дюймого Apple Mac помещается 2,5 топика из одного приложения!1 балл
-
Обработка WM_GETMINMAXINFO
Pax Beach отреагировал Brovin Yaroslav за вопрос
Нет. Как вариант, можно модифицировать FMX.Platform.Win и просто добавить пересылку Dispatch сообщений прямо форме. Тогда в самой форме можно будет по VCL-ному перехватывать сообщения. Открываем модуль FMX.Platform.Win.pas и находим процедуру ориентировочно 2088 строчка: function WndProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; В тело добавляем код по пересылке сообщения: begin { TODO -okewald -cVerify : We need to ensure Result is initialized. } Result := 0; LForm := FindWindow(hwnd); // Вставка по пересылке сообщения форме if LForm <> nil then begin TMsg.Msg := uMsg; TMsg.WParam := wParam; TMsg.LParam := lParam; TMsg.Result := 0; LForm.Dispatch(TMsg); uMsg := TMsg.Msg; wParam := TMsg.WParam; lParam := TMsg.LParam; end; После этого в форме можно перехватывать сообщение: uses ..., Winapi.Messages; type TForm19 = class(TForm) private procedure WMGetMinMaxInfo(var AMessage: TMessage); message WM_GETMINMAXINFO; end; var Form19: TForm19; implementation {$R *.fmx} { TForm19 } procedure TForm19.WMGetMinMaxInfo(var AMessage: TMessage); begin end; Если надо возвращать результат, как в случае с WM_GETMINMAXINFO, то в FMX.Platform1 балл -
размазывания ответов не вижу. в основном, наводящие вопросы и предложения как попробовать и где посмотреть... думаю, разделение приведет только к полным непоняткам, где обсуждения, где ответы и так структуру сайта без поллитра сейчас не охватить. а так еще две непонятно чем разных сущности в одном интерфейсе...1 балл
-
DeviceInfo - модуль для получения информации о девайсе
zairkz отреагировал Равиль Зарипов (ZuBy) за вопрос
Обновленная версия, кое что подправил теперь нет ошибки на IOS 64 bit результат (Android, IPhone 4S, IPhone 6, MacOS Yosemite на виртуалке, Windows 10) Добавлена функция isGPSActive [ANDROID], определяет включен ли сенсор на устройстве DeviceInfo.zip1 балл -
Обновление форума
Andrey Efimov отреагировал Brovin Yaroslav за тема
Пробел между Городом и название добавил под фотографией пользователя. Посмотрите новый вариант блока последних сообщений. Возможно такой формат будет удобнее.1 балл -
Обновление форума
Rusland отреагировал Равиль Зарипов (ZuBy) за тема
но и не топик стартера, а пользователя оставивший последнее сообщение1 балл -
[TAniIndicator] Почему у меня не виден TAniIndicator, помещенный в TListBox?
Brovin Yaroslav отреагировал janovskis за вопрос
Все Спасибо!!!! действительно последний коментарий оказался решающим!!!! я накрываю мою основную форму панелью и поэтому не вижу индикатор! Спасибо всем!1 балл -
а почему индикатор лежит в листбоксе? как он там покажется? может, он должен быть в listItem ?1 балл
-
Исключить устройства с Intel Atom как не поддерживаемые
Евгений Корепов отреагировал Равиль Зарипов (ZuBy) за вопрос
точно могу сказать только про HTTP/S, TCP, Location Sensor, Map, воспроизведение звука еще вспомнилось что с камерой был косяк, но детали не вспомню.1 балл -
Исключить устройства с Intel Atom как не поддерживаемые
zairkz отреагировал Равиль Зарипов (ZuBy) за вопрос
все баги которые написал решаемы, так что я пока не вижу смысла не поддерживать Intel. Приложение ведет себя более менее адекватно, пользоваться можно поворот - можно отключить тосты - своя реализация у меня анимация - можно не использовать ListBox - использовать ListView работа с формой (неправильный расчёт) - два варианта: 1) использовать модифицированный файл 2) FullScreen режим1 балл -
[TMemo] [TEdit] Как использовать прозрачный фон для нативных контролов под iOS?
zairkz отреагировал Brovin Yaroslav за вопрос
Добрый день, Для Windows нативные версии этих контролов не поддерживают прозрачность. Под Андроид нативных версий нету Для iOS платформы эти контролы позволяют указывать прозрачный фон. Для этого нужно принудительно прописать следующие значение стиля в StyleLookup: TEdit - transparentedit TMemo - transparentmemo При этом не смотря на то, что в дизайн тайме фон может остаться, в рантайме нативные контролы будут использовать прозрачный фон.1 балл -
http://fire-monkey.ru/topic/887-tstringgrid-kak-podsvetit-zadnii-fon-iacheiki-v-zavisimos/ http://fire-monkey.ru/topic/287-izmenenie-svoistva-shrifta-odnoi-iacheiki-v-firemonkey-tstringgrid-delphi-xe6/1 балл
-
Notification
masmat отреагировал Равиль Зарипов (ZuBy) за вопрос
перенесли ведь сюда uses System.Notification1 балл -
Как вывести (отрисовать) текст по произвольной дуге
i.r.khayrullin отреагировал FIL за вопрос
Набросал пример отрисовки текста по дуге: procedure TForm1.FormPaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); const S: String = 'Пример отрисовки текста по заданной траектории (дуга)'; var i: Integer; A, Ao, R, TextLen: Single; Rect: TRectF; M1, M2: TMatrix; // uses System.Math.Vectors begin // if Canvas.BeginScene then begin Randomize; R := 400; Ao := DegToRad(150); // uses System.Math A := (Pi - Ao) / 2; Canvas.Font.Size := 32; Canvas.Stroke.Kind := TBrushKind.Solid; Canvas.StrokeThickness := 3; Canvas.Fill.Color := TAlphaColors.Palegreen xor $80000000; Canvas.FillEllipse(TRectF.Create(0, 0, 2 * R, 2 * R), 1); TextLen := Canvas.TextWidth(S); if TextLen > R * Ao then Caption := 'АХТУНГ!'; // длина текста больше выделенной под него дуги (будет наложение букв) for i := 1 to S.Length do begin Rect.Left := 0; Rect.Top := R; Rect.Width := Canvas.TextWidth(S[i]); Rect.Height := Canvas.TextHeight(S[i]); A := A + Ao / (S.Length - 1); M1 := TMatrix.CreateTranslation(- Rect.CenterPoint.X, - Rect.CenterPoint.Y) * TMatrix.CreateRotation(A - A - Pi / 2) * TMatrix.CreateTranslation(Rect.CenterPoint.X, Rect.CenterPoint.Y); M2 := TMatrix.CreateTranslation(-R, -R) * TMatrix.CreateRotation(A) * TMatrix.CreateTranslation(R, R); Canvas.SetMatrix(M1 * M2); Canvas.Fill.Color := TAlphaColor(Random(MaxInt) or $FF000000); Canvas.FillText(Rect, S[i], False, 1, [{TFillTextFlag.RightToLeft}], TTextAlign.Leading, TTextAlign.Center); end; // Canvas.EndScene; end; end;1 балл