Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Copy Paste текста с Tab в несколько TEdit / 11 сообщений из 11, страница 1 из 1
07.12.2018, 11:26
    #39744100
Valery_B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Copy Paste текста с Tab в несколько TEdit
Добрый день,

Есть текст, разделённый Tab (например - из Excel)
авторJohn <tab> Smith

На форме есть 2 контрола TEdit или аналог из DevExpress
Я хочу сделать так, что бы при попытке вставить текст в Edit1 вставлялся "John", а в Edit2 "Smith" автоматически.

Кто нибудь делал что нибудь подобное ?
...
Рейтинг: 0 / 0
07.12.2018, 11:59
    #39744138
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Copy Paste текста с Tab в несколько TEdit
07.12.2018 11:26, Valery_B пишет:
> Я хочу сделать так, что бы при попытке вставить текст в Edit1 вставлялся "John", а в Edit2 "Smith" автоматически.

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

тут программист нужен (С)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.12.2018, 12:00
    #39744140
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Copy Paste текста с Tab в несколько TEdit
Valery_B,

Возьми текст из буфера, пореж на строки по разделителю и вставляй, куда тебе там нужно.
...
Рейтинг: 0 / 0
07.12.2018, 12:12
    #39744159
Valery_B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Copy Paste текста с Tab в несколько TEdit
DarkMaster,

Как бы я его не резал, когда в пользователь нажмёт CTRL+V вставиться то, что в буфере.
...
Рейтинг: 0 / 0
07.12.2018, 12:16
    #39744165
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Copy Paste текста с Tab в несколько TEdit
07.12.2018 12:12, Valery_B пишет:

> Как бы я его не резал, когда в пользователь нажмёт CTRL+V вставиться то, что в буфере.

именно поэтому, тут нужен программист.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.12.2018, 12:20
    #39744172
Valery_B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Copy Paste текста с Tab в несколько TEdit
Мимопроходящийименно поэтому, тут нужен программист.

А ты программист ?
Можешь показать, что надо для этого написать ?
...
Рейтинг: 0 / 0
07.12.2018, 12:28
    #39744183
zinpub
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Copy Paste текста с Tab в несколько TEdit
Valery_BМимопроходящийименно поэтому, тут нужен программист.

А ты программист ?
Можешь показать, что надо для этого написать ?

Код: pascal
1.
Clipboard.AsText:= '';
...
Рейтинг: 0 / 0
07.12.2018, 12:29
    #39744184
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Copy Paste текста с Tab в несколько TEdit
07.12.2018 12:20, Valery_B пишет:

МП>> именно поэтому, тут нужен программист.
> А ты программист ?

нет

> Можешь показать, что надо для этого написать ?

нет

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.12.2018, 12:39
    #39744197
zinpub
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Copy Paste текста с Tab в несколько TEdit
А лучше так...

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
procedure TzEdit.WndProc(var Message: TMessage);
begin
  if Message.Msg = WM_PASTE then
  begin
    // Режем , вставляем итд Clipboard.AsText
  end
  else
    inherited;
...
Рейтинг: 0 / 0
07.12.2018, 13:20
    #39744240
Valery_B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Copy Paste текста с Tab в несколько TEdit
zinpub,

Наверное, надо включать эту механику при нажатом Shift и добавит интерфейс для контролов, что бы вставлялся не только в TEdit
А пока получилось так (Делфи7):
Код: pascal
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.
  TEdit=class(StdCtrls.TEdit)
  public
   function FindNextEdit(CurrentEdit:TEdit):TEdit;
   procedure PasteDelimetedText(List:TStringList);
   procedure PasteText;
   procedure WndProc(var Message: TMessage); override;
  end;

...

function TEdit.FindNextEdit(CurrentEdit: TEdit): TEdit;
var
 x:Integer;
begin
Result:=nil;
 If Assigned(CurrentEdit) and Assigned(CurrentEdit.Parent) then
  begin
   for x:=CurrentEdit.ComponentIndex to CurrentEdit.Parent.ComponentCount-1 do
     if (CurrentEdit.Parent.Components[x] is TEdit) and (CurrentEdit.Parent.Components[x]<>CurrentEdit) then
      begin
       Result:=CurrentEdit.Parent.Components[x] as TEdit;
       Exit;
      end;
  end;
end;

procedure TEdit.PasteDelimetedText(List: TStringList);
var
 X:Integer;
 AEdit:TEdit;
begin
if List.Count>0 then
 Text:=List[0];
 if List.Count>=2 then
  begin
   AEdit:=Self;
   for x:=1 to List.Count-1 do
    begin
     AEdit:=FindNextEdit(AEdit);
     if Assigned(AEdit) then
      AEdit.Text:=List[x];
    end;
  end;
end;

procedure TEdit.PasteText;
var
 List:TStringList;
begin
 List:=TStringList.Create;
 try
  List.Delimiter:=#8;
  List.DelimitedText:=ClipBoard.AsText;
  PasteDelimetedText(List);
 finally
  List.Free;
 end;

end;

procedure TEdit.WndProc(var Message: TMessage);
begin
if (Message.Msg = WM_PASTE) then
   PasteText
  else
    inherited;
end;

...
Рейтинг: 0 / 0
07.12.2018, 13:48
    #39744266
zinpub
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Copy Paste текста с Tab в несколько TEdit
Valery_B,

Можно и не плодить классы... а просто TEdit.WindowsProc:= ......
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Copy Paste текста с Tab в несколько TEdit / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]