![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
||||
|
||||
![]() Обычно для этого используют функции/процедуры с одним именем и разными входными параметрами.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#17
|
||||
|
||||
![]() procedure ... overload;
|
#18
|
||||
|
||||
![]() Я надеялся ТС сам до этого дойдёт.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#19
|
|||
|
|||
![]() Цитата:
![]() Я задал вопрос именно потому, что если я буду вызывать то что необходимо в каждой кнопке\пункте меню, то получится много лишнего кода, вот я и подумал, что через ActionList можно сделать общий Action для кнопок и меню, но столкнулся с проблемой передачи разных параметров. А писать еще одну функцию лишь для приёма параметров, это как-то не целесообразно. Я написал что выполнить действие, но это было лишь упрощение, в действительности же там не одна строка кода ![]() |
#20
|
||||
|
||||
![]() Назначаешь одной кнопке процедуру где идёт выполнение кода, остальные кнопки ссылаются на эту же процедуру. Немного напоминает действие ActionList-а.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#21
|
||||
|
||||
![]() вообще не понятно зачем тут ActionList?
Код:
type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; procedure ButtonClick(Sender: TObject); ... procedure TForm1.ButtonClick(Sender: TObject); begin // Sender end; Код:
object Button1: TButton OnClick = ButtonClick end object Button2: TButton OnClick = ButtonClick end object Button3: TButton OnClick = ButtonClick end Пишу программы за еду. __________________ |
#22
|
||||
|
||||
![]() Цитата:
1-й вариант одназначно, так как в случае дальнейшей модификации кода не нужно будет править его в нескольких местах + удобнее работать с хоткеями, капшинами и т.п. 00110001 00101100 00110110 00110001 00111000 00110000 00110011 00110011 00111001 00111000 00111000 00110111 00110100 00111001 00111000 00111001 00110100 00111000 00110100 00111000 00110010 00110000 00110100 00110101 00111000 00110110 00111000 00110011 00110100 00110011 00110110 00110101 00110110 |
Этот пользователь сказал Спасибо ~TB~ за это полезное сообщение: | ||
Yo_Asakyra (17.05.2012)
|
#23
|
|||
|
|||
![]() Добрый день.
Возникла мистическая ситуация: При записи данных в БД все поля кроме BLOB (ArrayOfCRC указан как WideString т.к. заношу в него строку) заносятся нормально, а данные в BLOB поле заносятся непонятно по каким правилам. Например: Заношу 6 записей в БД, у некоторых BLOB заполнен, а у некоторых - нет. Помогите разобраться ![]() Работаю через FIB+ компоненты. В частности TpFIbDataBase, TpFiBDataSet и TpFIbTransaction. Приведённым ниже кодом я заполняю БД (Interbase, созданная в InterBase & FireBird Manager'e 3.3.0.2). Функции ExtractFileNameEx и CteateCRCArray работают корректно. P.S. в View дебагера смотрел "ParamByName('ArrayOfCRC').AsWideString" тоже все работает нормально. Код:
procedure TMainForm.InsertIntODBClick(Sender: TObject); var vTextLengh : Word; begin with DataModuleX.DataSet do try close; if not prepared then Prepare; with DataModuleX.DataSet.QInsert do Try ParamByName('NameOfText').AsString := (FileOpen.Dialog.FileName, True); ParamByName('ArrayOfCRC').AsWideString := CteateCRCArray(GlobalCanonizedText, 980, Configuration.WordsInShingle.Value, Configuration.NormalDoc.Checked); ParamByName('TextLength').AsInteger := vTextLengh; ExecQuery; finally QInsert.Params.ClearValues; DataModuleX.MainTransaction.Commit; end; Except on E : Exception do ShowMessage(E.ClassName+' Ошибка'+E.Message); End; End; Структура БД: ![]() TextId - Первичный ключ. NameOfText - Уникальный. Нужели никто не знает в чём может быть причина? Последний раз редактировалось Yo_Asakyra, 19.05.2012 в 01:07. |