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

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

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

ShIvADeSt (20-06-2007 07:33): http://forum.ru-board.com/topic.cgi?forum=33&topic=8529  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 103 104 105 106

   

VadimLou



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

Цитата:
переключаться между любыми формами не заботясь о создании следующей

в Elpack-е такого не видел...
Мож проще код приведёшм... полечим ...

Всего записей: 702 | Зарегистр. 22-07-2004 | Отправлено: 18:14 21-12-2006
VitaliM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VikLabel
Если я правильно понял, ты пытаешься уничтожить форму находясь в обработчике OnClick кнопки, принадлежащей уничтожаемой форме. В таком случае ошибки неизбежны.

Всего записей: 2184 | Зарегистр. 12-01-2005 | Отправлено: 18:53 21-12-2006
jicoff

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
clear2121
 
Более того, TcxSpreadSheetBook какой-то недоделанный. Например, нет встроенного меню, хотя можно было реализовать стандартные операции. Пока мне тоже не удалось найти заменитель самого Excel'я. Но работать из программы с OleObject'ом тоже не очень удобно.
 
VikLabel
 
Не совсем понятна задача, можно уточнить порядок создания и удаления форм.
 
Добавлено:
VitaliM
 
Удалить себя по своей кнопке тоже не проблема: вызываешь PostMessage(...), а там удаляешь, проблем не должно быть. Или еще того проще, конкретное сообщение WM_CLOSE.

Всего записей: 289 | Зарегистр. 03-03-2006 | Отправлено: 19:57 21-12-2006
Arvur



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
jicoff, VitaliM, VikLabel
Уважаемые, а по-моему метод Release - наиболее простой способ закрыть форму внутри обработчика
... или чего-то не понимаю?

Всего записей: 2111 | Зарегистр. 18-01-2002 | Отправлено: 20:26 21-12-2006
VitaliM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arvur
А я и не спорю с твоим замечанием.
Просто не имея достаточно опыта некоторые пытаются использовать метод Free или напрямую вызывают  Destroy.

Всего записей: 2184 | Зарегистр. 12-01-2005 | Отправлено: 20:44 21-12-2006
ORMADA



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2 VikLabel
что-то неравильно делаешь раз ошибка валятся
кусок кода в студию!

Всего записей: 144 | Зарегистр. 13-08-2003 | Отправлено: 06:37 22-12-2006
VikLabel

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть главная форма с панелью кнопок Form1, переключаюсь между формами по коду (у всех нужных кнопок панели одинак. код):

Код:
 
procedure TForm1.TBXItem1Click(Sender: TObject);
var
  NewClass: TFormClass;
  New: TForm;
begin
  LockWindowUpdate(Container.Handle);
  try
    case (Sender as TTBXItem).Tag of
      0: NewClass := TForm2;
      1: NewClass := TForm3;
      2: NewClass := TForm4;
      3: NewClass := TForm5;
    else
      NewClass := nil;
    end;
    if (Container.ControlCount = 0) or not (Container.Controls[0] is NewClass)
      then
    begin
      if Container.ControlCount > 0 then
        Container.Controls[0].Free;
      if Assigned(NewClass) then
      begin
        New := NewClass.Create(Self);
        New.Hide;
        New.BorderStyle := bsNone;
        New.Parent := Container;
        New.Align := alClient;
        New.Show;
      end;
    end;
  finally LockWindowUpdate(0);
  end;
end;
 

Всё работает нормально.
теперь например необходимо по кнопке принадлежащей Form2 (загруженной из главной формы) загрузить (закрыв Form2) Form4, из Form3 - Form5 ... любые комбинации.
Пытаюсь использовать тотже код:

Код:
 
procedure TForm2.SpTBXButton1Click(Sender: TObject);
var
  NewClass: TFormClass;
  New: TForm;
begin
  LockWindowUpdate(Form1.Container.Handle);
  try
    NewClass := TForm4;
    if (Form1.Container.ControlCount = 0) or not (Form1.Container.Controls[0] is
      NewClass) then
    begin
      if Form1.Container.ControlCount > 0 then
        Form1.Container.Controls[0].Free;
      if Assigned(NewClass) then
      begin
        New := NewClass.Create(Form1);
        New.Hide;
        New.BorderStyle := bsNone;
        New.Parent := Form1.Container;
        New.Align := alClient;
        New.Show;
      end;
    end;
  finally LockWindowUpdate(0);
  end;
end;
 

Form4 появляется, но тутже вываливается ошибка... по адресу... 7 нулей (кажись 7)
Формы загружаемые с панели и формы загружаемые из др. форм естественно разные.
Незнаю понятно ли, если что готов еще прояснять... СПАСИБО!
 
Чёт я замудрил, может можно проще? Посоветуйте!
 
из ElPack 5...
TElFormContainer
TElFormContainer allows specification of form arrays or HTML pages for use with TElFormDisplay and TElPageControl components This control simplifies reuse of certain form/HTML page arrays.
 
TElFormDisplay
This small but very useful component displays forms like a panel within the component. This is not only useful for faster loading of forms but also much more resource friendly than e.g. using a TNotebook. Besides forms are much easier reusable in other projects than pages of a TNoteBook or similar component. Different forms can be stored externally e.g. in TLMDFormContainer. This way simplifies reuse of certain form arrays (which can be mixed with HTML pages).
 
TElFormPageControl
This control provides all features of TLMDElPageControl, but similar to TLMDFormDisplay this control can display standard TForm descendants instead if internal stored pages. Such forms can be stored e.g. externally in TLMDFormContainer and thus shared among different controls.

Всего записей: 674 | Зарегистр. 05-03-2003 | Отправлено: 12:39 22-12-2006 | Исправлено: VikLabel, 13:07 22-12-2006
freedom83

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в обменнике есть halcyon  
два вопроса:  
1. THalcyonDataSet там присутствует?  
2. как устанавливать, нет файла с проектом?!

Всего записей: 100 | Зарегистр. 17-01-2006 | Отправлено: 13:49 22-12-2006
VitaliM



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

Цитата:
 if (Container.ControlCount = 0) or not (Container.Controls[0] is NewClass)  
 

Если я правильно понял, Container у тебя это TElFormDisplay а не TElFormContainer.
И с Container ты пытаешься работать как с обычным TWinControl не используя методы и свойства TElFormDisplay и TElFormContainer. В этом и кроется скорее всего проблема.  

Всего записей: 2184 | Зарегистр. 12-01-2005 | Отправлено: 15:09 22-12-2006
VikLabel

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не... левых компонентов не использую, Container это обычная Panel на главной форме!
Мой код можно скопировать и у себя проверить его работу (необходимы только "стандартные" формы, кнопки и панель)
Elpack привел для информации!

Всего записей: 674 | Зарегистр. 05-03-2003 | Отправлено: 15:50 22-12-2006 | Исправлено: VikLabel, 17:29 22-12-2006
VitaliM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VikLabel
 
Как уже говорил уважаемый Arvur, вместо метода Free надо использовать Release.
 

Код:
procedure TForm2.SpTBXButton1Click(Sender: TObject);  
var  
  NewClass: TFormClass;  
  New: TForm;  
begin  
............
............
      if Form1.Container.ControlCount > 0 then  
        TForm(Form1.Container.Controls[0]).Release;  
............
............
end;  

В этом случае AV не происходит.

Всего записей: 2184 | Зарегистр. 12-01-2005 | Отправлено: 17:55 22-12-2006
VikLabel

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VitaliM - СПАСИБО!  
Arvur
 
ВСЕМ СПАСИБО!

Всего записей: 674 | Зарегистр. 05-03-2003 | Отправлено: 20:44 22-12-2006
VitaliM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос ко всем. Кому-нибудь удалось поставить компоненты SynEditStudio 2006.11.14 5.0 в Delphi 6 или Delphi 7. У меня при попытке положить на форму SynEdit или SynMemo AV выскакивает. Если кто решил эту проблему, подскажите что делать.

Всего записей: 2184 | Зарегистр. 12-01-2005 | Отправлено: 12:04 23-12-2006
oan42



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VitaliM
У меня то же самое.
Разумнее всего подождать следующего релиза.

Всего записей: 488 | Зарегистр. 03-08-2004 | Отправлено: 21:54 23-12-2006
VitaliM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
oan42
Ну уж прям и не знаю, имеет ли смысл ждать следующего релиза.
У меня нормально работает вариант от 2006.07.22, а от 2006.08.06 уже не работает (не компилируется). При таких эктремальных изысканиях автора можно и недождаться. Еще плохо, что автор стандартные диалоги редактора (поиск, замен и т.д.) под себя затачивает, т.е. только на китайском языке, да и презентабельность этих диалогов разительно отличается от самого редактора, как будто их какой-то неумеха делал.

Всего записей: 2184 | Зарегистр. 12-01-2005 | Отправлено: 22:54 23-12-2006
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
посоветуйте аналог TExplorerDrop для BDS2006, желательно с сылками

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 11:20 24-12-2006
Sergey913

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте.
Помогите плз с Direct Mysql Objects компонентом для Баз данных.
Вот что делаю:
 
 
AllDB := MySQLClient.Query('SHOW DATABASES', True, OK);
 
 
    AllDB.First;
    For i:=0 to AllDB.RowsCount-2 do
    Begin
    if AllDB.LastRowRead then
    AllDB.Next
    else
    AllDB.Last;
 
    DBInfo := MySQLClient.Query('SHOW TABLE STATUS '+AllDB.FieldValue(0), True, OK2);
    DBInfo.First;
    Form1.RichEdit1.Lines.Add(DBInfo.FieldValueByName('Update_time'));
    end;
 
 
Но проблема в том, что не получается. Выдает мне ошибку и скидывает на процедуру  DBInfo.First; но не в моем коде, а на общую процедуру, которая описана в файлах модуля.
Что это такое, как побороть?

Всего записей: 60 | Зарегистр. 22-09-2006 | Отправлено: 16:13 24-12-2006
oan42



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VitaliM
Да, у китайских товарищей пока с качеством программирования туго.
Не забудьте с MemCheck-ом потестировать SynEdit Studio,
раньше там память лилась, сейчас не знаю, изменил этот фрагмент.  
 

Всего записей: 488 | Зарегистр. 03-08-2004 | Отправлено: 20:51 24-12-2006
YAPLLE



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Написал компоненты Zeos для FastReport 3.xx.  
Сделал всё, как написано в руководстве, также учитывая обновлённую регистрацию компонентов в скриптовой системе (http://fast-report.com/ru/forum/index.php?showtopic=3172&hl=ascript) , но почему то компоненты упорно не хотят появляться в скриптовой системе.  
Как устранить эту проблему?

Всего записей: 21 | Зарегистр. 25-11-2005 | Отправлено: 22:22 24-12-2006
VadimLou



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

Цитата:
MemCheck-ом

А есть ли MemCheck для 10-ки ?

Всего записей: 702 | Зарегистр. 22-07-2004 | Отправлено: 02:00 25-12-2006
   

Страницы: 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 103 104 105 106

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по компонентам для Delphi, C++ Builder 2
ShIvADeSt (20-06-2007 07:33): http://forum.ru-board.com/topic.cgi?forum=33&topic=8529


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru