Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Ошибка преобразования пустой строки в число при использовании `StringGrid` в Delphi

Delphi , Компоненты и Классы , TStringGrid и TDrawGrid

Ошибка преобразования пустой строки в число при использовании StringGrid в Delphi

Вопрос пользователя связан с ошибкой преобразования строки в число при работе с компонентами StringGrid и TChart в среде разработки Delphi. Пользователь пытается построить график значений, которые хранятся в StringGrid, но сталкивается с ошибкой "'' is not a floating point value", указывающей на то, что программа пытается преобразовать пустую строку в число.

Проблема

Пользователь использует StringGrid размером 140x140 (количество строкх столбцов) для хранения числовых значений и хочет отобразить их на графике с помощью TChart. Координаты ячеек StringGrid должны отображаться по оси X, а значения — по оси Y.

Приведенный код обработчика нажатия кнопки вызывает ошибку, так как в одной из ячеек StringGrid отсутствует числовое значение, и при попытке преобразования в число возникает ошибка.

Решение

Ошибка связана с тем, что в коде используется пустая строка, которую невозможно преобразовать в число. Необходимо проверить данные в StringGrid на координатах, передаваемых в свойство Cells. Важно помнить, что индексация ячеек начинается с нуля, включая закрепленные ячейки.

Важные замечания

  • Данные для StringGrid импортируются из Excel, что не влияет на решение проблемы, поскольку данные уже находятся в виде строк.
  • Полезно использовать отладчик, чтобы увидеть, что в StringGrid передаются пустые строки для преобразования в числа.

Пример кода с исправлениями

procedure TForm2.Button2Click(Sender: TObject);
var
  Count: Integer;
begin
  with StringGrid1 do
  begin
    // Начинаем цикл с первой заполненной ячейки
    for Count := FixedRows to RowCount - 1 do
    begin
      // Проверяем, что ячейка не пустая и содержит числовое значение
      if not Cells[0, Count].IsEmpty and Cells[0, Count] <> '' then
      begin
        Chart1.Series[0].AddXY(StrToFloat(Cells[0, Count]), // Координата X (индекс ячейки)
                                StrToFloat(Cells[1, Count]), // Значение по оси Y
                                '',
                                clTeeColor);
      end;
    end;
  end;
end;

Дополнительные советы

  • Хранение данных в массивах или коллекциях вместо использования StringGrid для хранения может быть более предпочтительным.
  • Использование отладчика для проверки данных в StringGrid перед преобразованием в числа поможет избежать подобных ошибок.

Вывод

При работе с StringGrid в Delphi важно обращать внимание на корректность данных в ячейках перед их преобразованием в числа. Использование отладчика и корректная индексация ячеек помогут избежать ошибок, связанных с пустыми строками.

Создано по материалам из источника по ссылке.

Пользователь столкнулся с проблемой при попытке преобразовать строки из компонента `StringGrid` в числа для отображения на графике в среде Delphi, что вызвало ошибку из-за пустых строк.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: TStringGrid и TDrawGrid ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-03-14 11:15:58/0.0035288333892822/0