Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SynEdit1.Show 
:(
    Опции темы
gavr
Дата 1.4.2005, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 17.10.2004

Репутация: нет
Всего: нет



Помогите плззз!
Использую следующий код:
Код

begin
Text:=ReadFromFile(FileName);
 for i := 0 to Screen.FormCount - 1 do
   if Screen.Forms[i].Active then
   begin
    (Screen.Forms[i] as TMDIChild).SynEdit1.Seltext:=Text;
    (Screen.Forms[i] as TMDIChild).SynEdit1.Show;
     break;
 end;

Текст в SynEdit1 вставляется но курсор не появляется и более того SynEdit никак не реагирует на клики мышкой
Кнопка для этой процедуры находится в фрейме на главной форме , а сам SynEdit на дочерней форме MDI Может быть ошибка в этом? smile

Это сообщение отредактировал(а) gavr - 1.4.2005, 19:12
PM MAIL   Вверх
Vit
Дата 1.4.2005, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Код

(Screen.Forms[i] as TMDIChild).SynEdit1.SetFocus;



Покажи процедуру обработки событий?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
gavr
Дата 1.4.2005, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 17.10.2004

Репутация: нет
Всего: нет



И... Ничего
Даже мышкой щелкаю по Syn а курсор не появляется и сделать это можно только если выбрать какую нить кнопку нажать а уж потом кликать по Syn
Код

begin
  if not ShellTreeView1.Selected.HasChildren then
  begin
//вызывается та процедура что выше
  end;

PM MAIL   Вверх
Vit
Дата 1.4.2005, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Вот эта строчка для чего нужна?

(Screen.Forms[i] as TMDIChild).SynEdit1.Show;



--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
gavr
Дата 1.4.2005, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 17.10.2004

Репутация: нет
Всего: нет



Ну незнаю просто хочу добиться чтобы фокукс передавался в SynEdit после вставки в него текста
Вот все
Код

// À âîò òàê ìîæíî ïðî÷èòàòü âåñü ôàéë â ñòðîêó:
Function ReadFromFile(FileName:string):string;
begin
 With TStringList.create do
 try
 LoadFromFile(FileName);
 result:=text;
 finally
 Free;
 end;
end;
//îòêðûòèå âûáðàííîãî ôàéëà è çàïèñü íà ôîðìó
procedure TFrame1.PasteText1Execute(const FileName: string);
var
 i: Byte;
 Text: string;
begin
Text:=ReadFromFile(FileName);
 for i := 0 to Screen.FormCount - 1 do
   if Screen.Forms[i].Active then
   begin
    (Screen.Forms[i] as TMDIChild).SynEdit1.Seltext:=Text;
//    (Screen.Forms[i] as TMDIChild).SynEdit1.SetFocus;
     break;
 end;
end;

//ôóíêöèÿ íàõîæäåíèÿ ïóòè ê âûáðàííîìó ôàéëó
function SrNodeTree(pTreeNode: TTreeNode; var sRuta: string): string;
begin
 sRuta := pTreeNode.Text + '\' + sRuta;
 if pTreeNode.Level = 0 then Result := sRuta
 else
   Result := SrNodeTree(pTreeNode.Parent, sRuta);
end;

//âûáîð ôàéëà èç Treeview
procedure TFrame1.ShowTreeview1Execute(Sender: TObject);
var
  sPath,S,Res: string;
  N_1:Integer;
begin
  if not ShellTreeView1.Selected.HasChildren then
  begin
    S:=SrNodeTree(ShellTreeView1.Selected, sPath);
    N_1:=Pos('\',S);  //íîìåð îòê ñêîáêè
    Res:=Copy(S,N_1+1,Length(S)); // ðåçóëüòàò
    Res:=ExtractFilePath(Paramstr(0))+'Snippets\'+Res+'example.gavr';
    Res:=ExtractFileDir(Res)+'.csn';
    PasteText1Execute(res);
  end;
end;

Есть TreeView В нем папки и файлы при нажатии на файл его содержимое вставляется в SynEdit
Вот собственно все

Это сообщение отредактировал(а) gavr - 1.4.2005, 19:54
PM MAIL   Вверх
Vit
Дата 1.4.2005, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Show - это для формы, для компонента используй SetFocus


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
gavr
Дата 1.4.2005, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 17.10.2004

Репутация: нет
Всего: нет



Я уже выше писал что это не помогает:
нельзя установить курсор на SynEdit
нельзя напечатать какой-то текст
максимум это можно текст выделить и прокрутить но не редактировать
в общем фокус остается на treeview
может быть после первого оператора нужно поставить какую нибудь паузу несколько милисекунд только как?

Это сообщение отредактировал(а) gavr - 1.4.2005, 20:59
PM MAIL   Вверх
Vit
Дата 1.4.2005, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Чего-то странное... Весь проект не можешь выложить чтоб я компильнул и посмотрел чего происходит?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
gavr
Дата 1.4.2005, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 17.10.2004

Репутация: нет
Всего: нет



Неужели все так сложно?
Цитата
Весь проект не можешь выложить

а куда?
Уффф три дня мучился. Оказывается эфект дает не передача фокуса самому SynEdit а TabSheet на котором тот находится
Код

begin
Text:=ReadFromFile(FileName);
 for i := 0 to Screen.FormCount - 1 do
   if Screen.Forms[i].Active then
   begin
    (Screen.Forms[i] as TMDIChild).SynEdit1.Seltext:=Text;
     break;
   end;
(Screen.Forms[i] as TMDIChild).TabSheet1.SetFocus;
end;

В общем просто невнимательность smile спасиба Vit что попытался помоч

Это сообщение отредактировал(а) gavr - 2.4.2005, 10:50
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0493 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.