Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

За 2004-03-14

Re[2]: Вопросик по Delphi

Здарова, monah!

14 марта 2004 г., воскресенье, 08:55:13 (GMT+05:00), ты намылил:

m> Предложенные ранее варианты обладают одним недостатком, они предпологают что
m> надо использовать ВСЕ TEdit а если тока с 5 по 18 ? Логичнее будет создать
m> эти элэменты динамически.
m> for i:=x to n do begin
m> editx:=TEdit.create(form1);
m> editx.name:='edit'+strtoint(i);
m> end;

Ну ты, monah, загнул! Что ж это при каждой записи в массив создавать
Editы, а когда в них значения попадут? При создании что ли?
И вообще, FindComponent не обладает недостатком "использования всех
TEdit", просто мне лень было писать подробный код.
Кстати, monah, что такое "editx" в твоем коде? Если один и тот же
Edit, то как ты в из него будешь добывать РАЗНЫЕ значения в массив?

procedure TForm1.Button1Click(Sender: TObject);
var a: array[1..10]of double;
i: integer;
begin
for i := 3 to 7 do
a[i] := StrToFloat(
(FindComponent('Edit' + IntToStr(i)) as TEdit
).Text);
end;

--
Никогда больше не буду говорить афоризмами. Да, кстати, запишите мою последнюю
фразу

   Томилов Александр 2004-03-14 22:11:23 (#102851)

Re: [Delphi6] цветное выделение текста в richedit

Доброго времени суток!

On Sun, Mar 14, 2004 at 05:12:32PM +0200, keel wrote:
> Вы меня не так поняли, Мне нужно изменить задний цвет выделенного
> тектса, а не цвет текста!
Ну так и поищите соответствующее свойство.
Совет: Посмотрите help на RichEdit.

   2004-03-14 20:20:16 (#102783)

Re[3]: [Delphi6] цветное выделение текста в richedit

> Здравствуйте!
> Вы меня не так поняли, Мне нужно изменить задний цвет выделенного
> тектса, а не цвет текста!

В каком компоненте?

С уважением monah
e-mail : janal***@n*****.ru
сайт : http:\\janalex.narod.ru
--
Номер выпуска : 2595
Возраст листа : 174 (дней)
Количество подписчиков : 377
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/102777
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   2004-03-14 19:40:11 (#102777)

Re[2]: [Delphi6] цветное выделение текста в richedit

Здравствуйте!
Вы меня не так поняли, Мне нужно изменить задний цвет выделенного
тектса, а не цвет текста!

   2004-03-14 18:24:40 (#102747)

Re: Делфи - память

Прив!
Заустил я это чудо, Error! Не принимает FormRunning:=boolean(true); хотя
почему, не пойму! Объявлена коррпектно. Оно вооще нажно как const? может var
сойдет? хотя не уверен что прокатит.
Есть мысля по теме?

С уважением monah
e-mail : janal***@n*****.ru
сайт : http:\\janalex.narod.ru
--
Номер выпуска : 2593
Возраст листа : 174 (дней)
Количество подписчиков : 377
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/102728
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   2004-03-14 17:47:59 (#102728)

Re: Вопросик по Delphi

> a:array[1..10]of double;
> begin
> a[1]:=StrToFloat(Edit1.Text);
> a[2]:=StrToFloat(Edit2.Text);
> a[3]:=StrToFloat(Edit3.Text);
> ..............
> a[10]:=StrToFloat(Edit10.Text);
>

Здрям!
Предложенные ранее варианты обладают одним недостатком, они предпологают что
надо использовать ВСЕ TEdit а если тока с 5 по 18 ? Логичнее будет создать
эти элэменты динамически.
for i:=x to n do begin
editx:=TEdit.create(form1);
editx.name:='edit'+strtoint(i);
end;

С уважением monah
janal***@n*****.ru
Номер выпуска : 2592
Возраст листа : 174 (дней)
Количество подписчиков : 377
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/102450
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   2004-03-14 07:49:28 (#102450)

Re: Делфи - память

Здарова, monah!

8 марта 2004 г., понедельник, 22:54:35 (GMT+05:00), ты намылил:

m> procedure TForm1.Timer1Timer(Sender: TObject);
m> var
m> dc:HDC;
m> cn:TCanvas;
m> sx:integer;
m> begin
m> cn:=TCanvas.Create;
m> sx:=Screen.Width;
m> cn.Font.Color:=clWhite;
m> cn.Font.Style:=[fsBold];
m> cn.Brush.Color:=clBackground;
m> dc:=GetDC(0);
m> cn.Handle:=dc;
m> cn.TextOut(sx-100,10,FormatDateTime('d MMMM', Date));
m> cn.TextOut(sx-100,25,FormatDateTime('dddd', Date));
m> cn.TextOut(sx-100,40,TimeToStr(time));
m> cn.Free;
m> end;

Вот, народ держите мой "шедевр", идею я все-таки сплагинил ;)
2Monah: Я все таки сделал смену фонта на HDC!

1) Строчки:

begin
хех
644 toforum.rar

Надо превратить в:
begin 644 toforum.rar

Иначе не распакуется

2) Сохранить как ToForum.uue и открыть Rar-ом

==Начало ToForum.uue==
section 1 of uuencode 5.10 of file toforum.rar by R.E.M.

begin
хех
644 toforum.rar
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
?7PEYJ7(!S2QE,Q,@*>C9``"_B&?VJ?_4Q#U[`$`'`$`'
`
end
sum -r/size 54248/7700 section (from "begin" to "end")
sum -r/size 15228/5566 entire input file

==Конец ToForum.uue==

--
Никогда больше не буду говорить афоризмами. Да, кстати, запишите мою последнюю
фразу

   Томилов Александр 2004-03-14 03:40:11 (#102385)

Re: Вопросик по Delphi

Здарова, Alapin!

13 марта 2004 г., суббота, 20:02:04 (GMT+05:00), ты намылил:

A> a[n]:=StrToFloat(Edit[n].Text);(строчка
A> написана просто так из головы)
A> Вообще возможно так сделать? Просто покороче бы надо.

Кусок кода моей проги. Подсказка: Sender - лишнее.
Главное - FindComponent.

for i := 1 to number do
if Sender = FindComponent('Edit' + IntToStr(i)) then
begin
mod_[i] := tmp_mod;
key_e[i] := tmp_key;
end;

--
Никогда больше не буду говорить афоризмами. Да, кстати, запишите мою последнюю
фразу

   Томилов Александр 2004-03-14 03:40:06 (#102384)

Re: Cpp -> Delphi Data Transform

Здарова, -=BorMaN=-!

13 марта 2004 г., суббота, 16:39:48 (GMT+05:00), ты намылил:

B> Коим образом можно забрать инфу с Срр'шного ЕхЕ-шника на ЕхЕ-шник, сделаный
на
B> Дельфе

B> Т.е. в обе проги мы можем вставлять любые програмные строки (коды), можем
выводить
B> инфу как заглавие форм и т.д., короче делать все, что угодно :-)

B> Рассматриваются любые предложения :-) х Если не лень, то с примерами х

Зря ты программерам пишешь "Если не лень" ;), сразу так лень
становиться :')

Самое простое - пнуть в прогу сообщением, например:
WM_IWRITEFUCKINGINFORMATION ;)
На которое принимающая прога должна среагировать, например, чтением
определенного файла.

Держи статейку (она не много не о том, но мысля нужная тебе есть):

Как определить работает ли уже данное приложение или это его первая копия?

Последнее изменение: 15 авг 2001 (среда), 15:06:26


Как определить работает ли уже данное приложение или это его первая копия? *
*
Каждый экземпляр программы имеет ссылку на свою предыдущую копию - hPrevInst:
hWnd.
Ее можно проверить перед созданием приложения и при необходимости отреагировать

соответствующим образом. Если запущена только одна копия, то эта ссылка равна
нулю.
Только для Delphi 1.
Пример использования hPrevInst:
procedure TForm1.FormCreate(Sender: TObject);
begin
// Проверяем есть ли указатель на предыдущую копию приложения
IF hPrevInst <> 0 THEN BEGIN
// Если есть, то выдаем сообщение и выходим
MessageDlg('Программа уже запущена!', mtError, [mbOk], 0);
Application.Terminate;
END;
// Иначе - ничего не делаем (не мешаем созданию формы)
end;

Другой способ - по списку загруженных приложений
procedure TForm1.FormCreate(Sender: TObject);
VAR
Wnd : hWnd;
buff : ARRAY[0.. 127] OF Char;
Begin
//Получили указатель на первое окно
Wnd := GetWindow(Handle, gw_HWndFirst);
// Поиск
WHILE Wnd <> 0 DO BEGIN
// Это окно предыдущей копии ?
IF (Wnd <> Application.Handle) AND (GetWindow(Wnd, gw_Owner) = 0)
THEN BEGIN
GetWindowText (Wnd, buff, sizeof (buff ));
IF StrPas (buff) = Application.Title THEN
BEGIN
MessageDlg('Приложение уже загружено', mtWarning, [mbOk], 0);
Halt;
END;
END;
Wnd := GetWindow (Wnd, gw_hWndNext);
END;
End;

Данный пример не всегда применим - часто заголовок приложения меняется при каждом
старте, поэтому рассмотрим более надежный способ - через FileMapping
Дело в том, что можно в памяти создавать временные файлы. При перезагрузке они

теряются, а так существуют. Кстати, этот метод можно использовать и для обмена

информацией между вашими приложениями.
Пример с использованием FileMapping:

program Project1;
uses
Windows, // Обязательно
Forms,
Unit1 in 'Unit1.pas' {Form1};

{$R *.RES}
Const
MemFileSize = 1024;
MemFileName = 'one_inst_demo_memfile';
Var
MemHnd : HWND;
begin
// Попытаемся создать файл в памяти
MemHnd := CreateFileMapping(HWND($FFFFFFFF),
nil,
PAGE_READWRITE,
0,
MemFileSize,
MemFileName);
// Если файл не существовал запускаем приложение
if GetLastError<>ERROR_ALREADY_EXISTS then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
CloseHandle(MemHnd);
end.

Часто при работе у пользователя может быть открыто 5-20 окон и сообщение о том,
что
программа уже запущено приводит к тому, что он вынужден полчаса искать ранее
запущенную
копию. Выход из положения - найдя копию программы активировать ее, для чего в
последнем
примере перед HALT необходимо добавить строку :
SetForegroundWindow(Wnd);
Пример:

program Project0;
uses
Windows, // !!!
Forms,
Unit0 in 'Unit0.pas' {Form1};

var
Handle1 : LongInt;
Handle2 : LongInt;

{$R *.RES}

begin
Application.Initialize;
Handle1 := FindWindow('TForm1',nil);
if handle1 = 0 then
begin
Application.CreateForm(TForm1, Form1);
Application.Run;
end
else
begin
Handle2 := GetWindow(Handle1,GW_OWNER);
//Чтоб заметили :)
ShowWindow(Handle2,SW_HIDE); ShowWindow(Handle2,SW_RESTORE);
SetForegroundWindow(Handle1); // Активизируем
end;
end.

Блокировка запуска второй копии при помощи Mutex На мой взгляд, это
один из самых простых и надежных способов.

procedure TForm1.FormCreate(Sender: TObject);
var
hMutex : THandle;
begin
hMutex := CreateMutex(0, true , 'My application name');
if GetLastError = ERROR_ALREADY_EXISTS then begin
CloseHandle(hMutex);
Application.Terminate;
end;
end;

В данном примере при старте приложения создается мьютекс с некоторым уникальным

именем (у каждого приложения оно должно бять свое !!). Если хоть одна копия
приложения запущена, то в системе уже будет мьютекс с таким именем и возникнет

ошибка ERROR_ALREADY_EXISTS. В противном случае мьютекс создается и существует,
пока работает данная копия приложения Задать вопрос

--
Никогда больше не буду говорить афоризмами. Да, кстати, запишите мою последнюю
фразу

   Томилов Александр 2004-03-14 03:40:01 (#102383)

Re[5]: Cpp Builder | Delphi WinExec

Здарова, Ghost!

13 марта 2004 г., суббота, 12:10:39 (GMT+05:00), ты намылил:

G> Лучше использовать ShellExecute - работает всегда и проблем никаких.
G> HINSTANCE ShellExecute(
G> HWND hwnd,
G> LPCTSTR lpOperation,
G> LPCTSTR lpFile,
G> LPCTSTR lpParameters,
G> LPCTSTR lpDirectory,
G> INT nShowCmd
G> );

G> есть еще ShellExecuteEx - совсем навороченная, но с ней я не работал.

Видали мы таких навороченных ;)
Код я привожу не свой. Мне вся мощь ShellExecuteEx не нужна была.
Пример из форума.

function StartWithShell(Prog, Par, Verz: string; var hProcess: THandle): DWORD;
var exInfo: TShellExecuteInfo;
begin
hProcess := 0;
FillChar(exInfo, Sizeof(exInfo), 0);
with exInfo do
begin
cbSize := Sizeof(exInfo);
fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT;
Wnd := 0;
lpVerb := 'open';
lpParameters := PChar(par);
lpFile := Pchar(prog);
nShow := SW_SHOW;//HIDE;
end;
Result := ERROR_SUCCESS;
if ShellExecuteEx(@exInfo) then hProcess := exinfo.hProcess
else Result := GetLastError;
end;

function StartProgramm: Boolean;
var r: DWORD;
ExitCode: DWORD;
err: string;
hProcess: THandle;
begin
Result := False;
r := StartWithShell('c:\progra~1\winrar\rar.exe', '', 'c:\winnt\system32',
hProcess);
if r = ERROR_SUCCESS then
begin
repeat
Application.ProcessMessages;
GetExitCodeProcess(hProcess, ExitCode);
until (ExitCode <> STILL_ACTIVE);
result := true;
end
else
begin
case r of
ERROR_FILE_NOT_FOUND : err:='The specified file was not found.';
ERROR_PATH_NOT_FOUND : err:='The specified path was not found.';
ERROR_DDE_FAIL : err:='The DDE transaction failed.';
ERROR_NO_ASSOCIATION : err:='There is no application associated with
the given filename extension.';
ERROR_ACCESS_DENIED : err:='Access denied';
ERROR_DLL_NOT_FOUND : err:='DLL not found';
ERROR_CANCELLED : err:='The function prompted the user for the location
of the application, but the user cancelled the request.';
ERROR_NOT_ENOUGH_MEMORY: err:='Not enough memory';
ERROR_SHARING_VIOLATION: err:='A sharing violation occurred.';
else err:='Unknown';
end;
MessageDlg('Error: ' + err, mtError, [mbOk], 0);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if StartProgramm then ShowMessage('cool');
end;

А вообще ShellExecuteEx много чего умеет при разных lpVerb
lpVerb := 'open';
lpVerb := 'properties';
lpVerb := 'print';
lpVerb := 'explore';
и т.д. Полный список я не нашел (да и не особо искал ;)

А этот код из LsFileExplorer28.pas

procedure ShowProperties(FName: string); //862 >>
var
sei: SHELLEXECUTEINFO;
err: longint;
begin
try
ZeroMemory(addr(sei),sizeof(sei));
sei.cbSize := sizeof(sei);
sei.lpFile := pchar(FName);
sei.lpVerb := 'properties';
sei.fMask := SEE_MASK_INVOKEIDLIST;
ShellExecuteEx(addr(sei));
except
err:=getlasterror;
case err of
ERROR_FILE_NOT_FOUND: showmessage('The specified file was not found.');
ERROR_PATH_NOT_FOUND: showmessage('The specified path was not found.');
ERROR_DDE_FAIL: showmessage('The DDE transaction failed.');
ERROR_NO_ASSOCIATION: showmessage(
'There is no application associated with the given filename extension.');
ERROR_ACCESS_DENIED: showmessage('Access denied');
ERROR_DLL_NOT_FOUND : showmessage('DLL not found');
ERROR_CANCELLED : showmessage('The function prompted the user for the '
+
'location of the application, but the user cancelled the request.');
ERROR_NOT_ENOUGH_MEMORY: showmessage('Not enough memory for this operation');
ERROR_SHARING_VIOLATION: showmessage('Sharing violation');
end;
end;
end; {ShowFileProperties} //862 <<

--
Никогда больше не буду говорить афоризмами. Да, кстати, запишите мою последнюю
фразу

   Томилов Александр 2004-03-14 03:39:55 (#102382)

Re: [Delphi6] цветное выделение текста в richedit

Доброго времени суток!

On Sat, Mar 13, 2004 at 07:23:41PM +0200, keel wrote:
> Возможно ли сделать цветное выделение текста, то есть чтобы можно было
> установить и задний цвет текста?
Прошу прощения, не посмотрел на тему. Для решения подобной проблемы
можно сделать следующее:

var
r: TRichEdit;

procedure highlight;
begin
r.SelStart := 0;
r.SelEnd := 6;
r.SelText.Color := clRed;
end;

и так далее. Может быть код не рабочий, поскольку на Delphi давно не
программировал. А вообще при нажатии на клавишу F1 можно увидеть много
интересного.

   2004-03-14 01:46:55 (#102340)

Re: [Delphi6] цветное выделение текста в richedit

Доброго времени суток!

On Sat, Mar 13, 2004 at 07:23:41PM +0200, keel wrote:
> Возможно ли сделать цветное выделение текста, то есть чтобы можно было
> установить и задний цвет текста?
Для этого можно использовать RichEdit.

   2004-03-14 01:46:49 (#102339)

Re: [Delphi6] цветное выделение текста в richedit

Hello keel,

Saturday, March 13, 2004, 7:23:41 PM, you wrote:

k> Здравствуйте!
k> Возможно ли сделать цветное выделение текста, то есть чтобы можно было
k> установить и задний цвет текста?
k> Условие: только некоторую часть текста, а не весь!

Сначала выдели эту часть - укажи св-ва (то есть, задай им значения)
SelStart (индекс первого символа, входящего в выделение) и SelLength
(какова длина выделения). Потом укажи свойство
SelAttributes.Font.Color (кажись, так оно называется).

   Вадим Шешунов 2004-03-14 01:24:42 (#102328)

Re: Вопросик по Delphi

Hello Alapin,

Saturday, March 13, 2004, 5:02:04 PM, you wrote:

A> Допустим есть несколько Edit'ов, в которые вносятся какие-то значения.
A> Например:
A> var
A> a:array[1..10]of double;
A> begin
A> a[1]:=StrToFloat(Edit1.Text);
A> a[2]:=StrToFloat(Edit2.Text);
A> a[3]:=StrToFloat(Edit3.Text);
A> ..............
A> a[10]:=StrToFloat(Edit10.Text);

A> Необходимо сделать так, чтобы не присваивать каждой переменной массива
A> соответственный Edit, а чтобы они вносились сами, без их прописывания.
A> Ну не знаю что-то вроде этого
A> a[n]:=StrToFloat(Edit[n].Text);(строчка
A> написана просто так из головы)
A> Вообще возможно так сделать? Просто покороче бы надо.

Возможно, конечно!
var
P :TWinControl;
i,j :Integer;
begin
P := Edit1.Parent;
j := 1;
for i := 0 to P.ControlCount - 1 do
if P.Controls[i] is TEdit then
begin
a[j] := StrToFloat((P.Controls[i] as TEdit).Text);
Inc(j);
end;
end;

   Вадим Шешунов 2004-03-14 01:24:37 (#102327)