|
FAQ Stepan Ilyin aka Step Xakep, номер #051, стр. 051-100-3 A: Не стоит объяснять, что компьютерная индустрия развивается очень быстро. С каждом днем появляются девайсы, которые еще вчера казались чем-то абсолютно нереальным. Увы, у этой тенденции есть и обратная сторона. С ростом производительности увеличивается и тепловыделение. А перегрева компоненты компьютера не любят. Чуть что – и сразу глюки, зависоны, самопроизвольные перезагрузки... Поэтому развитие сферы водяного охлаждения компьютера отнюдь не случайно. Возьмем, к примеру, систему Koolance PC2-C (http://koolance.com/products/product.html?code=MCS-A01). Принцип работы прост до безобразия. К каждому из компонентов компьютера (а именно: процессору, винчестеру, северному мосту чипсета и графическому чипу видеокарты) проводятся вотерблоки, которые последовательно подключены к насосам, по которым циркулирует вода, и специальному резервуару, который охлаждает жидкость при помощи радиатора и нескольких вентиляторов. Установить такую систему совсем не сложно, особенно если учитывать, что PC2-C поставляется вместе со специальным корпусом, на котором присутствуют все необходимые крепления для компонентов системы, а также блок управления. Комплексное охлаждение, охватывающее все 4 греющихся компонента компьютера, работает очень эффективно, ничуть не хуже, чем лучшие экземпляры воздушных кулеров. Шума при работе практически нет, а ведь как раз это мы и любим. Тихо и холодно =). Жаль, что стоит такая система недешево. Этим, вероятно, и объясняется недоверие пользователей к подобным способам охлаждения. Q: Как можно уменьшить размер исполняемого файла, скомпиленного на Delphi? A: Самым простым решением будет использование какого-нибудь компрессора исполняемых файлов. К примеру, ASPACK (http://www.aspack.com/) или Shrinker (http://www.blinkinc.com). Другой способ сложнее (но и эффективнее) – писать программы на WinAPI без использования VCL. Для новичка это невероятно трудно, но если разобраться с компонентами Key Object Library (http://bonanzas.rinet.ru/rindex.htm), то результат превзойдет все ожидания! Q: Можно ли ограничить длину текста, который пользователь вводит в TEdit, так, чтобы ширина текста не превышала ширину TEdit’а? A: Многие начинающие Delphi-программеры сталкиваются с такой проблемой, а решить-то ее – раз плюнуть. Способов несколько. Опишу лишь один. procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); var cRect : TRect; bm : TBitmap; begin if ((Ord(Key) <> VK_TAB) and (Ord(Key) <> VK_RETURN) and (Ord(Key) <> VK_LEFT) and (Ord(Key) <> VK_BACK)) then begin Windows.GetClientRect(Edit1.Handle, cRect); bm := TBitmap.Create; bm.Width := cRect.Right; bm.Height := cRect.Bottom; bm.Canvas.Font := Edit1.Font; if bm.Canvas.TextWidth(Edit1.Text + Key) > CRect.Right then begin Key := #0; end; bm.Free; end; end; Смысл в том, что процедура перехватывает событие Edit1KeyPress, после чего измеряет ширину нового символа и уже введенного текста. Если общая ширина больше, чем заданная область TEdit'а, введенный символ отбрасывается. |