| Типы программирования, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
Попытка вызвать Help завешивает NT4 работа с BYTE, Как читать структуру byte? Траблы со скролом Шутка Сетевая версия игры, Как сделать Создание DSN из программы, Пример кода (на примере MS EXCEL) Определение версии виндов, Пример кода Шифрование данных, Пример кода Build, Как считать build у программы ? get/setClipBoardData(CF_TEXT...) под NT, как избежать авто-перевода в unicode Как проверить зарегистрирован ли OCX?, Как проверить зарегистрирован ли OCX? Работа со звуковыми файлами. Типизированные константы Как вывести стандратный апплет "Свойства"?, Как вывести стандратный апплет Свойства Перемещение компонентов, Пример кода Выполнение приложения в командной строке..., Выполнение приложения в командной строке Програмно нажать SpeedButton, Пример кода Запись и чтение текстового файла., Запись и чтение текстового файла. Удаление ярлыка..., Удаление ярлыка с Рабочего стола... Считывание Wav данных., как уменьшить время считывания. Разделение строки... CRC32, Пример вычисления Сохранить цвет формы, Как сохранить цвет формы? Как корректно выйти из программы? Процедуры с локальной сетью Что такое Цвет? Как импортировать в Windovoz свой шрифт? Как Вы относитесь к курящим девушкам? Удаление файла после перезагрузки Windows., Удаление файла после перезагрузки Window Как перезагрузить компьютер при зажатом Shift`e ?, Как перезагрузить компьютер при зажатом Функции File Mapping, Использование File Mapping Без подсказок, похоже, мне не обойтись, Продолжение проблем с потоком Отчет в Word, Ускорение вывода в Word Проблема с дочерними окнами в MDI проекте, Проблема с MDI обновление рабочего стола Почему не работает CheckBox2 ?, Почему не работает CheckBox2 ? Как можно убрать HelpMenu из проекта? Delphi and PGP, Помогите расшифровать файл Async Pro +Модем Не знаю как назвать!!!, Динамическое создание кнопок на форме!!! Использование CheckBox..., Использование CheckBox... Вопрос? Чтение из .dll файлов .wave..., Чтение из .dll файлов .wave... И СНОВА SHIFT, комбинация LSHIFT+ENTER Почему не работает PlaySound(); ? как поместить картинку на рабочий стол Значок программы в диалоге., Значок программы в диалоге. Backup файла, Создание резервной копии Сообщения., Сообщения. Как заблокировать Правую кнопку мышки Как реализовать проверку расширения файлов?, нужно проверить *.ocx; *.dll; *.tlb; *.a Кнопки Как запустить EXE-файлы(DOS и Windows)., Запуск EXE -файлов. Реестр, Запись двоичного параметра Базы Данных, Как не использовать альяс из 16-ричного в строковый, Как перевести из 16-ричного в строковый Потоки А мне надо вставить image.gif на Delphi форму, Ничего не получается с Gif 'ом на форме Кнопки mbYes, mbNo и др. на русском языке..., Можно ли вывести кнопки на созданном окн VisualC Как программно зажать клавишу Shift и держать?, Как программно зажать клавишу Shift и де как сэмулировать нажатие клавиши ESC Почему NT не дружит с NetMasters Отправка приложений, отправка Имитация нажатия клавиш Ctrl-Esc QReport, TCompositeReport Слежение за нажатием клавиш., Как следить за клавой в фоне. Word в своей программе, Возможно ли разместить Word на panel освобождение динамических массивов блоктровка формы |
Платные хостинги Раскрутка сайта Книги по программированию Не знаю как назвать!!!, Динамическое создание кнопок на форме!!!
- Я делаю это так (сделано в Билдере - перевести проблем не составит, на примере SpeedButton)Сперва объявляешь глобальный массив кнопок (он у меня статический):Код TSpeedButton *SB[100];highlightSyntax('delphiNGVlZm','delphi');Код for (int i=0; i<N; i++)//Перебор кнопок { SB[i] = new TSpeedButton((Classes::TComponent*)Form1); SB[i]->Left=3; //Настраиваем SB[i]->Top=j*24+3; //различные SB[i]->Width=192; //свойства SB[i]->Height=24; //кнопок SB[i]->OnClick = sbClick; //обработчики событий... SB[i]->OnMouseMove = sbMouseMove; SB[i]->OnMouseDown = sbMouseDown; SB[i]->Name="SB"+"q"+IntToStr(i);//ну и так далее по своему желанию } } }highlightSyntax('delphiJlYjQ=','delphi');На скорую руку подредактировал немного свой исходник под конкретный пример, может что и упустил... - Ну, под Дельфю, это все-таки по другому. Там переменная типа класс есть уже указатель(да и память по другому для них выделяется):var Butt:TButton;begin Butt:=TButon.Create(Self) Butt.Parent:=self;end; - Ага и намного удобнее и понятнее. - Цитата Ага и намного удобнее и понятнее. Сразу двоим предыдущим ораторам вопрос... Найдите принципиальные отличия в этих 2х кусках кода Что тут по другому и где понятнее... Чур синтаксис не трогать (считать что begin и фигурная скобка это одно и тоже и тп)Код const N=5;type TForm1 = class(TForm) Button1 : TButton; procedure Button1Click(Sender: TObject); private SB : array[0..N-1] of TButton; procedure ButtonNewClick(Sender: TObject); end;.......procedure TForm1.Button1Click(Sender: TObject);var i : integer;begin for i:=0 to N-1 do begin SB[i] := TButton.Create(Self); SB[i].Left:=3; //Настраиваем SB[i].Top:=i*24+3; //различные SB[i].Width:=192; //свойства SB[i].Height:=24; //кнопок SB[i].OnClick := ButtonNewClick; //обработчики событий... SB[i].Parent := Self; endend;highlightSyntax('delphikYmY1O','delphi');Код const N = 5;class TForm1 : public TForm{published: // IDE-managed Components TButton *Button1; void fastcall Button1Click(TObject *Sender); void fastcall NewButtonClik(TObject* Sender);public: // User declarations fastcall TForm1(TComponent* Owner); TButton *SB[N];};void fastcall TForm1::Button1Click(TObject *Sender){ for (int i=0; i<N; i++) { SB[i] = new TButton(this); SB[i]->Left = 3; //Настраиваем SB[i]->Top = i*24+3; //различные SB[i]->Width = 192; //свойства SB[i]->Height = 24; //кнопок SB[i]->OnClick = NewButtonClik; //обработчики событий... SB[i]->Parent = this; }}highlightSyntax('delphihMmFjYW','delphi');Сразу скажу (чтобы меня не поняли превратно) что насчет "переменная типа класс есть уже указатель" ничего возразить нельзя. А вот насчет памяти мне несколько не понятно. Поясните плиз, если можно, для развития общей эрудиции. Опять-таки чтобы не поняли превратно - тут я уже без сарказма, в самом деле в чем принципиальная разница в данном конкретном случае?PS форум тут двойные подчеркивания в BuilderC++ коде кушает вместе со строками.... Несколько раз переделывал сообщение прежде чем понял в чем дело - Hmmm.... Nu ladno, ti prav... - Поясняю. Во-первых, то что переменная класса указатель - это уже отличие и совсем не синтаксическое. Во-вторых, использование класс-функции (типа конструктора Create) это тоже другая вещь - в Buildere, их вроде нет(хотя не буду утверждать, в С++ их нет,а Builder я не знаю хорошо). Оператор new это совсем не то, что TClass.Create, хотя в этом случае(но далеко не ао всех) они выполняют одну и ту же роль. Далее, в Delphi я не могу написать:var But:TButton;begin But.Caption='B';end;а в С++ Builder могу - это следует из сказанного выше.То есть я не говорю, как там выделяется память на машинном уровне - нас это не так заботит. Однако управление ей в программе средствами языка другое. По этому я и сказал, что по другому.Цитата Найдите принципиальные отличия в этих 2х кусках кода Такой фигней страдать не будем. В программе "Hello Word" всегда можно сказать, что принципиальных отличий нет, однако записывается по другому. |