Форум Другие темы Последний код |
Страницы: «1» «2» | |||||||
|
EClass: http://www.delphi.int.ru/code/5981d7d0 Self при передачи в методе класса будет являться указателем на класс TClass в моем случае self = TCrypto интересна судьба объекта Cnv.Brush.Bitmap после присвоения Cnv.Brush.Bitmap := bmap; я не знаю - что такое bmap, но есть подозрение на утечку памяти Дальше: {{code} function TDialogControl.GetValue : Variant; begin Result := NULL; try case f_Field.FieldType of ftBoolean: Result := TsCheckBox (f_Control).Checked; ftInteger: Result := TsSpinEdit (f_Control).Value; ftExtended: Result := TsDecimalSpinEdit (f_Control).Value; ftDouble: Result := TsCurrencyEdit (f_Control).Value; ftString: Result := TsEdit (f_Control).Text; ftPassword: Result := TsMaskEdit (f_Control).Text; ftText: Result := TsRichEdit (f_Control).Text; ftDate: Result := TsDateEdit (f_Control).Date; ftTime: Result := TsTimePicker (f_Control).Time; ftFile: Result := TsFileNameEdit (f_Control).Text; ftDirectory: Result := TsDirectoryEdit (f_Control).Text; end; except on E: Exception do _raise (['GetValue',ERR_TDIALOGCONTROL_GET_VALUE,E], ['{9505DFB0-E0A0-4889-A91D-C182E7DA4175}']); end; end; Ⓐ свобода сопротивление солидарность | ||||||
|
За 10 лет, что программирую в Delphi, ни разу не испытывал нужды использовать Variant. Потому испытываю какой-то суеверный страх перед таким кодом. Цитата (mirt.steelwater): интересна судьба объекта Cnv.Brush.Bitmap после присвоения bmap поле в классе формы. Объект создается в OnCreate, уничтожается через OnDestroy. Какие тут могут быть утечки?Cnv.Brush.Bitmap := bmap; я не знаю - что такое bmap, но есть подозрение на утечку памяти Из последнего: const COOLER_STATE: array [$00..$03] of string = ('Остановлен', 'Половинная мощность', 'Полные обороты', 'Авария'); FIRST_VOLT_FUNC = $06; VOLT_PATTERNS: array [FIRST_VOLT_FUNC..FIRST_VOLT_FUNC + 3] of string = ('%2.1fВ', '%dВ', '+%1.1fВ', '-%1.1fВ'); { TFormCH } procedure TFormCH.AlarmProcessing; Var i, j: integer; begin // Чтение переменных - для отображения состояния for i:=0 to High(Module.Vars) do with Module.Vars[i] do begin // Разбор функций case FCode of FIRST_VOLT_FUNC, $08, $09: begin // значения напряжений j := FCode - FIRST_VOLT_FUNC; ListVolt.Items[j].SubItems.Text := format(VOLT_PATTERNS[FCode], [ReadValue/10]); end; $07: begin // значение для 48В j := FCode - FIRST_VOLT_FUNC; ListVolt.Items[j].SubItems.Text := format(VOLT_PATTERNS[FCode], [ReadValue]); end; $04: begin // состояния температуры и вентилятора ListTerm.Items[0].SubItems.Text := format('%d-я температурная зона', [ReadValue and $03 + 1]); ListTerm.Items[2].SubItems.Text := COOLER_STATE[(ReadValue shr 2) and $03]; end; $0A: // текущая температура ListTerm.Items[1].SubItems.Text := format('%d °C', [ReadValue]); $0B: // частота вращения вентилятора ListTerm.Items[3].SubItems.Text := format('%d об/сек', [ReadValue]); end; end; // Обработаем массив аварийных функций for i:=0 to High(Module.Alarms) do with Module.Alarms[i] do case FCode of $03: begin SetAlarm(0, Value and $01); SetAlarm(1, Value and $02); end; $05: // Аварии напряжений for j := 0 to 7 do SetAlarm(2 + j, Value and (1 shl j)); end; end; "Digital Networked Knight" | ||||||
Перейти в раздел:
© 2004 - 2024, Delphi.int.ru |
Версия форума: 1.10 (19.01.2010) |
Выполнено за 0.03 сек. |