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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2011, 22:04   #21
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
Сейчас посмотрим

Ну во первых в Delphi контролам названия на русском языке не дают
дата: TLabel;
сумма: TLabel;
во первых в делфи имена на русском дают! (если d2009+)
ZuBy вне форума Ответить с цитированием
Старый 13.07.2011, 22:55   #22
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

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

Последний раз редактировалось Aliens_wolfs; 13.07.2011 в 23:04.
Aliens_wolfs вне форума Ответить с цитированием
Старый 13.07.2011, 23:04   #23
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

выбери кодировку юникодную в редакторе кода
ZuBy вне форума Ответить с цитированием
Старый 13.07.2011, 23:09   #24
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Неудобно постоянно на эти названия отвлекаться лучше латынь и лишнего головняка нет. А бред был из за того что недогружен шрифт на Windows был юникод не помог. Ну он может оставить и все так как есть.


Я так понял из кода что работа с ListView через массив.
Если делаете массив
AllDateArray :Array of TDateTime;
summa,skidka:array of currency;
val,schet,com,statya:array of string;


то лучше мне кажется так через тип record:
Код:
type
  TItemList = record
  AllDateArray: TDateTime;
  summa, skidka: currency;
  val, schet, com, statya: string;
end;

var
  ItemList : array of TItemList;
Код:
Изменим в вашем проекте процедуру где задаете массив и информацию в ListView:
procedure TFormRashodDob.BitBtnDobRashodОкClick(Sender: TObject);
var
  LI:TlistItem;
  i2:integer;
i:integer;
begin
//Узнаем сколько осталось строк в массиве
  i := Length(ItemList);
 //создается новая строка в массиве
  SetLength(ItemList, i + 1);
//ввод даты в переменную AllDateArray
  ItemList[i].AllDateArray := DateTimePickerRashodDob.Date; 
//ввод статьи в перменную statya
  ItemList[i].statya := editRashodDobStatya.Text;
  //ввод суммы в переменную Summa
  ItemList[i].Summa := StrToCurr(EditRashodDobSumma.Text);
...и так далее, затем в Listview вставляете как вы написали в коде, единственно подставляйте значение ItemList[i]. перед параметрами
В Вашем коде была ошибка из за того что setlength(statya,1); у вас всегда 1, когда добавляете новую строку их нужно нумировать
если setlength(statya,1); значит строка 0, если setlength(statya,2); значит строка 1 и так далее. А у вас была одна строка.

Код:
Ну а считывание идет судя по Вашему коду не с ListView в ней только указатель на строку, а с массива:
procedure TFormRashod.NIzmRashodClick(Sender: TObject);
begin
//Ваш код
  FormRashodDob.show;
  i:=ListViewRashod.itemindex;
  FormRashodDob.DateTimePickerRashodDob.Date:=ItemList[i].AllDateArray;//Я немного подправил
  FormRashodDob.EditRashodDobStatya.text := ItemList[i].Statya;//Я немного подправил
  FormRashodDob.EditRashodDobSumma.text := CurrToStr(ItemList[i].Summa);//Я немного подправил
...и так далее
Код:
Или можно сразу с ListView считывать параметры судя по таблицы из Вашего кода то получится так, массив тогда вообще не нужен и так проще:
procedure TFormRashod.NIzmRashodClick(Sender: TObject);
begin
//Ваш код
  FormRashodDob.show;
  i:=ListViewRashod.itemindex;
  FormRashodDob.DateTimePickerRashodDob.Date:=StrToDateTime(ListViewRashod.Items[i].Caption);//AllDateArray
  FormRashodDob.EditRashodDobStatya.text := ListViewRashod.Items[i].SubItems[0];//Statya
  FormRashodDob.EditRashodDobSumma.text := ListViewRashod.Items[i].SubItems[1];//Summa
...и так далее
Если вы работаете с ListView и массивом то вам нужно контролировать их обоих.

Примеры и информацию о компонентах в том числе и о ListView можете найти здесь
http://www.delphisources.ru/pages/fa...s_classes.html

Последний раз редактировалось Aliens_wolfs; 14.07.2011 в 01:24.
Aliens_wolfs вне форума Ответить с цитированием
Старый 14.07.2011, 13:24   #25
TotKtoNado
юзер
Форумчанин
 
Аватар для TotKtoNado
 
Регистрация: 22.12.2010
Сообщений: 245
По умолчанию

я сейчас сделал ListView.itemIndex-1 и у меня теперь появляеться ошибка ---------------------------
Financialadvisor
---------------------------
Access violation at address 00407002 in module 'FinancialAdvisor.exe'. Read of address FFFFFFF7.
---------------------------
ОК
---------------------------
когда нажимаешь на изменить
а если просто ItenIndex то когда я нажимаю 1 строку и на изменить то в едитах появляються данные 2 строки а когда я нажимаю на 2 строку то появляються цыфры 3647925318896,8448 и в строках буквы ОО
TotKtoNado вне форума Ответить с цитированием
Старый 14.07.2011, 13:52   #26
TotKtoNado
юзер
Форумчанин
 
Аватар для TotKtoNado
 
Регистрация: 22.12.2010
Сообщений: 245
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
Неудобно постоянно на эти названия отвлекаться лучше латынь и лишнего головняка нет. А бред был из за того что недогружен шрифт на Windows был юникод не помог. Ну он может оставить и все так как есть.


Я так понял из кода что работа с ListView через массив.
Если делаете массив
AllDateArray :Array of TDateTime;
summa,skidka:array of currency;
val,schet,com,statya:array of string;


то лучше мне кажется так через тип record:
Код:
type
  TItemList = record
  AllDateArray: TDateTime;
  summa, skidka: currency;
  val, schet, com, statya: string;
end;

var
  ItemList : array of TItemList;
Код:
Изменим в вашем проекте процедуру где задаете массив и информацию в ListView:
procedure TFormRashodDob.BitBtnDobRashodОкClick(Sender: TObject);
var
  LI:TlistItem;
  i2:integer;
i:integer;
begin
//Узнаем сколько осталось строк в массиве
  i := Length(ItemList);
 //создается новая строка в массиве
  SetLength(ItemList, i + 1);
//ввод даты в переменную AllDateArray
  ItemList[i].AllDateArray := DateTimePickerRashodDob.Date; 
//ввод статьи в перменную statya
  ItemList[i].statya := editRashodDobStatya.Text;
  //ввод суммы в переменную Summa
  ItemList[i].Summa := StrToCurr(EditRashodDobSumma.Text);
...и так далее, затем в Listview вставляете как вы написали в коде, единственно подставляйте значение ItemList[i]. перед параметрами
В Вашем коде была ошибка из за того что setlength(statya,1); у вас всегда 1, когда добавляете новую строку их нужно нумировать
если setlength(statya,1); значит строка 0, если setlength(statya,2); значит строка 1 и так далее. А у вас была одна строка.

Код:
Ну а считывание идет судя по Вашему коду не с ListView в ней только указатель на строку, а с массива:
procedure TFormRashod.NIzmRashodClick(Sender: TObject);
begin
//Ваш код
  FormRashodDob.show;
  i:=ListViewRashod.itemindex;
  FormRashodDob.DateTimePickerRashodDob.Date:=ItemList[i].AllDateArray;//Я немного подправил
  FormRashodDob.EditRashodDobStatya.text := ItemList[i].Statya;//Я немного подправил
  FormRashodDob.EditRashodDobSumma.text := CurrToStr(ItemList[i].Summa);//Я немного подправил
...и так далее
Код:
Или можно сразу с ListView считывать параметры судя по таблицы из Вашего кода то получится так, массив тогда вообще не нужен и так проще:
procedure TFormRashod.NIzmRashodClick(Sender: TObject);
begin
//Ваш код
  FormRashodDob.show;
  i:=ListViewRashod.itemindex;
  FormRashodDob.DateTimePickerRashodDob.Date:=StrToDateTime(ListViewRashod.Items[i].Caption);//AllDateArray
  FormRashodDob.EditRashodDobStatya.text := ListViewRashod.Items[i].SubItems[0];//Statya
  FormRashodDob.EditRashodDobSumma.text := ListViewRashod.Items[i].SubItems[1];//Summa
...и так далее
Если вы работаете с ListView и массивом то вам нужно контролировать их обоих.

Примеры и информацию о компонентах в том числе и о ListView можете найти здесь
http://www.delphisources.ru/pages/fa...s_classes.html
а код FormRashodDob.show; в событии procedure TFormRashodDob.BitBtnDobRashodОкCli ck(Sender: TObject);
тоже удалять?
TotKtoNado вне форума Ответить с цитированием
Старый 14.07.2011, 14:10   #27
TotKtoNado
юзер
Форумчанин
 
Аватар для TotKtoNado
 
Регистрация: 22.12.2010
Сообщений: 245
По умолчанию

---------------------

Последний раз редактировалось TotKtoNado; 14.07.2011 в 16:05.
TotKtoNado вне форума Ответить с цитированием
Старый 14.07.2011, 16:12   #28
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Удалять ничего не нужно, нужно изменить, я же написал где что
Еще раз посмотрите и вникните в предыдущий код и подумайте.
Внимательно читайте там только изменить немного и все будет работать у вас выделение памати для массива неправильное.
Если вы свой массив так сделали то к каждому параметру задавайте его имя.

Код:
type
  TItemList = record
  AllDateArray: TDateTime;
  summa, skidka: currency;
  val, schet, com, statya: string;
end;

var
  ItemList : array of TItemList;
например так ItemList[0].AllDateArray

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

В конце своих подсказок я написал 2 варианта, считывание параметров с массивом и без массива с ListView подберите для себя нужный вариант

Последний раз редактировалось Aliens_wolfs; 14.07.2011 в 16:22.
Aliens_wolfs вне форума Ответить с цитированием
Старый 14.07.2011, 16:28   #29
TotKtoNado
юзер
Форумчанин
 
Аватар для TotKtoNado
 
Регистрация: 22.12.2010
Сообщений: 245
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
Удалять ничего не нужно, нужно изменить, я же написал где что
Еще раз посмотрите и вникните в предыдущий код и подумайте.
Внимательно читайте там только изменить немного и все будет работать у вас выделение памати для массива неправильное.
Если вы свой массив так сделали то к каждому параметру задавайте его имя.

Код:
type
  TItemList = record
  AllDateArray: TDateTime;
  summa, skidka: currency;
  val, schet, com, statya: string;
end;

var
  ItemList : array of TItemList;
например так ItemList[0].AllDateArray

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

В конце своих подсказок я написал 2 варианта, считывание параметров с массивом и без массива с ListView подберите для себя нужный вариант
ничего не понимаю зачем читать предыдущий код и где у меня выедление памяти для массива не правильное и к какому параметру?

2 раза выскакивает окно
[Window Title]
Error

[Content]
Field FormRashod.ItemList does not have a corresponding component. Remove the declaration?

[Yes] [No] [Cancel] [Help]
и 9 ошибок ругаеться
Checking project dependencies...
Compiling FinancialAdvisor.dproj (Debug configuration)
[DCC Error] UnitRashod.pas(43): E2169 Field definition not allowed after methods or properties
[DCC Error] UnitRashod.pas(47): E2217 Published field 'TItemList' not a class or interface type
[DCC Error] UnitRashod.pas(56): E2003 Undeclared identifier: 'TItemList'
[DCC Error] UnitDobRashod.pas(34): E2169 Field definition not allowed after methods or properties
[DCC Error] UnitDobRashod.pas(38): E2217 Published field 'TItemList' not a class or interface type
[DCC Error] UnitDobRashod.pas(76): E2066 Missing operator or semicolon
[DCC Error] UnitDobRashod.pas(78): E2066 Missing operator or semicolon
[DCC Error] UnitDobRashod.pas(80): E2066 Missing operator or semicolon
[DCC Fatal Error] UnitRashod.pas(61): F2063 Could not compile used unit 'UnitDobRashod.pas'
Failed
Elapsed time: 00:00:08.8


для меня с массивами лучше и что за подсказки7

Последний раз редактировалось TotKtoNado; 14.07.2011 в 17:11.
TotKtoNado вне форума Ответить с цитированием
Старый 14.07.2011, 16:30   #30
TotKtoNado
юзер
Форумчанин
 
Аватар для TotKtoNado
 
Регистрация: 22.12.2010
Сообщений: 245
По умолчанию

-------------------------------

Последний раз редактировалось TotKtoNado; 14.07.2011 в 17:08.
TotKtoNado вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
добавление строк в ListView TotKtoNado Общие вопросы Delphi 1 10.07.2011 16:07
добавление строк в ListView TotKtoNado БД в Delphi 0 06.07.2011 14:10
Изменение listview nenoob1 Общие вопросы Delphi 3 19.07.2010 15:39
Отображение строк в ListView Vistar Общие вопросы .NET 0 22.05.2010 11:59
Изменение параметров ListView через ShowMessage Romanbl4 Компоненты Delphi 5 29.06.2007 15:46