Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5 6   вперед  Ctrl      все
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
Док
Member

Откуда: Казань
Сообщений: 6460
Андрей Игоревич
Я попробовал ВСЁ, что предложено, Зачем вы это пишите?

Вот честно пытался найти на всех трех страницах хоть строчку из твоего кода, воспроизводящего обсуждаемую проблему. Не нашел. Только плач Ярославны и капризы, что все время подсовывают не то. Так какую ты помощь ждешь от окружающих?
+
[youtube=]
8 авг 19, 00:57    [21944260]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
Андрей Игоревич
Member

Откуда:
Сообщений: 229
Развели тут оффтопа, модератора на нас нет.
Возможно моя ошибка в том, что я продолжил старую тему с новым вопросом, вместо открытия новой, что вводит людей в заблуждение, почему опять обсуждают такой простой и решенный вопрос.
Распишу то, что я спрашивал ещё раз более подробно.
Мне нужно, что бы в программе менялся разделитель дробной части (запятая - точка) "на лету", то есть без смены его в системе, в графиках и выводе текста на канву. Зачем и почему - писал выше. Для примера пара картинок:
+ с запятыми

Картинка с другого сайта.
Картинка с другого сайта.
+ с точками

Картинка с другого сайта.
Картинка с другого сайта.]

Сложность заключается в том, что помимо рисования картинок и графиков программа в других потока в то же самое время делает другие задачи, такие как открытие файлов больших размеров, сохранение файлов, запуск других программ с параметрами (в которых тоже фигурирует разделитель). Что значительно усложняет задачу.

Изменить вывод текста сразу везде можно использовав глобальную переменную DecimalSeparator, но это может крайне плохо сказаться на стабильности работы остальных потоков, да и вообще тут и на других форумах крайне негативно воспринимают изменение данной переменной, и я понимаю почему.
Далее перечислю что мне предложили:
1. Изменять глобальную переменную (насколько я понял), при этом гарантировать корректную работу потоков за счет:
а) использования SringReplase для приведения к единому формату
б) использование расширенной StrToFloat для универсального считывания данных при любом разделителе.
2. Предложили несколько вариантов форматирования вывода лейблов непосредственно на Чарте, увы, данные способы не сработали, так как разделитель там всё равно подхватывается из DecimalSeparator, даже если в упомянутых строках поставить точку/запятую. (хотя возможно там есть более хитрые возможности форматирования)
3. Предложили использовать Val() и Str(), конкретно это предложение я не очень понял применительно к Chart-у, так как он лейблы рисует в автоматическом режиме подобными процедурами изменить формат вывода не очень просто, у Чарта есть функционал вывода строк вместо числовых значений, но это сильно усложнит работу с ним.
4. Отдельно я сам предполагал вариант на момент отрисовки графиков тормозить все потоки, менять разделитель, рисовать, опять менять разделитель, возобновлять потоки.

Первый способ в обоих вариантах подразумевает во первых изменение в коде DecimalSeparator, что плохо, во вторых обширные изменения в достаточно большом объеме кода. Если ничего не придумаю лучше, воспользуюсь вариантом 1б, по крайней мере он полезен в качестве универсальности считывания/сохранения данных

Далее товарищ asutp2 написал
asutp2
Нда, создается впечатление, что ТС всех тупо тролит. Эта "проблема" решается одной(!) строчкой кода

но увы нигде не написал этой строчки. Возможно он прав и я что-то упустил, укажите.

Товарищ Vlad F ещё дальше написал серию достаточно оскорбительных сообщений, на которые я и ответил, вероятно - зря, к коду и программе они отношения не имеют.

Ещё дальше вы написали
Док
Парень, придержи коней. Народ на форуме не виноват в том, что из трех страниц обсуждения ты практически так и не удосужился хоть что-то попробовать или хотя бы почитать о предложенном
Как я уже писал выше, я внимательно прочитал всё предложенное и всё попробовал, за исключением Val() и Str(), так как не знаю как их применить к Лейблам чарта.
Теперь вы просите привести код,
Док
Вот честно пытался найти на всех трех страницах хоть строчку из твоего кода, воспроизводящего обсуждаемую проблему. Не нашел. Только плач Ярославны и капризы, что все время подсовывают не то. Так какую ты помощь ждешь от окружающих?

Я готов, какой код вам нужен и зачем? Что там должно быть?
8 авг 19, 02:03    [21944264]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
Андрей Игоревич
Member

Откуда:
Сообщений: 229
Андрей Игоревич

Мне нужно, что бы в программе менялся разделитель дробной части (запятая - точка) "на лету", то есть без смены его в системе, в графиках и выводе текста на канву.

Очень коряво написал, подразумевается - без смены в системе, без смены в остальных потоках, но со сменой вывода на графики Чарта и TextOut канвы.
8 авг 19, 02:05    [21944265]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
Док
Member

Откуда: Казань
Сообщений: 6460
Андрей Игоревич
Я готов, какой код вам нужен и зачем? Что там должно быть?

обычно прикладывают минимальный код, воспроизводящий проблему или показывающий, что хотелось, но не получилось. Вряд ли за тебя его кто-то будет здесь писать, угадывая исходные условия (жаль, в нашей ветке нет подобного этому сообщения 1991850).

Картинки же твои - ни о чем, такие же можно нарисовать и в Экселе. Вот если бы ты написал, в каком виде ты получаешь и хранишь данные, по какому условию определяшь вид десятичного разделителя, как из доп. потока отправляешь данные в TChart для отображения, тогда и дальнейший разговор пошел бы гораздо продуктивнее.
8 авг 19, 08:47    [21944319]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
Gerasimenko
Member

Откуда:
Сообщений: 4529
Андрей Игоревич,

Здесь на 52-х страницах собраны наиболее популярные вопросы по teechart

http://qaru.site/questions/tagged/teechart?page=1

возможно найдете, что искали
8 авг 19, 09:46    [21944362]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
Василий 2
Member

Откуда:
Сообщений: 799
Собственно, задачу можно решить разными способами, но большая часть из них - костыли. Корректный способ - это в спеке формата файлов прибить гвоздями разделитель и при общении с файлами применять функции с параметром FormatSettings (к тому же, если вдруг понадобится обмениваться файлами с забугорьем - в программе будет достаточно поменять только один символ); графики же выводить с системным разделителем. Пока на поставленную задачу этого достаточно.

Имплантация FormatSettings может быть муторной и геморной, если до этого код писали абы как ("о, а что, в мире используется букв больше, чем 127???" (с) американцы после стандартизации таблицы ASCII), но это надо.
8 авг 19, 10:05    [21944380]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30556

08.08.2019 10:05, Василий 2 пишет:
> Собственно, задачу можно решить разными способами

не взлетит.
тут программист нужен. (С)

Posted via ActualForum NNTP Server 1.5

8 авг 19, 11:20    [21944482]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
Василий 2
Member

Откуда:
Сообщений: 799
Мимопроходящий
08.08.2019 10:05, Василий 2 пишет:
> Собственно, задачу можно решить разными способами

не взлетит.
тут программист нужен. (С)

Do or die trying!
8 авг 19, 11:21    [21944484]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30556

08.08.2019 11:21, Василий 2 пишет:
> Do or die trying!

don't try, die right away.

Posted via ActualForum NNTP Server 1.5

8 авг 19, 11:25    [21944490]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
Андрей Игоревич
Member

Откуда:
Сообщений: 229
Док
Андрей Игоревич
Я готов, какой код вам нужен и зачем? Что там должно быть?

обычно прикладывают минимальный код, воспроизводящий проблему или показывающий, что хотелось, но не получилось. Вряд ли за тебя его кто-то будет здесь писать, угадывая исходные условия (жаль, в нашей ветке нет подобного этому сообщения 1991850)..

Зачем, ну зачееем??? Если вся проблема по сути описывается одной фразой:
"Как корректно менять дробный разделитель в коде программы для отдельных задач".
Всё остальное это частности, сейчас я фалы открыл одним способом, завтра научился делать это лучшим способом, переделал и всё сломалось, сейчас использую одно, потом - другое. Если я ищу корректный способ, он не должен от этого зависеть. Вот вам код описывающий всю суть проблемы:
if CheckBox1.Checked then DecimalSeparator:=',' else DecimalSeparator:='.';


Док
Картинки же твои - ни о чем, такие же можно нарисовать и в Экселе.
Можно, и рисуются, и там кстати есть пункт с такой настройкой. К чему вообще претензия, я просто показал что хочу получить. Мне даже код не нужен в ответ, саму идею, концепцию или хотя бы ссылку.

Док
Вот если бы ты написал, в каком виде ты получаешь и хранишь данные, по какому условию определяшь вид десятичного разделителя, как из доп. потока отправляешь данные в TChart для отображения, тогда и дальнейший разговор пошел бы гораздо продуктивнее.

Абсолютно ненужная для данного обсуждения информация которая с высокой степенью вероятности приведет к обсуждению моего кода, а не изложенного вопроса. Но давайте, мне не сложно:
+ код
Кусочек кода отвечающий за считывание одного типа файлов:
procedure TOpenResultFiles.ReadingFileData (var ArrayData:TInclData;  FilePath:string; NMax:Integer;var StringFolder:string; var nData:integer);
var
 SorceFile,LineFile:TStringList;
 TempString:string;
 FA_Type:Byte;
 nFA:array [1..163] of Byte;
 i,j,k,n:integer;
 TempReal:Extended;
begin
   TempString:=ExtractFileDir(FilePath);
   if StringFolder<>TempString then      //каждый раз когда меняется каталог с результатами - значит новый расчет
       begin
           StringFolder:=TempString;
           Inc(nData);
           if nData>ArrayData.Size then
                begin
                 SetLength (ArrayData.Data,nData+1); //расширяем массив при наличии новых расчетов
                 ArrayData.Size:=nData;
                end;
            ArrayData.Data[nData].FilePath:=TempString;
       end;

   n:=NameToInt( ExtractFileName(FilePath) )+1;       //номер файла
   if n>ArrayData.Data[nData].NTime  then
        begin
          SetLength ( ArrayData.Data[nData].InTime,n+1);
          ArrayData.Data[nData].NTime:=n;
        end;

   for i:=1 to NTVS do SetLength ( ArrayData.Data[nData].InTime[n].TVS[i].DrVal, NMax+1);  //увеличиваю размер массива ДР

   ArrayData.Data[nData].InTime[n].FilePath:=FilePath;

   SorceFile:=TStringList.Create;
   SorceFile.LoadFromFile(FilePath);
   LineFile:=TStringList.Create;

   for i:=1 to SorceFile.Count-1 do  SorceFile[i]:=Trim(SorceFile[i]); //удаляем проблы до и после на всякий случай

   LineFile.Delimiter := ' ';
   LineFile.DelimitedText:=SorceFile[0];
   ArrayData.Data[nData].InTime[n].TimeSec:=StrToFloat(LineFile[1]);
   ArrayData.Data[nData].InTime[n].TimeDays:=StrToFloat(LineFile[4]);
   ArrayData.Data[nData].InTime[n].NTVS:=163;

   for i:=1 to SorceFile.Count-1 do
    begin
     LineFile.DelimitedText:=SorceFile[i];
     if LineFile[0]='FA' then FA_Type:=StrToInt(LineFile[2]);
     if LineFile[0]='FA/l(m)' then
        begin
          for j:=1 to LineFile.Count-1 do   nFA[j]:=StrToInt(LineFile[j]);
          if ArrayData.Data[nData].InTime[n].NTVS<LineFile.Count-1 then ArrayData.Data[nData].InTime[n].NTVS:=LineFile.Count-1;
          k:=0; //ДР
          ArrayData.Data[nData].InTime[n].NDR[FA_Type]:=0;
        end;
     if TryStrToFloat (LineFile[0], TempReal)   then
        begin
          Inc(k);
          ArrayData.Data[nData].InTime[n].DRHeight[FA_Type,k]:=TempReal;
          for j:=1 to LineFile.Count-1 do
            begin
               ArrayData.Data[nData].InTime[n].TVS[nFA[j]].DrVal[k].Value:=StrTofloat(LineFile[j]);
               ArrayData.Data[nData].InTime[n].TVS[nFA[j]].TSVType:=FA_Type;
            end;
          ArrayData.Data[nData].InTime[n].NDR[FA_Type]:=k;
        end;
    end;
   LineFile.Free;
   SorceFile.Free;
end;

Подобных кусков несколько десятков, так как формат хранения данных разный в разных файлах.

Вот так передаются в основной поток откуда уже рисуются чартом и другими рисвальщиками в главном потоке или других.
...
Synchronize(SendDataToGlobalThread);
...
procedure TOpenResultFiles.SendDataToGlobalThread;
var
   i:integer;
   TempReal:real;
begin
  ResultData:=InTreadResult;
  i:=CoreShell.TreeView1.Selected.AbsoluteIndex;
  ConstuctTree;
  CoreShell.TreeView1.Select(CoreShell.TreeView1.Items[i])
end;

Вот один из самых простых примеров вывода данных в Чарт, без математики и прочего.
for i:=1 to ResultData.SUZDropTimes[CoreShell.TrackBar1.Position].InTime[ScrollBar1.Position].NTVS do
  Begin
   ChartColor:=GlTuningImage.ChartTuning.Chart[i].Color;
   TVSType:=ResultData.SUZDropTimes[CoreShell.TrackBar1.Position].InTime[ScrollBar1.Position].TVS[i].TSVType;
   if  ResultData.SUZDropTimes[CoreShell.TrackBar1.Position].InTime[ScrollBar1.Position].TVS[i].TSVType>0 then
    begin
      ChartSeriesList[i].Clear;
      ChartSeriesList[i].Active:=True;
    for j:=1 to ResultData.SUZDropTimes[CoreShell.TrackBar1.Position].InTime[ScrollBar1.Position].NDR[TVSType] do
      begin
         X:=ResultData.SUZDropTimes[CoreShell.TrackBar1.Position].InTime[ScrollBar1.Position].DRHeight[TVSType][j];
         Y:=ResultData.SUZDropTimes[CoreShell.TrackBar1.Position].InTime[ScrollBar1.Position].TVS[i].DrVal[j].Value;
         ChartSeriesList[i].AddXY(X,Y,'',ChartColor);
      end;
    end;
  end;

Как там вам ещё нужна информация, как храню...

  TDisplacementDR = record
    dX,dY:Real
  end;

  TDisplacementTVS = record
    //FA:Integer;
    TypeTVS:    Byte;
    DisplDR:    array [0..22] of TDisplacementDR;
    DRWithMax:  Byte;
    DRMaxVal:   Real;
    NDr:        Integer;
  end;

  TDisplacement = record
    TimeSec:real;
    TimeDay:real;
    DisplTVS:     array [1..164] of TDisplacementTVS;
    TVSWIthMax:   array [0..10] of Byte;
    TVSMaxVal:    array [0..10] of Real;
    TSVType:      array [1..10] of Byte;
    NTVSType:     Byte;
    NTVS:         Byte;
    FilePath:     string;
  end;

  TCalc_result = record
     FilePath:     string;
     Displacemen:  array  of TDisplacement;
     DistWithMax:  array [0..10] of integer;  //максимальное значение среди всех файлов
     DistMaxVal:   array [0..10] of real;
     TSVType:      array [1..10] of Byte;
     NTVSType:     Byte;
     Max,Min:      real;
     NDisplacemenFiles:   integer;
  end;

  TDrVal = record
   // TypeTVS   :Byte;
    Value     :Real;
  end;

  TTVS = record
    DrVal     :array of TDrVal;
    WithMax   :integer;  //максимальное значение
    MaxVal    :real;
    TSVType   :Byte;
  end;

  TInTime = record
    TVS         :array [0..163] of TTVS;
    NTVS        :integer;
    DRHeight    :array [1..10,1..101] of real; //тип твс и высота LH для данного типа
    NDR         :array [1..10] of Byte;
    TimeSec     :real;
    TimeDays    :real;
    WithMax:  array [0..10] of integer;  //максимальное значение среди
    MaxVal:   array [0..10] of real;
    TSVType:  array [1..10] of Byte;
    NTVSType:     Byte;
    FilePath :string;
  end;

  TData = record
   FilePath     :string;
   InTime       :array of TInTime;
   NTime        :Integer;
   Max,Min      :real;
   WithMax:  array [0..10] of integer;  //максимальное значение среди
   MaxVal:   array [0..10] of real;
   TSVType:  array [1..10] of Byte;
   NTVSType:     Byte;
  end;

  TBars =record
    Ns      :integer;
    Value   :Real;
  end;

  TBarsTimes = record
    Timesec     :real;
    TimeDays    :real;
    SG          :Byte;
    Gaps        :array of TBars;
    NGaps       :Integer;
    FilePath    :string;
  end;

  TBarsArray =record
    NTimes: integer;
    InTime: array of TBarsTimes;
    FilePath :string;
  end;

  TBarsResult = record
    NSubBar:integer;
    SubBar: array of TBarsArray;
  end;

  TRowResult =record
    Time :  real;
    Value: array [1..15] of real;
  end;

  TMainResults = record
     RandSeed:LongInt;
     Row: array of TRowResult;
     NRow:integer;
     NValue:integer;
     Name:array [1..15] of string;
     FilePath    :string;
  end;

  TInclData = record
    Data:array of TData;
    Size:integer;
    Name:string;
    Opened:boolean;
  end;

  TResult =record
     NCalcDisp           :Integer;
     Calc_result         :array of TCalc_result;
     DisplacemenOpened   :Boolean;

     NCalcSUZForse       :Integer;
     SUZForces           :array of TData;
     SUZForcesOpened     :Boolean;

     NCalcSUZTimesDrop   :Integer;
     SUZDropTimes        :array of TData;
     SUZDropTimesOpened  :Boolean;

     NBarResult         :Byte;
     BarsResult:         array of TBarsResult;
     BarOpened:          array [0..10] of Boolean;

     NCalcMainResult     :integer;
     MainResults:         array of TMainResults;
     MainResultsOpened:   Boolean;

     DataArray: array of TInclData;
  end;

Формат хранения постоянно дорабатываю и перерабатываю, но коль просите.

Ещё есть сохранение файлов и передача параметров, но там обыграть проще.

Коль вы увидели код, можете ли вы предложить что-то, что не предлагали ранее, при этом не сводя обсуждение к качеству моего кода.
8 авг 19, 13:26    [21944653]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
Андрей Игоревич
Member

Откуда:
Сообщений: 229
Gerasimenko
Андрей Игоревич,

Здесь на 52-х страницах собраны наиболее популярные вопросы по teechart

http://qaru.site/questions/tagged/teechart?page=1

возможно найдете, что искали

Спасибо, просмотрю. Хотя первый вопрос там мне понравился :)
автор
Что может привести к тому, что круговая диаграмма выйдет "хлюпать"?
.
8 авг 19, 13:28    [21944657]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
Андрей Игоревич
Member

Откуда:
Сообщений: 229
Gerasimenko
Андрей Игоревич,

Здесь на 52-х страницах собраны наиболее популярные вопросы по teechart

http://qaru.site/questions/tagged/teechart?page=1

возможно найдете, что искали

Увы не нашел, но там ещё поиск есть, но пока тоже не нашел нужного, много всего, но увы не того, что икал.

Заодно раз уж умные люди в доках к лазарусу пишут сделал такую процедуру.

begin
  GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, FPointSeparator);
  FPointSeparator.DecimalSeparator := '.';
  FPointSeparator.ThousandSeparator := '#';// disable the thousand separator
  GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, FCommaSeparator);
  FCommaSeparator.DecimalSeparator := ',';
  FCommaSeparator.ThousandSeparator := '#';// disable the thousand separator
end;

function StringToFloat(AStr: string): Double;
begin
  if Pos(',', AStr) > 0 then Result := StrToFloat(AStr, FCommaSeparator )
  else Result := StrToFloat(AStr, FPointSeparator);
end;

И групповой заменой поменял весь StrToFloat в процедурах считывания данных (наверно тогда и везде поменяю), чем по крайней мере гарантировал считывание при изменении глобального параметра.

А я вот подумал, а нельзя ли пойти на небольшой обман и создать свой шрифт, в котором точку поменять местами с запятой и при выборе галочки просто подключать это шрифт?
8 авг 19, 15:10    [21944861]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
Андрей Игоревич
Member

Откуда:
Сообщений: 229
Андрей Игоревич
А я вот подумал, а нельзя ли пойти на небольшой обман и создать свой шрифт, в котором точку поменять местами с запятой и при выборе галочки просто подключать это шрифт?

И ДА! Вот оно решение! Работает! Единственно я не умею в делфи создавать и менять шрифты, потому создал в сторонней программе шрифт.
В итоге всё так просто можно решить...
8 авг 19, 15:31    [21944888]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30556

пцнт упрт (С)

Posted via ActualForum NNTP Server 1.5

8 авг 19, 15:33    [21944889]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
ёёёёё
Member

Откуда:
Сообщений: 1295
Андрей Игоревич
...
А я вот подумал, а нельзя ли пойти на небольшой обман и создать свой шрифт, в котором точку поменять местами с запятой и при выборе галочки просто подключать это шрифт?

Это было бы прикольно. :)

Но вот еще беда: в некоторых странах требуют отделать группы десятичных разрядов пробелом, в иных - точками, или "апострофоми" ( ' ). Еще есть разные виды точек.
8 авг 19, 15:34    [21944891]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
Андрей Игоревич
Member

Откуда:
Сообщений: 229
ёёёёё
Андрей Игоревич
...
А я вот подумал, а нельзя ли пойти на небольшой обман и создать свой шрифт, в котором точку поменять местами с запятой и при выборе галочки просто подключать это шрифт?

Это было бы прикольно. :)

Но вот еще беда: в некоторых странах требуют отделать группы десятичных разрядов пробелом, в иных - точками, или "апострофоми" ( ' ). Еще есть разные виды точек.

Мы пока с такими странами не работаем. Будем работать - буду думать :). А вообще вы просто не представляете сколько инженеро-часов было потрачено, когда заставили во всей документации менять запятые на точки, сколько было ненависти и боли с глазах и словах людей :).
8 авг 19, 15:40    [21944902]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
alekcvp
Member

Откуда:
Сообщений: 1633
Андрей Игоревич
Андрей Игоревич
А я вот подумал, а нельзя ли пойти на небольшой обман и создать свой шрифт, в котором точку поменять местами с запятой и при выборе галочки просто подключать это шрифт?

И ДА! Вот оно решение! Работает! Единственно я не умею в делфи создавать и менять шрифты, потому создал в сторонней программе шрифт.
В итоге всё так просто можно решить...


Правильно, чем больше граблей сразу разложишь, тем разнообразнее секс потом будет
8 авг 19, 16:06    [21944935]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
Vlad F
Member

Откуда:
Сообщений: 985
Мимопроходящий
пцнт упрт (С)

А вы не верили в могутный потенциал! Да он нам всем ещё покажет.))
8 авг 19, 16:20    [21944949]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30556

08.08.2019 16:20, Vlad F пишет:
>
> А вы не верили в могутный потенциал!
> Да он нам всем ещё покажет.))

не, не!
я в домике! (С)

Posted via ActualForum NNTP Server 1.5

8 авг 19, 16:28    [21944958]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
Андрей Игоревич
Member

Откуда:
Сообщений: 229
alekcvp
Андрей Игоревич
пропущено...

И ДА! Вот оно решение! Работает! Единственно я не умею в делфи создавать и менять шрифты, потому создал в сторонней программе шрифт.
В итоге всё так просто можно решить...


Правильно, чем больше граблей сразу разложишь, тем разнообразнее секс потом будет

Все предложенные выше варианты - это раскидывание грабель по округе, наоборот, как мне кажется, это способ самый безопасный. Только там где выводится текст, если стоит галка и найден шрифт - то применяем измененный шрифт, иначе - стандартный. В чарте то же самое приминительно к лейблам.

Если же предложите менее грабельный путь, с радостью использую.
8 авг 19, 17:00    [21944990]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30556

Андрей, ты перфокарты застал?

Posted via ActualForum NNTP Server 1.5

8 авг 19, 17:07    [21944993]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
Андрей Игоревич
Member

Откуда:
Сообщений: 229
Мимопроходящий
Андрей, ты перфокарты застал?

Нет, моё знакомство с компьютером началось с дискет 5.25 и 8цветного здоровенного монитора с маленьким экраном и защитным стеклом, хотя в то время может где-то ещё и использовали перфокарты.
Тут за флуд не карают чтоль, хотя судя по вашему объему сообщений - нет, бардакссс :).

Эххх, вы бы по делу что предложили, может есть неграбельно-безкостыльный способ?
8 авг 19, 17:16    [21945000]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
vavan
Member

Откуда: Казань
Сообщений: 3412
Андрей Игоревич, так сам же уже пришел практически к решению. абстрагировать нужную логику за фасадом своей ф-ии. если же имя менять влом то прям strtofloat и оверрайдить где требуется
8 авг 19, 17:25    [21945006]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
rgreat
Member

Откуда:
Сообщений: 5450
Картинка с другого сайта.
8 авг 19, 17:32    [21945014]     Ответить | Цитировать Сообщить модератору
 Re: FloatToStr и знак разделителя десятичной дроби в разных системах  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30556

08.08.2019 17:16, Андрей Игоревич пишет:
> Нет, моё знакомство с компьютером началось с дискет 5.25

ты не поверишь, но большинство тех, кто считают что ты профан,
в эпоху перфокарт уже таки занимались программированием.
и оттого такая оторопь берёт - неужели так низко пал уровень
подготовки researcher-ов в нонешних условиях...

Posted via ActualForum NNTP Server 1.5

8 авг 19, 17:35    [21945015]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5 6   вперед  Ctrl      все
Все форумы / Delphi Ответить