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

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

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


Страницы: «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
Студент
Сообщения: 241
[Сообщение #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 - 2018, Delphi.int.ru
Версия форума: 1.10 (19.01.2010)
RSS Delphi.int.ru Expert Код
Выполнено за 0.14 сек.
Обратная связь  
Рейтинг@Mail.ru Majordomo.ru - надёжный хостинг