Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2011, 02:23   #1
radiokarazinec
Пользователь
 
Регистрация: 13.12.2010
Сообщений: 47
По умолчанию Построение графика

нужно построить график вот есть код
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    ListBox2: TListBox;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
  Delim='    ';


var
  Form1: TForm1;


implementation

{$R *.dfm}
var
Arr1,arr2:array[0..39] of string;


function FirstToArr1(s:string):string;
begin
  //Копируем первую часть строки
Result:=Copy(s,1,AnsiPos(Delim,s));
end;

function secondToArr2(s:string):string;
begin
  //Удаляем первую часть строки + делтель, остальное в результат
System.Delete(s, 1, AnsiPos(Delim, s));
Result:=s;
end;

procedure Inpup;
var
  i:Integer;
begin
for i:=0 to 39 do
begin
Form1.ListBox1.Items.Add(Arr1[i]);
Form1.ListBox2.Items.Add(Arr2[i]);
end;
for i:=0 to 39 do
Form1.ListBox1.Items.Delete(i);
for i:=0 to 2 do
Form1.ListBox2.Items.Delete(i);
Form1.ListBox1.Items.SaveToFile('1.txt');
Form1.ListBox2.Items.SaveToFile('2.txt');
end;



procedure TForm1.Button1Click(Sender: TObject);
var
  ts:TStringList;
  i:Integer;
  myDir:string;
begin
  myDir:=ExtractFilePath(ParamStr(0));
  ts:=TStringList.Create;
  try
  ts.LoadFromFile(myDir+'Data.txt');
  for i:=0 to ts.Count -1 do
  begin
    //Заполняем массивы
  Arr1[i]:=FirstToArr1(ts.Strings[i]);
  Arr2[i]:=secondToArr2(ts.Strings[i]);
  end;
  Inpup;
  finally
  ts.Free;
  end;
end;

end.
у меня есть два ListBox, Chart, и кнонки, при нажатии на кнопку Data в ListBox появляются данные и вот по этим данным мне надо построить график. из одного бокса по точки оси X? из другого по Y. Типа амплитуда и время распространения сигнала. график должен быть один. тут из-за того что Strings не хочет строить. Подкинте плиз свои гениальные идеи
radiokarazinec вне форума Ответить с цитированием
Старый 23.02.2011, 11:04   #2
VadikV
Форумчанин
 
Аватар для VadikV
 
Регистрация: 08.01.2011
Сообщений: 226
По умолчанию

используй StrToFloat для перевода из текста в число
icq 223-630-454
e-mail vysotskiy@list.ru
сайт http://www.big-library.net/
VadikV вне форума Ответить с цитированием
Старый 23.02.2011, 21:11   #3
radiokarazinec
Пользователь
 
Регистрация: 13.12.2010
Сообщений: 47
По умолчанию

а как это реализовать, вот что должно быть написано?
Код:
StrToFloat('Arr1[i]')
?
radiokarazinec вне форума Ответить с цитированием
Старый 23.02.2011, 21:22   #4
bananasus
Пользователь
 
Аватар для bananasus
 
Регистрация: 24.01.2011
Сообщений: 67
По умолчанию

Код:
StrToFloat(s);
где s строка.
bananasus вне форума Ответить с цитированием
Старый 23.02.2011, 21:36   #5
radiokarazinec
Пользователь
 
Регистрация: 13.12.2010
Сообщений: 47
По умолчанию

ну вот напиши плиз как оно будет, у меня же там 2 массива, вообще не знаю
radiokarazinec вне форума Ответить с цитированием
Старый 23.02.2011, 22:37   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Сообщение от radiokarazinec Посмотреть сообщение
а как это реализовать, вот что должно быть написано?
Код:
StrToFloat('Arr1[i]')
?

Да вы написали привильно. Массив строковой то, следовательно Arr1[i] возвращает строу из массива под номером i.

Но для начала нужно узнать длинну массива.

всё будет примерно так:

Код:
procedure Ox; //Ось Ох
var
  i,l:integer;
begin
l:=Length(Arr1); //Узнаём длинну массива.
for i:=0 to l do
begin
{тут переменная для хранения нового Float}:=StrToFloat(Arr1[i]); //передаём в переменную.
{Далее сторите график}
end;
end;

procedure Oy; //Ось Оy
var
  i,l:integer;
begin
l:=Length(Arr2); //Узнаём длинну массива.
for i:=0 to l do
begin
{тут переменная для хранения нового Float}:=StrToFloat(Arr2[i]); //передаём в переменную.
{Далее сторите график}
end;
end;
1. У вас должна быть формула графика который вы будите стоить.
2. Вы должны постоить сам график Ox и Oy.

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

Последний раз редактировалось Человек_Борща; 23.02.2011 в 22:41.
Человек_Борща вне форума Ответить с цитированием
Старый 23.02.2011, 22:42   #7
radiokarazinec
Пользователь
 
Регистрация: 13.12.2010
Сообщений: 47
По умолчанию

Код:
{тут переменная для хранения нового Float}:=StrToFloat(Arr2[i]); //передаём в переменную.
а что тут сразу двоеточие идет?
оно мне пишет в этой строчке ошибку, если я перед двоеточием ставлю a. который я определил как array of double
Код:
[Ошибка] Unit1.pas(100): Incompatible types: 'Extended' and 'dynamic array'
так у меня нет формулы мне надо просто по точкам посроить из массивов

Последний раз редактировалось radiokarazinec; 23.02.2011 в 22:51.
radiokarazinec вне форума Ответить с цитированием
Старый 23.02.2011, 22:51   #8
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

если у тебя координаты созраняюца в массив то
Код:
{тут переменная для хранения нового Float}[Index]:=StrToFloat(Arr2[i]); //передаём в переменную.
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 23.02.2011, 22:52   #9
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

ошибка "несоответствие типов: вещественный и динамический массив".
надо так.
Код:
setlength(a,high(a)+1);
a[high(a)]:=StrToFloat(Arr2[i]);
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 23.02.2011, 23:05   #10
radiokarazinec
Пользователь
 
Регистрация: 13.12.2010
Сообщений: 47
По умолчанию

и как из этого построить график. ну привидите пример кода плиз
radiokarazinec вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Построение графика Foxx Microsoft Office Excel 5 04.11.2019 16:21
построение Графика на с++ 4ika Помощь студентам 0 04.05.2010 20:37
Построение графика Nikkkk Общие вопросы C/C++ 7 01.06.2009 01:46
Построение графика Sasuke-sama Общие вопросы C/C++ 30 31.05.2009 17:59
построение графика deadh5n1 Помощь студентам 2 13.09.2008 19:06