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

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

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

ShIvADeSt (22-03-2007 02:18): http://forum.ru-board.com/topic.cgi?forum=33&topic=8142  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение темы http://forum.ru-board.com/topic.cgi?forum=33&topic=3647&start=2020#lt
Внимание, все большие куски кода (более 5 строк) оформляем в тег [more] дабы уменьшить размер поста.

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:52 20-04-2006 | Исправлено: ShIvADeSt, 02:02 30-06-2006
dmit000



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RomanTim
 
Спасибо.
 
Только я не понял где и как  в юните 1 объявлять
написанную тобой процедуру FillComboBox
 
Ответь пожалуйсто

Всего записей: 483 | Зарегистр. 07-06-2004 | Отправлено: 17:22 01-03-2007
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
dmit000
А ее не надо объявлять - добавляешь unit2 в uses в unit1:
 
unit unit1;
interface
  uses ....., unit2;
 
и в результате в первом юните видно все, что объявлено в interface-секции второго

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 19:33 01-03-2007
dmit000



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RomanTim
 
Всё сделал как ты сказал. не работает. ругается в юните2
 
на строки:
procedure FillComboBox(CB: TComboBox, Txt: string); (две строки)
 
пише на обе строки:
[Error] Unit2.pas(8): ';', ')' or '=' expected but ',' found
 
 
Добавлено:
RomanTim
 
Всё заработала прога. Метод тыка помог (TComboBox;)
 
RomanTim спасибо.
 
Добавлено:
Создал на форме кнопку Button1 и PopupMenu1
При нажатии на правую кнопку мышки на кнопке Button1 - появится этот PopupMenu1.  
 
Вопрос:
как сделать так чтобы при нажатии на кнопку Button2 левой кнопкой мышки появлялся PopupMenu1?

Всего записей: 483 | Зарегистр. 07-06-2004 | Отправлено: 20:25 01-03-2007 | Исправлено: dmit000, 20:26 01-03-2007
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
dmit000
С процедурой действительно ошибся - разделитель параметров это ;
 
С менюшкой по левой кнопке
procedure TForm1.Button1Click(Sender: TObject);
var
 p: TPoint;
begin
  p := Mouse.CursorPos;
  PopupMenu1.Popup(p.X, p.Y);
end;

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 23:44 01-03-2007
dmit000



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RomanTim
 
Спасибо. Я бы никогда так не придумал.
 
А вот скажи пожалуйсто. Процедуру FillComboBox можно написать без параметров?

Всего записей: 483 | Зарегистр. 07-06-2004 | Отправлено: 06:25 02-03-2007
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
dmit000
Написать то можно... если во втором юните сослаться на первый (uses в implementation) и обращаться Form1.ComboBoxN.  
Только все это ведет исключительно к корявости. Выносить в процедуру, да еще и в другой модуль, код, который потом обращается к определенным объектам первого модуля, да еще и вызывается в одном единственном месте - глупо.  
Если это лаба в курсе по паскалю еще хоть как-то можно понять, да и то лучше сразу учиться разумно писать, а если реальный проект... чуть вырастет и все станет совсем запутанно и нечитаемо

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 08:00 02-03-2007
xy



ХУдератор
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
murkovich

Цитата:
Но в итоге, скорее всего, как среда разработки 98 отпадает сама по себе, а как целевая среда все-таки остается. Возможно, при соблюдении некоторых условий по используемым компонентам/функциям.

согласен, но клиент всегда прав
именно поэтому мне нравится идея делфи и обещанный простой переход на .Нет.. т.е. мы ведем проект с пом. современных разработок от Борланда (Кодегира) и когда ХР будет примерно в таком же положении как сейчас 98-й сможем довольно просто перейти на .Нет
 
RomanTim

Цитата:
1000 строк - это далеко не критично для объема одного юнита

поддерживаю.. имею несколько юнитов по 2-3 тысячи в проекте с общим количиством ккомпилируемых строк - до 250к

----------
Счастливые мысли приводят к счастливой клеточной биохимии

Всего записей: 10530 | Зарегистр. 28-05-2003 | Отправлено: 10:25 02-03-2007
dmit000



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RomanTim
 
Это не лаба по паскалю. Просто я теряюсь в этом обилии процедур в одном юните и захотел их разделить. Возможно это пройдёт, но не думаю.
 
Спасибо за помощь.
 
 
И ещё: кто занет как зарегистрировать компанент F1book в дельфи 4 (или 6 или 7)?

Всего записей: 483 | Зарегистр. 07-06-2004 | Отправлено: 11:51 02-03-2007 | Исправлено: dmit000, 11:54 02-03-2007
xy



ХУдератор
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dmit000
Unit - логическая единица, ей надо управлять
для удобства в делфи методы можно сворачивать/рпазворачивать
а еще есть директива {$INCLUDE} ;)

----------
Счастливые мысли приводят к счастливой клеточной биохимии

Всего записей: 10530 | Зарегистр. 28-05-2003 | Отправлено: 12:38 02-03-2007
murkovich



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

Цитата:
согласен, но клиент всегда прав

Ну да, да, клиент всегда прав. Но, если интересы двух групп клиентов взаимно исключающие (ладно, мешающие друг другу), и доля одной группы составляет в лучшем случае 5%, да и то в стране, где софт чаще "берут" чем покупают, то ситуация с точки зрения Кодегира почти ясна.
 
Но это ведь не мешает вам ждать момента, когда Виста станет стандартом, и тогда переходить на, скажем, Delphi 2008 и .NET - привязка ведь в основном к VCL, и не к конкретной версии IDE.

Всего записей: 1551 | Зарегистр. 26-05-2005 | Отправлено: 12:49 02-03-2007
xy



ХУдератор
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
murkovich
меня интересует, чтобы я с помощью конкретной среды (обновляя только среду) смог компилировать продукты для всех актуальных версий виндовса
и меня совершенно не интересует как оно там устроено, как взаимодействует с ОС и т.д. :)
 
на данный момент дельфи для вин32 - помоему оптимум ;)

----------
Счастливые мысли приводят к счастливой клеточной биохимии

Всего записей: 10530 | Зарегистр. 28-05-2003 | Отправлено: 15:17 02-03-2007
yanus69



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста как в dll засунуть форму а потом показать оттуда  при этом чтобы вызов формы выполнялся из такой экспортируемой функции function x(ParentWnd:DWORD; CmdOw:LPWSTR; SCU:DWORD):DWORD;  THX.

Всего записей: 750 | Зарегистр. 14-12-2006 | Отправлено: 15:20 02-03-2007 | Исправлено: yanus69, 15:21 02-03-2007
murkovich



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

Цитата:
меня интересует, чтобы я с помощью конкретной среды (обновляя только среду) смог компилировать продукты для всех актуальных версий виндовса

Да, да, понимаю. Только дело в том, что для мира западного бизнеса виндоус 98 уже не является актуальной версией.  
 
Но вряд ли будет уместным затевать спор из-за этого

Всего записей: 1551 | Зарегистр. 26-05-2005 | Отправлено: 17:01 02-03-2007
xy



ХУдератор
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
murkovich

Цитата:
Только дело в том, что для мира западного бизнеса виндоус 98 уже не является актуальной версией.  

мне действительно наплевать на мир западного бизнеса, честно ;)

----------
Счастливые мысли приводят к счастливой клеточной биохимии

Всего записей: 10530 | Зарегистр. 28-05-2003 | Отправлено: 17:05 02-03-2007
killerbeanjeka

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
yanus69
Запихнуть форму в DLL можно так:
 
Подробнее...
 
а этот код уже не сложно будет привести к нужному тебе виду

Всего записей: 86 | Зарегистр. 27-09-2006 | Отправлено: 11:43 03-03-2007
dmit000



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xy
//Unit - логическая единица, ей надо управлять  
для удобства в делфи методы можно сворачивать/рпазворачивать//
 
Сворачивать/разворачивать - это как это. я не понял

Всего записей: 483 | Зарегистр. 07-06-2004 | Отправлено: 21:52 03-03-2007
xy



ХУдератор
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dmit000
в бдс2006 можно свернуть метод/процедуру/.. как папку в проводнике - там плюсик такй сбоку есть ;)

----------
Счастливые мысли приводят к счастливой клеточной биохимии

Всего записей: 10530 | Зарегистр. 28-05-2003 | Отправлено: 22:08 03-03-2007
George_Lucky



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос такой, какую надо задать маску, чтобы при вводе текста первый символ переводился в верхний регистр?

Всего записей: 413 | Зарегистр. 12-09-2002 | Отправлено: 07:33 06-03-2007
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
George_Lucky
Ты про TMaskEdit? А разве маска позволяет автозамену? В справке написано Use EditMask to restrict the characters a user can enter into the masked edit control to valid characters and formats. If the user attempts to enter an invalid character, the edit control does not accept the character., то есть она просто отсеивает ввод, непопадающий под маску.
Можно в OnChange сделать так Подробнее...

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 08:26 06-03-2007 | Исправлено: RomanTim, 08:27 06-03-2007
RostY



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите что делать в такой ситуации: в программе создаю форму
 
if Form1=nil then Form1:=TForm1.Create(Self);
Form1.Show;
 
при закрытии формы делаю
 
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:=caFree;  
end;
 
а когда следующий раз проверяю if Form1=nil , то она совсем не nil и не креатится, но т.к. ее нет созданной, то при Form1.Show; естественно получаю AV. Как сделать, чтоб при ее уничтожении она становилась nil ?

Всего записей: 387 | Зарегистр. 11-01-2006 | Отправлено: 10:55 06-03-2007
   

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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi 2
ShIvADeSt (22-03-2007 02:18): http://forum.ru-board.com/topic.cgi?forum=33&topic=8142


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

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

LiteCoin: LgY72v35StJhV2xbt8CpxbQ9gFY6jwZ67r

Рейтинг.ru