Как можно в Delphi 6 динамически(во время выполнения) создавать на форме новые контролы? Т.е. есть у меня например memEdit:TMemo в качестве эталлона и мне надо накопировать ещё штук десять таких же. Я не понимаю: во-первых, как это сделать, и ,во-вторых, как после этого быть с событиями от полученных контролов.
Добрый день, Иван! var MyEdit: TEdit; begin MyEdit:=TEdit.Create(MyForm); MyEdit.Name:='MyEdit'; MyEdit.Text:='MyText'; MyEdit.Visible:=true; MyEdit.OnChange:=MyOnChange; end; Ответ отправлен: 22.06.2004, 09:36 Отправитель: n0name Отвечает Boriss
Добрый день, Иван! В приложении смотри
Приложение: Ответ отправлен: 24.06.2004, 14:36 Отправитель: Boriss Отвечает sir henry
Приветствую Вас, Иван! 1) Делаете тип (класс) с нужными Вам свойствами, а потом на его основе создаете свои компоненты. Например назвали Вы его TmemEdit: var memEdit1: TmemEdit; .... memEdit1.Create(TmemEdit); или так var arOfmemEdit: array of TmemEdit; {динамический массив} ... SetLength(arOfmemEdit, 40); {Создаете 40 компонентов :))} For i:=0 to 39 do arOfmemEdit[i].Create(TmemEdit); :)) 2) По поводу событий. Что-то я не понял Вашего вопроса. Ну есть набор событий у компонента, ну присвоили этим событиям нужные, написаные Вами, процедуры и все. Ответ отправлен: 22.06.2004, 11:58 Отправитель: sir henry
Вопрос № 1624
Всем не хворать!!! После сноса и последующей установки Delphi5 наглухо пропали все панели. При запуске появляется только форма и юнит. В чём дело?
Приветствую Вас, BlooDHawk! Я вижу два выхода из этой ситуации: 1) В дистрибутиве Delphi5 есть опция Resigtry setup (no files are copied) - кажется так. При установке указываешь ту папку, в которой у тебя Delphi лежит и ставишь этот флаг - восттановление займет не более 30 секунд. 2) Регистрируешь все BPL пакеты ручками через Component->Install Packages
Ответ отправлен: 22.06.2004, 09:36 Отправитель: Snowm@n Отвечает THE_PRO
Доброе время суток, BlooDHawk! Включи их через меню View Ответ отправлен: 22.06.2004, 09:42 Отправитель: THE_PRO Отвечает sir henry
Доброе время суток, BlooDHawk! А как там дела с вирусами? Шутка :)) Вы себе явно реестр испортили. Надо удалить Дельфи опять, почистить реестр прогой типа RegOrganizer и заново поставить. Кстати, в SP2 уделено серьезное внимание проблемам безопасности системы, так что не исключено, что Ваша Дельфя была признана вирусом и успешно вылечена и пресечена в ее деструктивной деятельности :))))). Ответ отправлен: 22.06.2004, 11:49 Отправитель: sir henry
Вопрос № 1625
Как в Delphi послать управляющий сигнал по шине USB на реле
Приветствую Вас, Ingector! Не знаю Вашего уровня, поэтому вот например, статьи о сем: http://www.winsov.com/hard067.php http://www.winsov.com/hard067-2.php http://www.winsov.ru/hard084.php Ответ отправлен: 24.06.2004, 14:59 Отправитель: Boriss Отвечает Andy
Добрый день, Ingector! SendSignalOverUSBOnRelay(Signal) Скажу по-секрету: Delphi к USB не имеет ни малейшего отношения... Спроси у Google про USB. Ответ отправлен: 23.06.2004, 04:28 Отправитель: Andy Отвечает sir henry
Добрый день, Ingector! У вас должна быть таблица управляющих сигналов для Вашего реле. Ведь даже для разных принтеров, которые подключаются через один и тот же параллельный порт, управляющие сигналы разные :). Ответ отправлен: 23.06.2004, 05:01 Отправитель: sir henry
Вопрос № 1626
Здравствуйте, эксперты! У меня есть программа - проект. И есть у меня вопрос. Я думаю выложить исходный код на всеобщее обозрение... но мне кажется он нафиг никому не нужен будет и никто не будет разбираться в моих писульках... А ведь хочется, чтобы кто-то помог оптимизировать, сделать новые дополнения, но я не знаю как встраивать дополения, присланные людьми; как организовавывать работу группы людей....
Я видел разные маленькие открытые проекты. Исходники программы открывал чел..... никто ничего не прислал.... просто берут и ничего не отдают взамен..... Вы попросите дать ссылку, но мне не хочется светится... :(( Я понимаю, что ничего нельзя сказать без вида самого проекта.... но хотя бы на другие вопросы ответте пожалуйста....
Ответ отправлен: 23.06.2004, 08:45 Отправитель: THE_PRO Отвечает Boriss
Приветствую Вас, Armondo! Ну Вы и перемудрили с этимим тайнами мадридского двора .. Не хотите делиться - не надо. Никто и попросит ничего взаимен А организации работы в коллективе - это наука, даже книги об этом пишут. Есть у меня ссылки, но не скажу - а то возьмете "просто" :)) На самом деле - вопрос-то сформулируйте
Ответ отправлен: 24.06.2004, 15:31 Отправитель: Boriss Отвечает sir henry
Доброе время суток, Armondo! Во-первых, в Вашем письме нет ни одного вопроса, поэтому что Вы имеете в виду под "но хотя бы на другие вопросы ответте пожалуйста...." не совсем понятно :). Во-вторых, чтобы начать совместный прект, нужно для начала организовать группу единомышленников, заинтересованых как в разработке, так и в эксплуатации программы, которая будет результатом Вашего проекта. В третьих, выражения типа " Я думаю выложить исходный код на всеобщее обозрение..." и "но мне не хочется светится..." абсолютно несовместимы друг с другом. Если Вы хотите работать в стиле Open Source, то просто выкладываете исходники без всяких условий для того, чтобы люди могли СКАЧИВАТЬ Ваш прект и использовать для своих целей. И если уж Вы ждете от них какие-то дополнения или просто замечания, нужно написать об этом в явном виде и дать адрес,
куда их направлять. У Вас получается по известной поговорке "Хочется и рыбку съесть и ..." :)). В общем для начала решите, либо Вы разрабатываете открытый прект либо закрытый, тогда все остальные проблемы будут решаться исходя из этой первоначальной предпосылки. Ответ отправлен: 23.06.2004, 05:12 Отправитель: sir henry
Вопрос № 1627
Доброе время суток уважаимые! В старом добром паскале в настройках компилятора можно было отключить всевозможные проверки, которые вставляет компилятор в ЕХЕ файл (проверки на существование файлов, на переполнение переменых, ....). Скажыте пожалуста как мне отключить эту всю штуку в Delphi, что б уменшыть размер файлов и увеличить быстродействие
Добрый день, ol! Попробуй нажать Ctrl+O+O и сам догадаешься :) Ответ отправлен: 24.06.2004, 14:47 Отправитель: Snowm@n Отвечает Boriss
Приветствую Вас, ol! И еще: KOL - кодоэкономичная библиотека компонентов http://www.delphimaster.ru/articles/kol.html Ответ отправлен: 24.06.2004, 15:36 Отправитель: Boriss Отвечает sir henry
Здравствуйте, ol! В старом добром Паскале никогда не было у компилятора проверки на существование файлов. Видимо Вы имели в виду что-то другое, но неправильно выразились :). Настройка опций компилятора в Дельфи осуществляется через меню "Project->Options->Compiler", однако в отеношении размера программ это Вам совершенно не поможет, т.к. большой размер программы в Дельфи обуславливается громадным размером кода VCL, который компилятор впихивает в программу. Для примера, простое приложение, типа @Hello world", написаное в Дельфи для консоли, занимает 8 килобайт. Тоже самое приложение, написаное с применением VCL, т.е. с формой и лэйблом на форме, загонит Вас в дикую кручину (не менше 100 кБ, а скорее всего больше :)). Для того чтобы радикально уменьшить размер программ, написаных на Дельфи, Вам нужно либо писать консольные программы (поверьте,
во многих случаях всевозможные окошки и кнпочки выглядят нелепо, да и для Дельфи можно скачать модуль CRT, как было в Паскале и малевать окошки с кнопочками в текстовом виде), либо писать на чистом WinAPI, если уж без окошек никак не обойтись, либо скачать с сайта библиотеку KOL и работать только через нее. В двух последних случаях, размер программ с графическим интерфейсом можно уменьшить в 10...100 раз. Ответ отправлен: 23.06.2004, 10:49 Отправитель: sir henry
Вопрос № 1628
Здравствуйте, уважаемые эксперты! Ответьте, пожалуйста, на следующий вопрос. Никак не могу считать данные о загруженности процессора из реестра (HKEY_DYN_DATAPerfStatsStatDataKERNELCPUusage). Выдается ошибка открытия ключа реестра, как будто его не существует. (Использовал также предварительное открытие ключа 'PerfStatsStartStatKERNELCPUusage'). С уважением, Jeka.
Здравствуйте, Jeka! А как Вы открываете? У меня не ХР, но такого ключа даже в справочниках по ХР не нашел. Точно он такой? Ответ отправлен: 24.06.2004, 15:41 Отправитель: Boriss Отвечает sir henry
Приветствую Вас, Jeka! И не удивительно, что выдается ошибка :)). Ни в ХР, ни в W2kS, ни в W2003, я такого ключа (HKEY_DYN_DATA) не нашел. Не могли бы Вы описать ситуацию поподробнее и дать ссылки, где Вы узнали про этот ключ? Ответ отправлен: 24.06.2004, 05:47 Отправитель: sir henry
Вопрос № 1630
Каким образом можно перенести данные с нескольких StringGrid в Word, на один лист
Приветствую Вас, Georg! Создать в Word'e таблицы и переносить в них данные поячеисто. На сайте "Королевство Дельфи" есть статейки, про Word вообще и про таблицы в Word'e в частности, например такая "MS Word вместо QReport". http://www.delphikingdom.ru/ Ответ отправлен: 24.06.2004, 06:49 Отправитель: sir henry Отвечает Boriss
Приветствую Вас, Georg! Ну и ессно, QuickReport - есть два приммена Quickrpt в Demos Ответ отправлен: 24.06.2004, 12:06 Отправитель: Boriss
Вопрос № 1631
Доброе время суток! Подскажите как из DELPHI запустить другую прогу например виндовый БЛОКНОТ. Заранее спасибо. С уважением Антон.
Доброе время суток, антон! 1.ShellExecute 2. ShellExecuteEx 3. CreateProcess все Win32 Api Ответ отправлен: 24.06.2004, 09:37 Отправитель: vitya Отвечает CrackLab
Доброе время суток, антон! Смотри функции ShellExecute, CreateProcess, WinExec, может быть еще spawn. Ответ отправлен: 24.06.2004, 18:45 Отправитель: CrackLab Отвечает Snowm@n
Добрый день, антон! WinExec('NOTEPAD.EXE',SW_NORMAL); Ответ отправлен: 24.06.2004, 14:31 Отправитель: Snowm@n Отвечает sir henry
Ответ отправлен: 24.06.2004, 09:44 Отправитель: sir henry Отвечает n0name
Доброе время суток, антон! WinExec SellExecute из ShellAPI CreateProcess Ответ отправлен: 24.06.2004, 15:18 Отправитель: n0name Отвечает Boriss
Здравствуйте, антон! 1) простейшее: WinExec('notepad.exe',SW_SHOW); 2) на самом деле это трансформируется в CreateProcess - он дает больший контроль 3) можно по расширению зарегистрированному ShellEXecute(Application.Handle, 'open', 'DelphiHelp.txt', nil, nil, sw_show) Ответ отправлен: 24.06.2004, 10:22 Отправитель: Boriss
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.