Логин:     Забыли пароль?
 
Пароль:   Регистрация

Форум / Другие темы - Последний код  

Последний код


Страницы: «1» «2»
mirt.steelwater
mirt.steelwater
Посетитель
Сообщения: 17
[Сообщение #11] 1 августа 2011, 17:18
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;

Ⓐ свобода сопротивление солидарность
DNK
DNK
Студент
Сообщения: 242
[Сообщение #12] 5 августа 2011, 12:16
За 10 лет, что программирую в Delphi, ни разу не испытывал нужды использовать Variant. Потому испытываю какой-то суеверный страх перед таким кодом.

Цитата (mirt.steelwater):

интересна судьба объекта Cnv.Brush.Bitmap после присвоения
Cnv.Brush.Bitmap := bmap;
я не знаю - что такое bmap, но есть подозрение на утечку памяти
bmap поле в классе формы. Объект создается в OnCreate, уничтожается через OnDestroy. Какие тут могут быть утечки?

Из последнего:
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"

Страницы: «1» «2» (всего страниц: 2, текущая: 2)
Всего сообщений: 12 (сейчас показаны: с 11 по 12)

Перейти в раздел:


 © 2004 - 2024, Delphi.int.ru
Версия форума: 1.10 (19.01.2010)
RSS Delphi.int.ru Expert Код
Выполнено за 0.02 сек.
Обратная связь