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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2014, 19:58   #11
kabardinec
Пользователь
 
Регистрация: 10.01.2014
Сообщений: 59
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
типы конечно не совместимы но совсем не эти... у вас в ошибке они уже написаны, тут вопрос не в том что внутри коллекции, а в том что методу надо, а надо ему совсем не то что вы даете, ну вощем это уже по десятому кругу ...

следовательно есму надо дать то что он хочет, хоть разбейся а дай, иначе не будет дружить с новичками ни в какую.
вот вы про StringList упомянули, а его почему метод принимает, выяснили?
))) блин, щас крыша поедет уже....я понимаю, что ему надо дать то что он хочет и требует...но как? если там string а там listitem? StringList принимает потому что типы совместимы.. мы ходим вокруг да около и никак в центр не попадем.. и вы не говорите и я сам не могу догнать... это дело уже по моему из интереса в принцип переходит...т.е. решить эту задачу..
kabardinec вне форума Ответить с цитированием
Старый 11.01.2014, 20:17   #12
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Цитата:
Сообщение от kabardinec Посмотреть сообщение
Мне в конечном итоге нужно чтоб в ListView данные были...
Да легко. Берём StringList.

Код:
var
  TS: TStringList;
  i: integer;
  item : TListItem;
begin
  TS := TStringList.Create;
  ...
  GetValueNames(TS);
  for i := 0 to TS.count - 1 do begin
  item := ListView1.Items.Add;
  item.caption := TS[i];
end;
  TS.Free;
суть добавления думаю ясна, за синтаксис не отвечаю, писал по памяти.
doktor255 вне форума Ответить с цитированием
Старый 11.01.2014, 20:18   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
я понимаю, что ему надо дать то что он хочет и требует...но как
Это значит, что просто бросанием объектов на форму здесь не обойтись. Нужно предусмотреть код, преобразующий данные приемлимые для GetValueNames в данные приемлимые для ListView. И никак по другому. Или отказаться от ListView и использовать компоненты, имеющие свойства наследники от TStrings
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.01.2014, 20:31   #14
kabardinec
Пользователь
 
Регистрация: 10.01.2014
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Это значит, что просто бросанием объектов на форму здесь не обойтись. Нужно предусмотреть код, преобразующий данные приемлимые для GetValueNames в данные приемлимые для ListView. И никак по другому. Или отказаться от ListView и использовать компоненты, имеющие свойства наследники от TStrings
весь смысл этой всей дискуссии в этом и заключается, что "Нужно предусмотреть код, преобразующий данные приемлимые для GetValueNames в данные приемлимые для ListView. И никак по другому. "...и отказаться от ListView нельзя (мне именно он нужен)..такие мудрые слова все говорите, а вопрос остается нерешенным..почти все..
kabardinec вне форума Ответить с цитированием
Старый 11.01.2014, 20:32   #15
kabardinec
Пользователь
 
Регистрация: 10.01.2014
Сообщений: 59
По умолчанию

Цитата:
Сообщение от doktor255 Посмотреть сообщение
Да легко. Берём StringList.

Код:
var
  TS: TStringList;
  i: integer;
  item : TListItem;
begin
  TS := TStringList.Create;
  ...
  GetValueNames(TS);
  for i := 0 to TS.count - 1 do begin
  item := ListView1.Items.Add;
  item.caption := TS[i];
end;
  TS.Free;
суть добавления думаю ясна, за синтаксис не отвечаю, писал по памяти.
щас пробую реализовать..
kabardinec вне форума Ответить с цитированием
Старый 11.01.2014, 20:33   #16
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Цитата:
Сообщение от kabardinec Посмотреть сообщение
Нужно предусмотреть код, преобразующий данные приемлимые для GetValueNames в данные приемлимые для ListView.
Я выше привёл код заливки Strings в ListView. Что конкретно не устроило?
doktor255 вне форума Ответить с цитированием
Старый 11.01.2014, 20:37   #17
kabardinec
Пользователь
 
Регистрация: 10.01.2014
Сообщений: 59
По умолчанию

Цитата:
Сообщение от doktor255 Посмотреть сообщение
Я выше привёл код заливки Strings в ListView. Что конкретно не устроило?
Я это не вам..) щас пробую ваш вариант.. заливаю Tregistry в strings
kabardinec вне форума Ответить с цитированием
Старый 11.01.2014, 21:26   #18
kabardinec
Пользователь
 
Регистрация: 10.01.2014
Сообщений: 59
Сообщение

Цитата:
Сообщение от doktor255 Посмотреть сообщение
Да легко. Берём StringList.

Код:
var
  TS: TStringList;
  i: integer;
  item : TListItem;
begin
  TS := TStringList.Create;
  ...
  GetValueNames(TS);
  for i := 0 to TS.count - 1 do begin
  item := ListView1.Items.Add;
  item.caption := TS[i];
end;
  TS.Free;
суть добавления думаю ясна, за синтаксис не отвечаю, писал по памяти.
Доктор, спасибо..все четко работает!
Только остался один вопрос, думаю пока что..))

чеки запрограммировать не получается...

вот код, до чего додуматься смог...
Код:
Begin
              regOS.RootKey:=HKEY_CURRENT_USER;
              regOS.OpenKey('Test',true);
              GetValueNames(TS);
--------------------------------------------
Это ваш код
                      begin
                        for i := 0 to TS.count - 1 do begin
                          item := ListView1.Items.Add;
                          item.caption := TS[i];
                        end;
                        TS.Free;
                      end;
---------------------------------
Тут хотел удалить выбранные чеки (параметры реестра) 
                    begin
                        with ListView1.Items do
                        for a:=0 to Count-1 do
                        if Item[a].Checked then
                        DeleteValue();
                      end;
            End;
только так уж и умею программировать(((
kabardinec вне форума Ответить с цитированием
Старый 11.01.2014, 21:33   #19
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

DeleteValue(Item[a].Caption);
Вроде так.
doktor255 вне форума Ответить с цитированием
Старый 11.01.2014, 22:06   #20
kabardinec
Пользователь
 
Регистрация: 10.01.2014
Сообщений: 59
По умолчанию

Цитата:
Сообщение от doktor255 Посмотреть сообщение
DeleteValue(Item[a].Caption);
Вроде так.
Нет,братан.. чего то не хочет удалять..
Смотри...
чтоб чеки запрограммировать, ведь нужно вторую кнопку (например) создать и под нее процедуру новую с этим циклом..
Код:
цикл

with ListView1.Items do
                        for a:=0 to Count-1 do
                        if Item[a].Checked then
                        begin
                          DeleteValue(Item[a].Caption);
                        end;
если процедуру новую открыть тогда DeleteValue не распознается или приходится
Код:
regOS.DeleteValue(Item[a].Caption);
писать..и тогда ниче не происходит...

Последний раз редактировалось kabardinec; 11.01.2014 в 22:09.
kabardinec вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с реестром Windows XP в С++ Jtt Общие вопросы C/C++ 2 05.07.2011 20:34
Работа с системным реестром Windows XP DENIS_1992 Общие вопросы Delphi 5 02.06.2011 11:28
Работа с реестром windows Vlad2104 Помощь студентам 1 11.06.2010 21:17
Cохранить в файл значение заданного имени, тип REG_BINARY. Работа с реестром Windows. DelphiFun Общие вопросы Delphi 9 01.08.2007 21:36