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

Vitaldj

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

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

  • Посещение

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

    28

Активность репутации

  1. Like
    Vitaldj получил реакцию от kami в Обновление до Seattle (будут ли проблемы)   
    Мне кажется должны сработать, вроде там обратная совместимость. Я бы на твоем месте просто бы сделал бекап мака через Time Machine и установил новую xcode с paserver. Если что пойдет не так, откатись назад)).
    И еще, дельфи стоит в виртуалке?
  2. Like
    Vitaldj отреагировална BurcevD в При установки WordWrap у TListViewItem.Objects.Text неверно отображается текст в Android   
    Копался, копался так ничего и не получилось, в итоге сделал как предложил ruslan (пост 4) но со своими доработками, если кому интересно
    на создание объекта и на событие OnUpdatingObjects (на TListView) сделал
       aItem.Height := Round(CalculateTextHeight(aItem.Text, aItem.Objects.TextObject.Width, 36, 130, aItem.Objects.TextObject.Font))+4; aItem - TListViewItem - элемент списка из TListView   сама функция вот function CalculateTextHeight(aText: String; aWidth: Single; aMinHeight: Single = 0; aMaxHeight: Integer = 0; aFont: TFont) : Single; begin   FTextLayout.BeginUpdate;   try     FTextLayout.Text := aText;     FTextLayout.MaxSize := TPointF.Create(aWidth, 1000);     FTextLayout.WordWrap := True;     FTextLayout.Font.Assign(aFont);     FTextLayout.HorizontalAlign := FMX.Types.TTextAlign.Leading;     FTextLayout.VerticalAlign := FMX.Types.TTextAlign.Leading;   finally     FTextLayout.EndUpdate;   end;   Result := FTextLayout.Height;   if aMinHeight>0 then     if Result < aMinHeight then       Result := aMinHeight;   if aMaxHeight>0 then     if Result > aMaxHeight then       Result := aMaxHeight; end; Параметры
    aText - текст, который там отображен,
    aWidth - ширина текстового объекта,
    aMinHeight - минимально возможная высота (0 - если не нужно ограничение)
    aMaxHeight - максимально возможная высота (0- если не нужно ограничение)
    aFont - шрифт, используемый объектом
     
    Сразу скажу, чтоб не говорили, что плагиатор, да основная часть и идея функции взята с этого форума.
    P.S.Прибавил 4 пикселя, для того, чтобы рамка поместилась
     
  3. Like
    Vitaldj отреагировална Rusland в Блокировка программы   
    Gingercat, здесь статья как создавать свои SSL сертификаты через OpenSSL
  4. Like
    Vitaldj отреагировална haword в Как програмно изменить стиль в RAD Studio 10 Seatle.   
    давай еще крупнее и еще краснее шрифт, тогда больше людей ответят. 
  5. Like
    Vitaldj отреагировална Brovin Yaroslav в Описание TfgToast - Быстрые уведомления   
    Ааа, понял, что не так. Создавать TfgToast нужно при помощи специального метода Create с параметрами. 
    Toast := TfgToast.Create('Text', TfgToastDuration.Short); Дефолтный конструктор нельзя использовать. 
  6. Like
    Vitaldj отреагировална Brovin Yaroslav в Обновление Update1 Delphi XE8   
    Вы не совсем правы, Subscription или Support& Maintenance появился еще во времена Borland, но в тот момент его приобретение было не всегда оправдано. Сейчас ситуация несколько изменилась. Приобретение Subscription дает возможность не только получать обновления на текущую версию, но и владельцам получать бесплатно новые версии, которые как вы правильно заметили выходят два раза в год. Годовой контракт на Subscription для Delphi Professional стоит $324, а апгрейд на новую версию Delphi Professional стоит $592 (два релиза – это $592*2). Более подробно про Subscription можно прочитать тут http://www.embarcadero.com/ru/products/rad-studio/update-subscription   Если у вас есть вопросы по ценам и лицензиям, вы всегда можете обратиться в московское представительство Embarcadero email Russia.Info@embarcadero.com тел. +7 (495) 708 4393.   Наш форум все-таки больше имеет техническую направленность и я не совсем компетентен в вопросах ценообразования и лицензий
  7. Like
    Vitaldj получил реакцию от Ufomaster в Работа с БД Firebird   
    ruslan, простите, но почему нельзя общаться с БД напрямую? Простите, если мой вопрос совсем как чайника! Это касается только БД Firebird или всех? И в каком случае? Мобильные? Просто первый раз такое слышу, поэтому и спрашиваю. Работаю с десктопами.
  8. Like
    Vitaldj отреагировална Евгений Корепов в Получить размер файла   
    Ура! Я победил проблему. Причем с помощью почти забытой мной процедуры FindFirst ;-) Код работает корректно под Windows и Android. Файл не передергивается, антивирус спокоен.
    function TFileManager.GetFileSize(APath : String) : String; Var AFileSizeByte : Int64;     AFileSizeFloat : Double;     SearchRec : TSearchRec;     FileAttrs: Integer; begin   FileAttrs :=faArchive;   FileAttrs := FileAttrs + faAnyFile;   Result:='unknow';   AFileSizeByte:=0;   try     FindFirst(APath,FileAttrs,SearchRec);     AFileSizeByte:=SearchRec.Size;     FindClose(SearchRec);   except       Exit;   end;   if AFileSizeByte<1024 then   begin     Result:=Format('%d',[AFileSizeByte])+' Byte';     Exit;   end;   if AFileSizeByte<1048576 then   begin     AFileSizeFloat:=AFileSizeByte/1024;     Result:=Format('%6.3f',[AFileSizeFloat])+' KByte';     Exit;   end;   if AFileSizeByte<1073741824 then   begin     AFileSizeFloat:=AFileSizeByte/1048576;     Result:=Format('%6.3f',[AFileSizeFloat])+' MByte';     Exit;   end;   AFileSizeFloat:=AFileSizeByte/1073741824;   Result:=Format('%6.3f',[AFileSizeFloat])+' GByte'; end;
  9. Like
    Vitaldj отреагировална rustam_d в IOS Push сообщения на русском как?   
    В топике старый протокол отправки пушей на ИОС. Не более 256 знаков, а с учетом юникода так вообще не более около 50 букв на русском!!!
    Переписал на новый 2-й протокол, чуток попапрился с байтами-битами ), но все же сделал. Теперь на русском можно около 400 букв, а на инглише
    как и разрешено около 2000. Это лучший ответ, но не хочу и первую версию снимать со счета...она ведь для ИОС ниже 8.
    Вообщем Enjoy :
    procedure TForm1.Button2Click(Sender: TObject); var   i,j,p: integer;   s,c,t,m: string;   vStr: TStringStream; begin   if not TCPClient.Connected then TCPClient.Connect;   m := EscapeString(edMsg.Text);   c := edToken.Text;   t := '';   for i := 0 to (length(c) div 2) - 1 do t := t + AnsiChar(Byte(('$'+copy(c,i*2+1,2)).ToInteger));   s := '{"aps":{"alert":"'+ m +'","sound":"default","badge":0}}';   p := length(s);   j := p + 38;   s := #2#0#0 + AnsiChar(hi(j)) + AnsiChar(lo(j)) + #1#0#32 + t + #2 + AnsiChar(hi(p)) + AnsiChar(lo(p)) + s;   vStr := TStringStream.Create(s);   try     SSLHandler.write(vStr);   finally     vStr.Free;   end; end; p.s: нафиг 4 байта для общей длины...если дали разрешение на длину сообщения в 2 килобайта...
  10. Like
    Vitaldj отреагировална rustam_d в IOS Push сообщения на русском как?   
    Я сделал это !!! И это бесплатно! )) Отправка ИОС пушей на русском из делфи больше не секрет!!! Полный исходник, максимально упрощенный. Можно указывать циферку на иконке(badge). Про войну с сертификатом SSL pem писал тут http://fire-monkey.ru/topic/1751-push-soobscheniia-ios-ne-mogu-soedinitsia-s-serverom-dlia-o/   procedure TForm1.Button2Click(Sender: TObject); var   i: integer;   s,c,t,m: string;   vStr: TStringStream; begin   m := EscapeString('Удачи друзья в FMX!'); //ready for unicode   if not tcpclient.connected then tcpclient.connect;   c := 'qwerqwerqwerqwerqwerqwerqwerqwerqwer'; //your token   t := '';   for i := 0 to (length© div 2) - 1 do t := t + AnsiChar(Byte(('$'+copy(c,i*2+1,2)).ToInteger)); //token as hex   s := '{"aps":{"alert":"'+ m +'","sound":"default","badge":0}}';   //payload   s := #0#0#32 + t + #0 + AnsiChar(length(s)) + s;     //push message   vStr := TStringStream.Create(s);   try     SSLHandler.write(vStr);   finally     vStr.Free;   end; end   function TForm1.EscapeString(const AValue: string): string; const   ESCAPE = '\';   REVERSE_SOLIDUS = '\';   SOLIDUS = '/';   BACKSPACE = #8;   FORM_FEED = #12;   NEW_LINE = #10;   CARRIAGE_RETURN = #13;   HORIZONTAL_TAB = #9; var   AChar: Char; begin   Result := '';   for AChar in AValue do   begin     case AChar of       REVERSE_SOLIDUS: Result := Result + ESCAPE + REVERSE_SOLIDUS;       SOLIDUS: Result := Result + ESCAPE + SOLIDUS;       BACKSPACE: Result := Result + ESCAPE + 'b';       FORM_FEED: Result := Result + ESCAPE + 'f';       NEW_LINE: Result := Result + ESCAPE + 'n';       CARRIAGE_RETURN: Result := Result + ESCAPE + 'r';       HORIZONTAL_TAB: Result := Result + ESCAPE + 't';       else       begin         if (Integer(AChar) < 32) or (Integer(AChar) > 126) then           Result := Result + ESCAPE + 'u' + IntToHex(Integer(AChar), 4)         else           Result := Result + AChar;       end;     end;   end; end;     object TCPClient: TIdTCPClient     OnStatus = TCPClientStatus     IOHandler = SSLHandler     ConnectTimeout = 0     Host = 'gateway.sandbox.push.apple.com'     IPVersion = Id_IPv4     Port = 2195     ReadTimeout = -1     Left = 328     Top = 48   end   object SSLHandler: TIdSSLIOHandlerSocketOpenSSL     OnStatus = SSLHandlerStatus     Destination = 'gateway.sandbox.push.apple.com:2195'     Host = 'gateway.sandbox.push.apple.com'     MaxLineAction = maException     Port = 2195     DefaultPort = 0     SSLOptions.CertFile = 'MyAPN.pem'     SSLOptions.KeyFile = 'MyAPN.pem'     SSLOptions.Method = sslvSSLv23     SSLOptions.SSLVersions = [sslvSSLv2, sslvSSLv3, sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2]     SSLOptions.Mode = sslmClient     SSLOptions.VerifyMode = []     SSLOptions.VerifyDepth = 0     Left = 328     Top = 108   end
  11. Like
    Vitaldj получил реакцию от Равиль Зарипов (ZuBy) в Thoma Bravo Announces Sale of Embarcadero to Idera, Inc.   
    Сообщение для клиентов и партнеров от IDERA
     
    Здравствуйте,
    Я Ренди Якобс, CEO компании IDERA, Inc. Вы, скорее всего, видели новости в прессе о приобретении Embarcadero компанией IDERA. Вот ссылка на эту новость, если вы еще ее не видели. 
    Мы приглашаем Вас присоединиться к сообществу IDERA и продолжить успешную историю лидера рынка продуктов для разработчиков и специалистов по базам данных. Я хочу представить компанию IDERA и объяснить, почему мы в восторге стать владельцами Embarcadero
    IDERA работает более, чем с 10000 клиентами по всему миру, предоставляя им решения для мониторинга производительности баз данных, приложения и технологическую инфраструктуру. Мы уверены, что специалисты по базам данных имеют определяющее влияние на общую технологическую эффективность и оцениваем наш подход, как ориентированный на данные. Наши продукты позволяют быстро идентифицировать и исправить проблемы с производительностью по всему стеку используемых технологий, при этом обеспечивая уникальные возможности поддержки безопасности и согласованности.
    Я был назначен CEO в 2013 году и с этого времени я всегда был сфокусирован на долгосрочных отношениях с заказчиками, основой которых были инновационность, качество и простота использования продуктов. Я верю в то, что успешные софтверные компании всегда ориентированы на успех клиента, обеспечивая:
    Программное обеспечение высокого качества – полное тестирование кода, с использованием автоматической генерации тестов Простоту в использовании – интуитивно понятные интерфейсы, особенно процесс установки/обновления  Скорость работы приложений – минимальные задержки, хорошую масштабируемость, аналитику в реальном времени Клиенты всегда будут довольны производителями ПО, соответствующего этим критериям. Выпуск продуктов, сфокусированных на приоритетных инновациях и возможностях, по надежному графику, улучшает взаимоотношения с клиентами, являясь основой их успеха. IDERA инвестирует в технологии по этому принципу, и этот принцип будет также распространяться на продукты Embarcadero.
    Как известно, Embarcadero имеет две отдельные линейки продуктов: 1) продукты для кроссплатформенного моделирования, администрирования и оптимизации баз данных и 2) решения для разработки приложений для множества платформ. За эти годы количество клиентов Embarcadero достигло 10000, а количество пользователей исчисляется миллионами, включая практически полный список Global 2000. Embarcadero имеет представительства по всему миру и партнеров практически в каждой крупной стране. 
    Продукты Embarcadero для моделирования, администрирования и управления производительностью баз данных отлично дополняют продукты IDERA с минимальным пересечением в функциональности и назначении. После объединения обеих компаний, мы сможем предложить специалистам в области данных исчерпывающее решение для управления, использования и защиты данных для любой компании.    Мы будем благодарны обратной связи от клиентов по интеграции этих продуктов, чтобы быть уверенными в соответствии нашим принципам простоты использования, качества и масштабируемости.
    Что касается средств разработки Embarcadero, то это для нас новая возможность. На нескольких форумах разработчиков мне были заданы прямые вопросы относительно будущего этих продуктов. Я хочу подчеркнуть, что мы воспринимаем эти продукты как огромную ценностью. Так как приложения распространяются сквозь платформы и другие каналы, потребность в инструментах для создания следующих поколений приложений будет расти. Такие технологии, как Интернет вещей или использование в приложениях маячков, не существовали всего несколько лет назад.  Сегодня уже каждый видит возможность создания приложений для устройств, которые упрощают и улучшают жизнь людям.  Мы верим в то, что лидер рынка средств разработки должен ориентироваться на разработчиков и отличаться скоростью выпуска новых решений, простотой использования и темпами изменений.
    В связи с этим, мы сформировали новую команду, которая будет сфокусирована только на средствах разработки Embarcadero. Их задача – обеспечить темпы роста за счет инноваций и возможностей M&A. Мой коллега, Атанас Попов, возглавил данное направление.  Атанас будет уделять внимание росту бизнеса и инвестициям для привлечения еще большего количества клиентов. Мы считаем, что средства разработки имеют большой потенциал и мы с нетерпением ждем работы с вами, чтобы расставить приоритеты для наших инвестиций.
    Embarcadero потратила годы на построение надежной партнерской сети. Многие компании мечтают о создании подобной сети партнеров, но потратив время и силы разочаровываются. Но если упорство компании позволило это сделать, результаты и потенциал будут значительны. Embarcadero работает с десятками глобальных партнеров. Для поддержания здоровой партнерской сети требуются больше отличных продуктов и стабильный интерес к приобретению со стороны потенциальных клиентов. Мы собираемся не только познакомить партнеров Embarcadero с продуктовым портфелем IDERA, но и вовлечь маркетинговую команду IDERA в диалог с клиентами. Мы полагаем, что умеренные изменения и инвестиции расширят пространство возможностей для наших партнеров, работающих с клиентами по всему миру.  
    C точки зрения взаимодействия с заказчиками, мы основываемся на публикации планов выпуска продуктов для активных заказчиков и поддержку диалога с теми, кто хочет внести свой вклад.  Мы верим, что сообщества пользователей приносят пользу, и будем развиваться соответственно. Мы также полагаем, что это изменит возможности инноваций и увеличит ценность для наших пользователей. Мы остаемся верны этим принципам стремимся к работе с вами для каждодневного улучшения, и чтобы помочь вам получить ожидаемое.
    Если у Вас есть вопросы, присылайте их, пожалуйста, на randy.jacops@idera.com.
    При наличии 20 000 клиентов, практически невозможно поддерживать прямой диалог с каждым, но мы ответим на вопросы. Что более важно, мы будем присылать Вам «дорожные карты», информацию о вебинарах и другой контент, который сможет Вас заинтересовать. Я призываю Вас принимать участие во всех мероприятиях, чтобы отношения стали взаимно полезными.
    Спасибо за вашу работу! Надеемся на дальнейшее сотрудничество! 
    С уважением,
    Randy Jacops
    CEO, IDERA, Inc.
  12. Like
    Vitaldj отреагировална Brovin Yaroslav в Есть ли возможность посмотреть значение длинной строки?   
    Какая у вас версия среды?
    По идеи ничего больше не нужно:

    Да, это работает только для Windows, для остальных платформ посмотрите: Средства логирования в FireMonkey
  13. Like
    Vitaldj отреагировална umkes в ListBox, Edit и клавиатура   
    procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;   Shift: TShiftState); //----------------------------------------------------------------------------- var   Keyboard : IFMXVirtualKeyboardService; begin if Key = vkReturn then begin if TPlatformServices.Current.SupportsPlatformService( IFMXVirtualKeyboardService, IInterface( Keyboard ) ) then         if TVirtualKeyboardState.Visible in Keyboard.GetVirtualKeyBoardState then begin           Keyboard.HideVirtualKeyboard;           Key := 0;           Exit;         end{if}; end{procedure TForm1.FormKeyUp};
  14. Like
    Vitaldj отреагировална Евгений Корепов в PushEvents без Provider   
    Var HDevicePushParams : TDevicePushParams;        APushService : TPushService;       AServiceConnection : TPushServiceConnection;       SQuery : String; begin     APushService:=TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM);     APushService.AppProps[TPushService.TAppPropNames.GCMAppID]:='ХХХХХХХХХХХХХХХХ';     AServiceConnection:=TPushServiceConnection.Create(APushService);     AServiceConnection.Active:=True;     AServiceConnection.OnChange:=ServiceConnectionOnChange;     AServiceConnection.OnReceiveNotification:=ServiceConnectionOnReceiveNotification;     HDevicePushParams.DeviceID:=APushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceID];     HDevicePushParams.DeviceToken:=APushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken];   SQuery:=APIURL+'?DeviceID='+HDevicePushParams.DeviceID+'&DeviceToken='+HDevicePushParams.DeviceToken;     HTTPThread:=THTTPThread.Create(SQuery,FQueue);  // Здесь просто отправка на сервер в потоке. Сервер принимает стоку и складывает в базу пары "DeviceID - DeviceToken", можно еще что нибудь отправлять, чтоб точно идентифицировать клиента.
    А на сервере все еще проще. Вот php: $title = 'Это заголовок'; $message = 'Это текст сообщения.' $devices = 'DeviceToken - один конкретный получатель'; $apiKey = "AIzaХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ"; $gcpm = new GCMPushMessage($apiKey); $gcpm->setDevices($devices); $response = $gcpm->send($message, array('title' => $title)); Лениво было писать велосипед, использовал готовую отсылалку https://github.com/mattg888/GCM-PHP-Server-Push-Message . Там все просто, она заворачивает все в json и отправляет  на http
  15. Like
    Vitaldj отреагировална Brovin Yaroslav в Обновление информации программы с сайта   
    Мне кажется, проще воспользоваться REST API и получать данные без UI. А дальше уж самому решать, что с ними делать.
    https://wordpress.org/plugins/json-rest-api/
     
    Я понимаю, что парсить страницу - это универсальное решение, но оно работает ровно до первого изменения шаблона дизайна страницы :-)
  16. Like
    Vitaldj отреагировална Brovin Yaroslav в Презентационные материалы с запуска RX Seattle   
    RAD Studio 10 Seatlle: обзор продукта
    Презентация: RAD Studio 10 Seatlle обзор продукта.pdf Разработка приложений для Windows 10 и новые возможности VCL
    Презентация: Разработка приложений для Windows 10 и новые возможности VCL.pdf Новые возможности мобильной разработки приложений
    Презентация: Новые возможности мобильной разработки приложений.pdf Пример сервиса: DownloadServiceDemo.zip Эффективное использование среды разработки и компилятора C++
    Презентация: Эффективное использование среды разработки и компилятора C++.pdf Взаимодействие приложений и IoT
    Презентация: Взаимодействие приложений и IoT.pdf Преодолевая границы: EMS и расширение FireDAC для работы с MongoDB и Средства разработки и управления для разработчиков БД
    Презентация: Преодолевая границы EMS и расширение FireDAC для работы с MongoDB.pdf
  17. Like
    Vitaldj отреагировална haword в [TfgRichEdit]- компонент редактирования текста с поддержкой форматирования   
    ну и? есть новости? когда нам счастья ждать то?
  18. Like
    Vitaldj получил реакцию от Равиль Зарипов (ZuBy) в MS SQL Server   
    Покупаю компененты от Devart для SQlite и Mysql, неплохие))
  19. Like
    Vitaldj отреагировална AngryOwl в Скрытие приложения с панели задач.   
    Попробуйте
    uses   {$IFDEF MSWINDOWS}, Winapi.Windows, FMX.Platform.Win{$ENDIF}; {$IFDEF MSWINDOWS} ShowWindow(ApplicationHWND, SW_HIDE); {$ENDIF}
  20. Like
    Vitaldj отреагировална rustam_d в Загрузка иконок в TimageList из файла   
    Фил я кстати тоже так подумал ))))
     
    Исправил в своем коде ТОЛЬКО ОДНУ строку и тогда транспарент заработал (чудеса FMX):
     
      b.Bitmap.Assign(b.CreateBitmap('C:\Delphi\Images\GlyFX\glyFX\Icons\Aero\BMP\32x32\eject_blue_32_h.bmp'));   и даже удалил b.Bitmap.SetSize(32,32);   Сергей, в любом случае вы помогли спасибо! Но мой код по мне куда проще и короче...   Вообщем вот готовый простейший код   procedure TForm1.Button1Click(Sender: TObject); var   Layer: TLayer;   c: TCustomSourceItem;   b: TCustomBitmapItem;   d: TCustomDestinationItem; begin   d := ImageList1.Destination.Add;   Layer := ImageList1.Destination[d.Index].Layers.Add;   Layer.SourceRect.Rect := TRectF.Create(TPoint.Zero, 32, 32);   c := ImageList1.Source.Add;   Layer.Name := c.Name;   c.MultiResBitmap.TransparentColor := TAlphaColorRec.Fuchsia;   b := c.MultiResBitmap.Add;   b.Bitmap.Assign(b.CreateBitmap('C:\Delphi\Images\GlyFX\glyFX\Icons\Aero\BMP\32x32\arrow_left_32_h.bmp'));   Button2.ImageIndex := 0; end;  
  21. Like
    Vitaldj отреагировална rustam_d в Как связать колонку нового типа в FMX TGrid с полем средствами LiveBindings?   
    я свои типы не проталкиваю пока, но связка у меня норм работает...ниже мой код, может вам и сгодиться...
    альясы запроса у меня с шириной сразу, это очень удобно - к примеру пишите select name as ФИО_150 from...вот и вам и имя и ширина сразу )
    важно подчеркивание ставить просто в конце...
    var   vSp: МойДатасет;   c: TLinkGridToDataSourceColumn;   i,k: integer; begin     LinkGrd.Columns.Clear;     for i := 0 to vSp.FieldCount - 1 do     begin       c := LinkGrd.Columns.Add;       c.MemberName := vSp.Fields[i].FullName;       k := Pos('_',c.MemberName);       if k > 0 then       begin         c.Width := copy(c.MemberName,k+1,length(c.MemberName)-k).ToInteger;         c.Header := copy(c.MemberName,1,k-1);       end       else       begin         c.Width := 100;         c.Header := c.MemberName;       end;     end; end;
  22. Like
    Vitaldj отреагировална zairkz в Кодировка под Android   
    with TStringStream.Create do try LoadFromFile('d:\11.txt', TEncoding.UTF8); Edit1.Text := DataString; finally Free; end; всё что нужно было
  23. Like
    Vitaldj отреагировална serg557 в Работа с текстом   
    Вопрос решен!
    Всем спасибо за советы.
    Конечный кусок кода прилагаю-вдруг кому пригодится.
    String Page; Form1->Page=IdHTTP1->Get("http://minfin.com.ua/currency/mb/"); Page.Delete0(0,Page.Pos0("<td class=\"active\">")+20); Memo1->Text=Page.SubString0(0,Page.Pos0("<")-1);
  24. Like
    Vitaldj отреагировална Равиль Зарипов (ZuBy) в [TfgRichEdit]- компонент редактирования текста с поддержкой форматирования   
    Опишите подробней, может и поможем всем форумом)
  25. Like
    Vitaldj получил реакцию от #WAMACO в [TfgRichEdit]- компонент редактирования текста с поддержкой форматирования   
    Ярослав, а все таки когда будет доступен компонент простым пользователям? Очень нужен! )
×
×
  • Создать...