Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi

Модерирует : ShIvADeSt

ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

   

YurikGL



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Если у тебя все числа в одну цифру, то забивай через номер символа.
st:string
 
a[1,1]:=st[1]
a[1,2]:=st[3]
....

Всего записей: 308 | Зарегистр. 02-09-2004 | Отправлено: 11:33 14-06-2005
Tropin



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
HelL_Doctor
 
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
var
  F: Text;
  A: array [1..4, 1..5] of Byte;
  i, j: Byte;
 
begin
  AssignFile(F, 'C:\file.txt');
  Reset(F);
  for i:=1 to 4 do begin
    for j:=1 to 5 do begin
      Read(F, A[i, j]);
    end;
    Readln(F);
  end;
  CloseFile(F);
end.


----------
Вот потому, что вы говорите то, что не думаете и думаете то, что не думаете, вот в клетках и сидите... (C) Кин-дза-дза

Всего записей: 538 | Зарегистр. 25-11-2002 | Отправлено: 18:31 14-06-2005
FighterZP

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток.
 
Вот такая вот проблема:
 
каким образом мне можно послать в другую программу в ее главное окно в компонент Edit текст?
Хэндл окна я получил, кнопки жать тоже получается, но вот почему то не хочет посылаться текст:
 

Цитата:
 
wHandle:=FindWindow(nil,'Name_of_Window');
wHandle:=FindWindowEx(wHandle,0,'Edit',nil);
SendMessage (wHandle, WM_SETTEXT,0,Longint(Edit1.Text));

 
 
интересен факт, что например
 
wHandle:=FindWindow(nil,'Name_of_Window');
SendMessage (wHandle, WM_SETTEXT,0,Longint(Edit1.Text));
 
благополучно меняет название окна.
 
Как таки достучаться до моего EDITа?

Всего записей: 6 | Зарегистр. 14-06-2005 | Отправлено: 19:15 14-06-2005
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
FighterZP

Цитата:
wHandle:=FindWindowEx(wHandle,0,'Edit',nil);

Имя класа TEdit обычно, если программист не поменял.
Впрочем так тоже не хочет...
А не работает по причине, что на форме может быть несколько TEdit. Какой первым будет - винде видней.
Если писать так FindWindowEx(wHandle,0,nil,'Edit1'); - всю работает


----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 19:48 14-06-2005
FighterZP

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OdesitVadim
 
попробывал твой вариант - все равно не посылается текст
я даже создал простешую програмку с одним только компонентом EDIT на форме, и попытался в это окно послать текстк в компонент EDIT. все равно не работает
в программе SW32.EXE (она встроена и в Билдер и в Делфи) попытался найти свой процесс и названия компонентво в моей тестовой программе - поиск вообще ничего не дал
 
может быть проблема в том что нужно посылать ДОЧЕРНЕМУ ОКНУ или , поточнее, CHILD WINDOW..... только вот как это сделать?
 
или даже можно следующим образом - по умолчанию при открытии формы, фокус ввода уже стоит на компоненте EDIT, и в буфере обмена  Винды у меня уже хранятся необходимые для пересылки данные, нужно всего лишь нажать программно CTRL+V, что тоже не получается
 
---------------------
 
кстати, в этом же самом окне находится кнопка, ее нажать получается, следовательно, доступ к этому окну уже есть, но вот обратиться к EDIT не получается.

Всего записей: 6 | Зарегистр. 14-06-2005 | Отправлено: 10:13 15-06-2005 | Исправлено: FighterZP, 11:36 15-06-2005
MrZeRo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А попробовать использовать EnumChildWindows, если Handle родительского окна найден?
Она дает ссылки на все окна, принадлежащие заданному окну.
 

Всего записей: 832 | Зарегистр. 30-01-2002 | Отправлено: 13:25 15-06-2005
SergeyReutov



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как можно получить данные из экселевского файла? Файл не должен быть открыт. Передать данные удается, а вот получить нет.  

Всего записей: 171 | Зарегистр. 23-01-2003 | Отправлено: 14:25 15-06-2005
FighterZP

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MrZeRo
 
если точнее описать, то я уже имею в принципе Handle нужного мне окна и запросто меняю его название на данные, которые находятся в буфере обмена.
с помошью WINSIGN32 узнал что имя компонета - EDIT ......
дальше - полный мрак, грамматика правильная, результата ноль!

Всего записей: 6 | Зарегистр. 14-06-2005 | Отправлено: 14:49 15-06-2005
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SergeyReutov
Как же ты передаёш Excel, если документ не открыт? В любом случае его прийдётся открыть (даже через AssignFile Reset). Наиболее просто - через СОМ технологию. Есть правда библиотека для работы с Excel напрямую, но лучше не рисковать.
FighterZP
Я пример свой потестировал - работает.
Попробуй вставить проверку на хендл. Если больше 0, то нормально (для Винды практически он должен быть не менне нескольких тысяч). Если он равен 0 - то плохо.

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 16:09 15-06-2005
SergeyReutov



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OdesitVadim
Через шаблон. Открываешь шаблон и передаешь в него все данные, потом сохраняешь под другим именем.

Всего записей: 171 | Зарегистр. 23-01-2003 | Отправлено: 16:23 15-06-2005
FighterZP

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OdesitVadim
 
точно! у меня определяет хэндл окна, но не определяет хэндл компонента....
хммм....
как быть?

Всего записей: 6 | Зарегистр. 14-06-2005 | Отправлено: 17:04 15-06-2005
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Значит имя класа указано неверно. Возьми Spy++ (кажеться так он называется, в дистрибутиве VC есть, даже устанавливать не надо) Там есть такая возможность с помощью курсора тыкнуть в нужное окно, а он те покажет всё подноготную.  
Если негде достать, то пошлю маленькую прогу, которая поможет (аналог Spy++, но достаточно обделённый)
Может быть маленькая пакость со стороны проги - если Edit не настоящий - тоесть рисуется програмно. тогда будет очь напряжно.

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 18:30 15-06-2005
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FighterZP
Для начала случайно едит не лежит на какой нить панели? Если да, то его родительский класс будет как раз эта панель.  

Цитата:
с помошью WINSIGN32 узнал что имя компонета - EDIT ......


Цитата:
Может быть маленькая пакость со стороны проги - если Edit не настоящий - тоесть рисуется програмно. тогда будет очь напряжно.

То есть компонент не рисуется программно.  

Цитата:
или даже можно следующим образом - по умолчанию при открытии формы, фокус ввода уже стоит на компоненте EDIT, и в буфере обмена  Винды у меня уже хранятся необходимые для пересылки данные,

Делай след. образом. Получай буфер обмена GetClipboardData и далее по списку или аналог из VCL, а потом делаешь окно с едитом активным SetForegroundWindow (если ось выше Вынь 9х то при помощи небольшого изменения кода, оно все равно выкидывается на передний план, а не мигает в панели задач) и потом посимвольно работаешь с текстом клипборда и для каждого символа делаешь keybd_event этим ты эмулируешь посылку в едит (так как там уже стоит фокус) символов как если бы они вводились с клавиатуры. Второй вариант, это без получения клипбоарда. Просто делаешь окно активын при помощи той же функции и при помощи keybd_event посылаешь туда CTRL+V. Примеры как это сделать уже разбирались. Только вот помню что посылался CTRL+F в контрол.
Кстати для того чтобы удобно было смотреть как называется контрол и где он лежит я юзаю плагин для тотал коммандера называемый Task Manager он по Ф3 на процессе показывает все его контролы и кто кому принадлежит. И их названия.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:59 16-06-2005
FighterZP

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt
 
мой EDIT действительно лежит на панельке на форме программы ....
значит сперва я определяю хэнд моего окна,
потом с помошью хэндла окна я определяю хэндл панельки
затем по хендлу панельки - хэндл EDITа
а затем туда посылаю данные .....
попробую .....
 
Пасиб на счет TASK MANAGERA в TOTAL COMMANDERе....
CAPTION - у моего EDIT нету
CLASS - EDIT
HANDLE - 00010410
 
 
Добавлено:
ВСЕ!!!!! ПОЛУЧИЛОСЬ!
 
сама проблема в том что обычно посылается сообщение по CAPTION компонента
но особенность EDIT компонентов - его отсутствие.
посему попробывал найти компонент по имени класса и по пустому CAPTION
 
 wHandle:=FindWindowEx(wHandle,0,'Edit','');  
 
компонент отлично находится и ему посылаются любые данные
 
удачи
 
всем спасибо за помощь

Всего записей: 6 | Зарегистр. 14-06-2005 | Отправлено: 09:00 16-06-2005
int23



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В D2005 переодически перестаёт работать сочетание Ctrl+C, Ctrl+V. Кто-нить сталкивался. А то запарился перезапускать IDE.....А у меня грузится она долго

Всего записей: 773 | Зарегистр. 16-08-2004 | Отправлено: 14:04 16-06-2005
MrZeRo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
int23
У меня установлены 3 апдейта, и такого не наблюдается.  
За апдейтами идти сюда: hXXp://forum.ru-board.com/topic.cgi?forum=35&bm=1&topic=0176&start=1360

Всего записей: 832 | Зарегистр. 30-01-2002 | Отправлено: 18:19 16-06-2005
Bol970



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравия желаю All.
 
такая проблема
нужно произвести действие после resize form
т.е. после того как я изменил размер и отпустил left button mouse
вопрос как его отловить?

Всего записей: 94 | Зарегистр. 05-10-2004 | Отправлено: 10:15 20-06-2005
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bol970
Смотри сообщение WM_SYSCOMMAND. Надо писать обработчик на него.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 10:30 20-06-2005
MICROPOM



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я хочу определить размер указанного диска. Число выдаётся фиг знает какое.
Т.е. не размер, а свободное место.
 
Делаю я так:
 
var
   X: Integer;
 
 
begin
...
   X:= DiskFree(0);
   MessageDlg('Свободно на текущем диске: '+ IntToStr(Х)+' байт', mtInformation, [mbOk], 0)
...
end;

Всего записей: 30 | Зарегистр. 23-11-2004 | Отправлено: 13:34 20-06-2005 | Исправлено: MICROPOM, 13:37 20-06-2005
int23



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MrZeRo  
У меня установлены 3 апдейта, и такого не наблюдается.  
 
У меня 3 апдейта. Получается так. Я выделяю в инспекторе объектов значение свойства. И пытаюсь его скопировать. Более того в меню Edit кнопки копировать и вставки становятся не активными. Неужеле нельзя скопировать значения свойств?

Всего записей: 773 | Зарегистр. 16-08-2004 | Отправлено: 14:40 20-06-2005
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi
ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru