ANTICHAT Forum
HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
НОВЫЕ ТОРГОВАЯ НОВОСТИ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 08.03.2010, 17:06
НTL
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
С нами: 9626394

Репутация: 357


По умолчанию

Цитата:
Сообщение от fenixelite  
У элемента массива есть имя? Оо Могу предложить сделать либо 2 массива(1-имя, 2-значение), либо двухмерный массив( например [1,1] - имя1, [1,2] -значение1
Может я что то недопонимаю:
Цитата:
test1[name]:='Бла бла';
Но мне кажется что в [] указывается имя
 
Ответить с цитированием

  #2  
Старый 08.03.2010, 17:22
fenixelite
Участник форума
Регистрация: 07.02.2010
Сообщений: 189
С нами: 8556802

Репутация: 79
По умолчанию

там числовой индекс указывается. test1[1] , test[2] и т.д.. По крайней мере в Delphi так.
 
Ответить с цитированием

  #3  
Старый 08.03.2010, 17:31
НTL
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
С нами: 9626394

Репутация: 357


По умолчанию

Цитата:
Сообщение от fenixelite  
там числовой индекс указывается. test1[1] , test[2] и т.д.. По крайней мере в Delphi так.
Жаль, в PHP можно и имя назначить
 
Ответить с цитированием

  #4  
Старый 08.03.2010, 17:33
GhostOnline
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
С нами: 9152955

Репутация: 84
По умолчанию

Не надо 2 массивов если работаешь с текстом. есть варианты проще:
TStringList
Код:
Пример кода : Использование строк название-значение var   names  : TStringList;            // Определение нашей переменной списка строк   ageStr : String;   i      : Integer; begin   // Определение объекта списка строк, и указание нашей переменной на него   names := TStringList.Create;    // Теперь добавляем несколько названия в наш список   names.CommaText := 'Neil=45, Brian=63, Jim=22';    // И теперь находим возраст Брайена   ageStr := names.Values['Brian'];    // Показ этого значения   ShowMessage('Возраст Brian'а = '+ageStr);    // Теперь отображаем все имена и значение возраста   for i := 0 to names.Count-1 do   begin     ShowMessage(names.Names[i]+' - '+names.ValueFromIndex[i]);   end; end; Возраст Brian'а 63 Neil - 45 Brian - 63 Jim - 22
Источник: http://delphibasics.ru/TStringList.php
Самое то для таких вещей
И имена можно использовать

Последний раз редактировалось GhostOnline; 08.03.2010 в 17:36..
 
Ответить с цитированием

  #5  
Старый 08.03.2010, 17:37
НTL
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
С нами: 9626394

Репутация: 357


По умолчанию

Цитата:
Сообщение от GhostOnline  
Не надо 2 массивов если работаешь с текстом. есть варианты проще:
TStringList
Код:
Пример кода : Использование строк название-значение var   names  : TStringList;            // Определение нашей переменной списка строк   ageStr : String;   i      : Integer; begin   // Определение объекта списка строк, и указание нашей переменной на него   names := TStringList.Create;    // Теперь добавляем несколько названия в наш список   names.CommaText := 'Neil=45, Brian=63, Jim=22';    // И теперь находим возраст Брайена   ageStr := names.Values['Brian'];    // Показ этого значения   ShowMessage('Возраст Brian'а = '+ageStr);    // Теперь отображаем все имена и значение возраста   for i := 0 to names.Count-1 do   begin     ShowMessage(names.Names[i]+' - '+names.ValueFromIndex[i]);   end; end; Возраст Brian'а 63 Neil - 45 Brian - 63 Jim - 22
Источник: http://delphibasics.ru/TStringList.php
Самое то для таких вещей
И имена можно использовать
Надо через ' '(Пробел), а не через '='
 
Ответить с цитированием

  #6  
Старый 08.03.2010, 17:35
fenixelite
Участник форума
Регистрация: 07.02.2010
Сообщений: 189
С нами: 8556802

Репутация: 79
По умолчанию

В общем сделал в 2 массивами, думаю сам разберешься, что к чему.
http://slil.ru/28760299
 
Ответить с цитированием

  #7  
Старый 08.03.2010, 17:39
GhostOnline
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
С нами: 9152955

Репутация: 84
По умолчанию

Вообще-то, разделитель вроде как можно изменять, написано в том мане. По дефолту - да, стоит "="

Не, в том мане нет, ну вообще вот так:

Цитата:
В свойстве Names содержится текст до знака равенства. В свойстве values содержится текст после знака равенства по умолчанию. Однако символ-разделитель можно заменить на любой другой, использовав свойство property NameValueSeparator: Char; Доступ к значениям свойства values осуществляется по значению. Например, если в списке есть строка City=Saint-Petersburg то значение свойства value будет равно Value['City'] = 'Saint-Petersburg' Кроме этого, значение свойства value можно получить, если известен его индекс: property ValueFormlndex[Index: Integer]: string;

Последний раз редактировалось GhostOnline; 08.03.2010 в 17:44..
 
Ответить с цитированием

  #8  
Старый 08.03.2010, 17:40
fenixelite
Участник форума
Регистрация: 07.02.2010
Сообщений: 189
С нами: 8556802

Репутация: 79
По умолчанию

НTL, мой глянь, может устроит
 
Ответить с цитированием

  #9  
Старый 09.03.2010, 17:37
ErrorNeo
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
С нами: 8960826

Репутация: 2261


По умолчанию

вопрос:
Win7
запускаем программу, имеем варнинг:
Код:
User Account Control
Do you want to allow the following program from an unknown publisher make changes 
to this computer?
как программно нажать "Yes"?

Пробовал мышью:
Код:
var TI:TInput;
begin
TI.Itype:=0;
TI.mi.dx:= 37000;
TI.mi.dy:= 37000;
TI.mi.mouseData:=0;
TI.mi.time:=0;
TI.mi.dwFlags:=MOUSEEVENTF_MOVE+MOUSEEVENTF_ABSOLUTE;
SendInput(1,TI,sizeof(TI));
TI.mi.dwFlags:=MOUSEEVENTF_LEFTDOWN;
SendInput(1,TI,sizeof(TI));
TI.mi.dwFlags:=MOUSEEVENTF_LEFTUP;
SendInput(1,TI,sizeof(TI));
end.
- под Win7 не катит.
Код:
SetCursorPos(500, 500);
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, 500, 500, 0,0);
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, 500,500,0,0)
- под Win7 срабатывает, даже setpos не выполняется.

Пробовал клавой:
Код:
procedure SetKey(Key:Integer);
begin
  keybd_event(Key,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
  keybd_event(Key,0,KEYEVENTF_EXTENDEDKEY,0);
  keybd_event(Key,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
end;

begin
   SetKey(VK_LEFT);
   SetKey(VK_RETURN);
end;
- сам по себе код работает (на активном окне), но конкретно на этом варнинге - нет.

Не сильно рассчитываю на ответ, но если кто-то сталкивался - скажите)

Последний раз редактировалось ErrorNeo; 09.03.2010 в 17:51..
 
Ответить с цитированием

  #10  
Старый 09.03.2010, 17:52
fenixelite
Участник форума
Регистрация: 07.02.2010
Сообщений: 189
С нами: 8556802

Репутация: 79
По умолчанию

Хмм странно. Только что попробовал имитировать нажатие мыши на Win7, все получилось! Попробуй это

Код:
GetCursorPos(A)  // узнать текущее положение мыши (где A : TPoint)
SetCursorPos(X,Y) // установить новое положение мыши
mouse_event(MOUSEEVENTF_LEFTDOWN,X,Y,0,0) //нажать левой кнопки
mouse_event(MOUSEEVENTF_LEFTUP,X,Y,0,0) //отпустить левую кнопку
P.S наверное твоя проблема в том, что ты GetCursorPos(A) упустил

Последний раз редактировалось fenixelite; 09.03.2010 в 17:54..
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/Wi-Fi/Wardriving 2571 20.06.2026 14:48
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.