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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2007, 14:28   #31
Nez
Пользователь
 
Аватар для Nez
 
Регистрация: 15.01.2007
Сообщений: 72
По умолчанию

Квэнди, большое спасибо ещё раз, сейчас попробую...

Парни... Я вас очень прошу.. посмотрите.. ничего не могу понять в чём ошибка... суть в том, что в Memo3 в каждой строчке через пробел содержится 4 слова через пробел, их надо скопировать в Edit1,2,3 и 4... И если возле какого-то слова стоит "!", то номер этого слова надо отметить в RadioGroup... Всё просто, но! Вот код:

procedure TForm2.Memo1Click(Sender: TObject); {Когда в Memo1 нажимаешь на строчку}
var
s,t:string;
i,k:integer;
begin

with (Sender as TMemo) do Line := Perform(EM_LINEFROMCHAR, SelStart, 0); {Определяем строчку, на которую нажали}

s:=Memo3.Lines.Strings[Line]; {создаём переменную с соответствующей строкой в Memo3}
For i:=1 to 3 do begin
If Copy(s,1,1)='!' then begin {вот как раз смотрим "!"}
RadioGroup1.ItemIndex:=(i-1); {если ДА, то ставим точку в RadioGroup}
t:=Copy(s,2,1000); {вырезаем этот "!"}
s:=t;
end;
If i=1 then Edit1.text:=Copy(s,1,Pos(s,' ')-1); //Записываем
If i=2 then Edit2.text:=Copy(s,1,Pos(s,' ')-1); //Слово в нужное
If i=3 then Edit3.text:=Copy(s,1,Pos(s,' ')-1); //поле
t:=Copy(s,Pos(s,' ')+1,1000); //Вырезаем из строки
s:=t; //Записанное слово вместе с пробелом
end;
If Copy(s,1,1)='!' then begin //ну и последнее
RadioGroup1.ItemIndex:=3; //слово обрабатываю
Edit4.Text:=Copy(s,2,1000); //отдельно, чтобы
end else Edit4.text:=s; //удобнее было

end;


ВСЁ! Но в итоге получается, что либо вообще ничего не записывается, либо вся строка вместе с пробелами и всем-всем записывается в последнюю строку... В чём проблема?

Квэнди, и вот ещё, твой код, который ты привёл:

DragQueryFile(THandle(Msg.WParam), 0, FileName, SizeOf(Filename));
{
Здесь делаешь все что тебе необходимо с файлом
}
DragFinish(THandle(Msg.WParam));

Delphi подчеркивает DragQueryFile и DragFinish и соответственно не запускается.... где это надо прописывать? Или может там где-то необходим With ... Do ..

Спасибо.

Последний раз редактировалось zetrix; 27.01.2007 в 19:15.
Nez вне форума Ответить с цитированием
Старый 27.01.2007, 15:28   #32
Speeker
Форумчанин
 
Аватар для Speeker
 
Регистрация: 01.12.2006
Сообщений: 241
По умолчанию

Код:
If i=1 then Edit1.text:=Copy(s,1,Pos(s,' ')-1); //Записываем
If i=2 then Edit2.text:=Copy(s,1,Pos(s,' ')-1); //Слово в нужное
If i=3 then Edit3.text:=Copy(s,1,Pos(s,' ')-1); //поле
Если не ошибаюсь, между апострофами должны быть пробелы
Програмисты - единственные люди, которым платят за исправления их же ошибок
Speeker вне форума Ответить с цитированием
Старый 27.01.2007, 15:33   #33
Nez
Пользователь
 
Аватар для Nez
 
Регистрация: 15.01.2007
Сообщений: 72
По умолчанию

Между ними и есть пробелы... ну ' '.... не черточку внизу же рисовать

На сто раз просмотрел ничего не получается....
Nez вне форума Ответить с цитированием
Старый 27.01.2007, 19:20   #34
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

ТАК, всем слушать:
Все посты по архиватору были перемещены сюда: http://www.programmersforum.ru/showthread.php?t=1532

Весь флуд, оффтоп - удалён, кто испортит мой труд (чистку), того испорчу я!
zetrix вне форума Ответить с цитированием
Старый 28.01.2007, 03:54   #35
Nez
Пользователь
 
Аватар для Nez
 
Регистрация: 15.01.2007
Сообщений: 72
По умолчанию

Пожалуйста ответте на моё сообщение (про непонятки с неработающим кодом и проблемой с "перетаскиванием"). А все новые вопросы буду писать в новых темах.

Спасибо.
Nez вне форума Ответить с цитированием
Старый 28.01.2007, 21:51   #36
Speeker
Форумчанин
 
Аватар для Speeker
 
Регистрация: 01.12.2006
Сообщений: 241
По умолчанию

почему то не работает именно Pos. сам пробовал... всегда ноль выдает. Разбивай на слова через If
Разберусь что и почему - напишу

If i=1 then Edit1.text:=Copy(s,1,Pos(' ',s)-1);
If i=2 then Edit2.text:=Copy(s,1,Pos(' ',s)-1);
If i=3 then Edit3.text:=Copy(s,1,Pos(' ',s)-1);// просто в Pos перепутаны местами аргументы
Програмисты - единственные люди, которым платят за исправления их же ошибок

Последний раз редактировалось zetrix; 29.01.2007 в 13:14.
Speeker вне форума Ответить с цитированием
Старый 29.01.2007, 02:59   #37
Nez
Пользователь
 
Аватар для Nez
 
Регистрация: 15.01.2007
Сообщений: 72
По умолчанию

Вот же глупость то какая! Спасибо!

А что там с пертаскиванием? Квэнди, ты где? Неполучается ничего, читай предидущие посты...

Speeker, только теперь знаешь что происходит? В Edit1, Edit2, Edit3 записывается первое слово, а в Edit4 все слова через пробел... ну то есть ак-будто ничего и не резали...

Последний раз редактировалось zetrix; 29.01.2007 в 13:14.
Nez вне форума Ответить с цитированием
Старый 29.01.2007, 09:54   #38
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
По умолчанию

Цитата:
Сообщение от Nez Посмотреть сообщение
Speeker, только теперь знаешь что происходит? В Edit1, Edit2, Edit3 записывается первое слово, а в Edit4 все слова через пробел... ну то есть ак-будто ничего и не резали...
После каждой из первых трех строчек напиши

Код:
Delete(s,1,Pos(' ',s));
ICQ: 5311314
[SIGPIC][/SIGPIC]
AVer вне форума Ответить с цитированием
Старый 29.01.2007, 14:19   #39
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Добавь модуль shellapi в uses
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 10.02.2007, 08:47   #40
Nez
Пользователь
 
Аватар для Nez
 
Регистрация: 15.01.2007
Сообщений: 72
По умолчанию

Слушайте, ну вот никак не получается у меня реализовать перетаскивание файла на форму...... Вот кусок кода программы:

Код:
....
....
  protected
  procedure WMDropFiles (var Msg: TMessage); message wm_DropFiles;

  private
         { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;
  Line: integer;

implementation

{$R *.dfm}


procedure TForm2.WMDropFiles(var Msg: TMessage);
var
FileName: array[0..256] of char;
begin
DragQueryFile(THandle(Msg.WParam), 0, FileName, SizeOf(Filename));
{
Здесь делаешь все что тебе необходимо с файлом
}
DragFinish(THandle(Msg.WParam));
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);

...
...
Файл не перетаскивается... И можно как-нибудь сделать, чтобы перетаскивался файл только с одним расширением, чтобы другие пога даже гне заморачивалась обрабатывать..... Посмотрите, может чего не хватает.. И ещё: Я так понимаю, что файл будет перетаскиваться на всю форму... А можно сделать, чтобы он перетаскивался конкретно на Memo1?

Спасибо. Ответте, пожалуйста как можно скорее....
Nez вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько вопросов Зубоскалик Общие вопросы Delphi 14 20.11.2008 14:28
Несколько вопросов по VBA Graveyard Microsoft Office Excel 6 27.08.2008 08:50
Код и несколько вопросов artemavd Общие вопросы Delphi 18 20.08.2008 10:51
несколько вопросов по RichEdit TaTT DoGG Компоненты Delphi 4 27.05.2008 10:57
Несколько Вопросов Дорст Общие вопросы Delphi 3 12.11.2007 09:18