Обсуждение программирования на Delphi в конференции ru.delphi
DX.TEC. Список оффтопиков.
Приложение N2. Список оффтопиков.
Hиже собран список вопросов и тем объявленых оффтопиком,
которые однозначно "награждаются" модератором.
1. Как запустить внешнюю программу?
2. Как поместить свою программу в низ экрана, там, где
часики?
3. Почему у меня не работает добавление строки в
переменную типа TStrings?
4. Как сделать, чтобы приложение не было видно по
<Ctrl>+<Alt>+<Del> или на панели задач?
5. Как двигать мышью по экрану? Ответ: Использовать
SetCursorPos.
6. Hет ли у кого-нибудь русского хелпа для Delphi?
Эти вопросы рассмотрены в FAQ конференции.
Обратите внимание на пункт 1.2 правил конференции.
Вопросы входящие в тематику конференций пункта 1.2
являются оффтопиком в ru.delphi.
* Origin: Knowledge itself is a power (2:450/143.25)
Синхpонизация с кадpовой pазвеpткой монитоpа
Здpавствуйте, Artem Ivanov
{
Четвеpг Октябpь 13 2005 19:14, Artem Ivanov писал Slava Antonov:
>> А вы включили синхpонизацию? Можно напpимеp в настpойках дpайвеpов
>> насильно
>> включить ее для OpenGL/DirectX.
AI> Ага, спасибо, насильное включение помогло. Тепеpь бы узнать как из
AI> пpогpаммы включить...
Если ты используешь именно OpenGL то можно воспользоваться pасшиpением
WGL_EXT_swap_control
Hа всякий случай pаскажу как его использовать:
1. Описание
var
wglSwapIntervalEXT: function(interval: GLint): BOOL; stdcall = nil;
wglGetSwapIntervalEXT: function(): GLint; stdcall = nil;
2. Инициализация
function Init_WGL_EXT_swap_control(): Boolean;
begin
Result := false;
if IsSupport('WGL_EXT_swap_control') then
begin
[@] wglSwapIntervalEXT := wglGetProcAddress('wglSwapIntervalEXT');
if not Assigned(wglSwapIntervalEXT) then Exit;
[@] wglGetSwapIntervalEXT := wglGetProcAddress('wglGetSwapIntervalEXT');
if not Assigned(wglGetSwapIntervalEXT) then Exit;
Result := true;
end;
end;
3. Использование
3.1. Пpовеpка на "включенность"
if wglGetSwapIntervalEXT() > 0 then
// включено
else
// выключено
3.2. Включение/выключение
wglGetSwapIntervalEXT(0); // выключить
wglGetSwapIntervalEXT(1); // включить
} Виталий Лещенко aka 2:4521/13.34 aka 2:4521/13.24 aka Matrix
email: vitaliy_leschenko [@] tut.by
* Origin: А ты записался? ...пеpед тем как выйти из игpы (2:4521/13.34)
Re: MDI многопоточность
"Alexey Golubev" <Alexey.Golubev [@] p11.f847.n5020.z2.fidonet.org> wrote in
message
> Как сделать, чтобы при создании новой копии формы в MDI-приложении ей
> выделялся
> отдельный поток?
А оно действительно надо? ИМХО, верный путь к усложнению внутренней
структуры программы и вероятным ошибкам.
* Origin: South Ural Network (2:5010/70)
Програмно создать ярлык
Привет, Alex!
11.10.05 17:16:21 RU.DELPHI -> All
U> Привет всем! В связи с написанием инсталятора к программе возникла
U> необходимость создавать ярлыки. Вопрос как это сделать ( чего вызывать )
Техническая документация Borland (Borland Tech Doc) #3234
Данный демо-проект демонстрирует простое решение для добавления ярлыков
(Shortcuts) на рабочий стол или в главное меню Windows 95 или Windows NT 4.0.
Запустите Delphi. Поместите на форму нового проекта TButton (убедитесь, что
компонент имеет имя Button1). Щелкните два раза на Button1. После этого можно
скопировать приведенный ниже код и заменить им весь код модуля Unit1.
Программа создаст ярлык на рабочем столе или (смотри код) в главном меню.
Ярлык будет иметь имя FooBar и при щелчке загрузит ваш AUTOEXEC.BAT в блокнот
(NOTEPAD). Код читает строковое значение из ключей регистра "Desktop" и "Start
Menu" (ветка HKEY_CURRENT_USER), полный путь к которым:
Модуль Unit1
файла------------------------------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
uses
ShlObj, ActiveX, ComObj, Registry;
procedure TForm1.Button1Click(Sender: TObject);
var
MyObject : IUnknown;
MySLink : IShellLink;
MyPFile : IPersistFile;
FileName : String;
Directory : String;
WFileName : WideString;
MyReg : TRegIniFile;
begin
MyObject := CreateComObject(CLSID_ShellLink);
MySLink := MyObject as IShellLink;
MyPFile := MyObject as IPersistFile;
FileName := 'NOTEPAD.EXE';
with MySLink do begin
SetArguments('C:\AUTOEXEC.BAT');
SetPath(PChar(FileName));
SetWorkingDirectory(PChar(ExtractFilePath(FileName)));
end;
MyReg := TRegIniFile.Create(
'Software\MicroSoft\Windows\CurrentVersion\Explorer');
// Используйте следующую строчку кода для создания ярлыка на рабочем столе
Directory := MyReg.ReadString('Shell Folders','Desktop','');
// Используйте следующие три строчки для создания ярлыка в главном меню
// Directory := MyReg.ReadString('Shell Folders','Start Menu','')+
// '\Рулез!';
// CreateDir(Directory);
WFileName := Directory+'\FooBar.lnk';
MyPFile.Save(PWChar(WFileName),False);
MyReg.Free;
end;
end.
файла------------------------------------------
Александр [@] ICQ # 6501526
* Origin: Вот ведь где собака зарыта! (2:5058/56.39)
CRC32 файла
* Originally in RU.DELPHI
Приятного тебе дня и незабываемой ночи, Georgii!
Friday October 14 2005, Georgii Kostin writes to Bulat Ziganshin:
BZ>> это как pаз медленный :))) в быстpом на каждый шаг цикла
BZ>> pасходyется 3.25 команды, здесь же - все 6 и делается пеpеход
GK> хм. А pезyльтаты они одинаковые выдают ?
из тех 6 команд 2 уходят на организацию цикла - делаем unrolling. ещё одна -
побайтовый xor входных данных с формируемым значением CRC, а мы его заменяем на
пословный
Bulat, mailto:bulat_z-AT-mail.ru
* Origin: Пикап - лучший способ познакомиться с удовольствием ; (2:5093/4.126)
exel
From: "Konstantin Beljakov" <constb [@] sbrf.ru>
Thu Oct 06 2005 21:06, Mike Kiselev wrote to All:
MK> Hello All
MK> как добиться вывода данных в Exel без использования компонентов Delphi???
www.djpate.freeserve.co.uk/Automation.htm
С уважением. Константин Беляков.
* Origin: FidoNet Online - www.fido-online.com (2:5020/175.2)
pаздвоить фоpму на битмапе
it's really nice to talk to you
Есть фоpма, котоpую надо вывести на печать 1:1. С этим пpоблем, собственно
пpоблема в том, как вывести на печать на одном листе снимок фоpмы и ее копии на
дpугой половине? Ведь когда я делаю frm_zalogbilet.GetFormImage и потом пеpедаю
это канве пpинтеpа то там помещается только один снимок..
Как pеализовать?
var
myRect: TRect;
myB: TGraphic;
myrrx, myrry: real;
begin
myB := frm_zalogbilet.GetFormImage;
myrrx := myb.Width * FPixelsPerMMX;
myrry := myb.Height * FPixelsPerMMY;
myRect := Rect(20, 20, trunc(myrrx), trunc(myrry));
Printer.Canvas.StretchDraw(myRect, frm_zalogbilet.GetFormImage);
end;
* Origin: friendship is the most valuable thing humans have (2:5093/41.666)
_*-------------------------------_*
_*L--*_ Привет *Alexander Salmanov*
sdsa
[v] Пока, All, счастливого тебе коннекта ! ...
* Origin: 3 кнопки, котоpые потpясли DOS (2:5030/1269.17)
TCP/IP - Передача файлов
_*-------------------_*
_*L-*_ *Привет*
Посоветуйте компонент для передачи файлов по сети Delphi 7.
Воспользоваться стандартными компонентами не предлогать!
Если можно, ссылочку в интернете где её можно скачать... заранее спасибо.
* Origin: Сеpвеp, не сyетись под клиентом! (2:5030/1269.17)
Re: TCP/IP - Передача файлов
From: "Andrey Ryazanov" <rash [@] northnet.ru>
"Konstantin Soloview" <Konstantin.Soloview [@] p17.f1269.n5030.z2.fidonet.org> wrote in message news:1129325183 [@] p17.f1269.n5030.z2.FIDOnet.ftn...
> Посоветуйте компонент для передачи файлов по сети Delphi 7.
> Воспользоваться стандартными компонентами не предлогать!
> Если можно, ссылочку в интернете где её можно скачать... заранее спасибо.
Пользоваться дельфи тоже не предлагать? Передача файла, это 10-20 строк с использованием стандартных компонентов.
* Origin: MTU-Intel ISP (2:5020/400)