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

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

За 2004-03-15

Re: [Delphi6]файлы

==-==-=-Привета!13 марта 2004 г. (суббота 19:22:09) keel (E-Mail: <dima***@s*****.by>) в мессаге
<<[Delphi6]файлы>> накрапал
[-~-~-~-~-~-~>
keel> Здравствуйте!
keel> Как добавить в листбокс имена всех файлов из определенной директории с
keel> определенным расширением?
keel> Желательно кусок кода.

[-~-~-~-~-~-~>

Вот тебе кусок кода, который тулит в листбокс все битмапы в директории:
_Как вставить растровое изображение в компонент ListBox?_

Для этого необходимо установить в инспекторе объектов поле Style в lbOwnerDrawFixed,
при фиксированной высоте строки, или в lbOwnerDrawVariable, при переменной, и
установить собственный обработчик события для OnDrawItem. В этом обработчике
и надо рисовать растровое изображение.
Пример:Рисуются изображения размером 32*16 (размер стандартного глифа для Delphi).
Очень полезно при поиске нужного изображения для кнопок!Установить в инспекторе
объектов для ListBox поле ItemHeight = 19, а поле Color = clBtnFace.

{ Загрузить список файлов в ListBox1 при нажатии на кнопку Load (например)}
procedure TForm1.bLoadClick(Sender: TObject);
VAR S : String;
begin
ListBox1.Clear; {чистим список}
S := '*.bmp'#0; {задаем шаблон}
ListBox1.Perform(LB_DIR, DDL_ReadWrite, Longint(@S[1])); {заполняем список}

end;
............

{Отобразить изображения и имена файлов в ListBox}
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: DrawState);
VAR
Bitmap : TBitmap;
Offset : Integer;
BMPRect: TRect;
begin
WITH (Control AS TListBox).Canvas DO BEGIN
FillRect(Rect);
Bitmap := TBitmap.Create;
Bitmap.LoadFromFile(ListBox1.Items[Index]);
Offset := 0;
IF Bitmap <> NIL THEN BEGIN
BMPRect := Bounds(Rect.Left+2, Rect.Top+2,
(Rect.Bottom-Rect.Top-2)*2, Rect.Bottom-Rect.Top-2);

{StretchDraw(BMPRect, Bitmap); Можно просто нарисовать, но лучше сначала
убрать фон}
BrushCopy(BMPRect,Bitmap, Bounds(0, 0, Bitmap.Width, Bitmap.Height),
Bitmap.Canvas.Pixels[0, Bitmap.Height-1]);
Offset := (Rect.Bottom-Rect.Top+1)*2;
END;
TextOut(Rect.Left+Offset, Rect.Top, ListBox1.Items[Index]);
Bitmap.Free;
END;
end;

Данный пример работает медленно, но оптимизация, для ускорения, вызвала бы трудность
в понимании общего принципа его работы.
From: http://Sources.ru/

Вообще-то тебе нужна только procedure TForm1.bLoadClick(Sender: TObject);

   -=BorMaN=- 2004-03-15 22:55:04 (#103621)

Re[2]: [Delphi6]файлы

==-==-=-Привета!15 марта 2004 г. (понедельник 8:56:03) Surin_bp (E-Mail: <surin_***@m*****.ru>)
в мессаге <<[Delphi6]файлы>> накрапал
[-~-~-~-~-~-~>
Surin_bp> Тема: [Delphi6]файлы
>> Как добавить в листбокс имена всех файлов из определенной директории с
>> определенным расширением?
Surin_bp> Таки это просто решается с помощью FindFirst и
Surin_bp> FindNext. Почти как в Borland
Surin_bp> Pascal. Примеры есть везде.
Surin_bp> В том числе и в справке по Delphi

[-~-~-~-~-~-~>
Да надо глянуть то, что я говорю (см. раньше)!!! Там всего одна строка и ВСЕ!!!
И никаких граблей с FindFirst и FindNext :-)

   -=BorMaN=- 2004-03-15 22:54:19 (#103620)

MMS Message by SMTP

-=[15 марта 2004 г.]=-
Дрова!

Можно ли послать MMS мессагу (для мобилок) по протоколу SMTP? И если да, то как?

   -=BorMaN=- 2004-03-15 22:53:18 (#103617)

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

Привет Болюба,

Monday, March 15, 2004,в 10:04:21 AM, вы писали:

БГ> Здравствуйте.

A>> Еще один глупый вопрос.
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>> Ну не знаю что-то вроде этого
Здраствуйте.

БГ> А зачем тебе хранить одну и туже информацию в двух местах?

Надо после этого загнать все в StringGrid, так как нужна таблица, и
там произвести с данными некоторые действия.
Но проблема уже решена с помощью "Томилова Александра: asteroid_co***@m*****.ru"
Спасибо всем тем, кто помогал.

   2004-03-15 21:23:26 (#103554)

Re: Cpp -> Delphi Data Transform

Здравствуй, -=BorMaN=-.

Вы писали 13 марта 2004 г., 13:39:48:

B> Есть ЕхЕ-шник, который мы сами компилим на Срр Builder'e
B> и
B> Есть ЕхЕ-шник, который мы сами компилим на Delphi
B> Cpp'шный Ехе-шник выдает инфу (каждый раз разная), а Дельфовский Ехе-шник
должен
B> эту инфу обрабатывать...

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

Если я тебя понял правильно - проблема заключается в том, чтобы
передать данные из одного EXE-файла в другой. Верно? Если так, то
советую использовать проецируемые в память файлы, так как с их помощью
строятся практически все механизмы совместного доступа процессов к
данным (например RPC, COM, OLE, DDE, оконные сообщения, буфур обмена и
т.д.). Проецируемые в память файлы - это самый низкоуровневый механизм и,
соответственно, самый быстрый.
Последовательность действий такова:

В Cppшном EXEшнике:

//Создаёшь проецируемый в память файл
s_hFileMap = CreateFileMapping(INVALID_HANDLE_VALUE, NULL,
PAGE_READWRITE, 0, 4 * 1024, TEXT("MMFSharedData"));

//проецируешь на адресное пространство
PVOID pView = MapViewOfFile(s_hFileMap,
FILE_MAP_READ | FILE_MAP_WRITE, 0, 0, 0);

//Дальше помещаешь свои данные в буффер по адресу указаном в pView

//И прекращаешь проецирование
UnmapViewOfFile(pView);

В Delphi:

//Открываешь файл проецируемый в память
hFileMapT := OpenFileMapping(FILE_MAP_READ or FILE_MAP_WRITE,
FALSE, 'MMFSharedData');

pView := MapViewOfFile(hFileMapT,
FILE_MAP_READ or FILE_MAP_WRITE, 0, 0, 0);

//забираем данные из буффера по адресу указаном в pView

//И прекращаешь проецирование
UnmapViewOfFile(pView);

Выдрал из одного примера на работоспособность не проверял но
теоретически должно работать. Ну к этому, для коректности, необходимо
добавить проверки различные - думаю разберёшься (если захочешь).
Надеюсь поможет.

   Пастернак Сергей 2004-03-15 14:49:58 (#103234)

Re: COM

Здравствуйте, KS.

Вы писали 13 марта 2004 г., 19:17:22:

K> Я пишу на VC++7.0 и хочу изучить технологию COM, подскажите
K> русско-язычный ресурс в сети по ней или хорошую книжку.

Есть такая рассылка "Что такое "Технология COM" и как с ней бороться?"
на сайте clubpro.spb.ru ,по-моему. У меня есть архив до 47 выпуска, этого
мне хватило, чтобы разобраться в основах. Эсли хочешь вышлю ~260k,
пиши на личный.

   Пастернак Сергей 2004-03-15 14:49:45 (#103233)

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

> Очено просто: для всех Edit'ов определяется (выбирается) один обработчик
событий,
> а там распознается, кто обратился вот так:
> if (Sender as TComponent).Name = 'Edit1'
> then
> Edit1.Text := Edit1.Text + '1'
> .....
> --
> С уважением,
> Борис Сурин, surin_***@m*****.ru

Тут лучше использовать св-во tag, в нем хранить уникальный номер и его
проверять

С уважением monah
e-mail : janal***@n*****.ru
сайт : http:\\janalex.narod.ru
--
Номер выпуска : 2604
Возраст листа : 175 (дней)
Количество подписчиков : 376
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/103197
Получить правила : 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-15 13:36:13 (#103197)

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

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

Привет!
editx - буфер для создания элемента. потом ему присваивается уникальное имя
и т.д. Мне тоже было лень писать весь код, тока идею оформил.

С уважением monah
e-mail : janal***@n*****.ru
сайт : http:\\janalex.narod.ru
--
Номер выпуска : 2603
Возраст листа : 175 (дней)
Количество подписчиков : 376
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/103163
Получить правила : 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-15 12:34:56 (#103163)

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

Здравствуйте.

A> Еще один глупый вопрос.
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> Вообще возможно так сделать? Просто покороче бы надо.

А зачем тебе хранить одну и туже информацию в двух местах?

   Болюба Георгий 2004-03-15 10:01:39 (#103095)

Re: [Delphi6]файлы

Тема: [Delphi6]файлы
> Как добавить в листбокс имена всех файлов из определенной директории с
> определенным расширением?
Таки это просто решается с помощью FindFirst и FindNext. Почти как в Borland
Pascal. Примеры есть везде.
В том числе и в справке по Delphi

   2004-03-15 09:56:19 (#103094)

Re[2]: COM

Здравствуйте.

VVV> Здравствуйте !

>> Я пишу на VC++7.0 и хочу изучить технологию COM, подскажите
>> русско-язычный ресурс в сети по ней или хорошую книжку.

VVV> Наверно, лучше всего читать "Inside COM" Дейла Роджерсона.
VVV> Она у меня на английском точно была. В сети видел ее и на русском.
VVV> Видел эту книгу в формате PDF весит где то 2.4 Мб.

http://anatolix.naumen.ru/combooks.htm

Попробуйте взять здесь.

   Болюба Георгий 2004-03-15 09:56:11 (#103093)

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

Тема: Вопросик по Delphi
> Допустим есть несколько Edit'ов, в которые вносятся какие-то значения.
> Необходимо сделать так, чтобы не присваивать каждой переменной массива
> соответственный Edit, а чтобы они вносились сами, без их прописывания.

Очено просто: для всех Edit'ов определяется (выбирается) один обработчик событий,
а там распознается, кто обратился вот так:
if (Sender as TComponent).Name = 'Edit1'
then
Edit1.Text := Edit1.Text + '1'
.....

   2004-03-15 09:48:37 (#103090)

Re: [Delphi6]файлы

==-==-=-Привета!13 марта 2004 г. (суббота 19:22:09) keel (E-Mail: <dima***@s*****.by>) в мессаге
<<[Delphi6]файлы>> накрапал
[-~-~-~-~-~-~>
keel> Здравствуйте!
keel> Как добавить в листбокс имена всех файлов из определенной директории с
keel> определенным расширением?
keel> Желательно кусок кода.

keel> Спасибо!

[-~-~-~-~-~-~>

Посмотри в докумененталке к ДЕльфу (в 6.0 100% есть) инфу о том, как рисунки
всовывать в листбох. Там есть то, что тебе ныжно (с исходником)! ТАм по маске
ищятся БМПхи и пихаются в листбокс вместе со своими именами.

   -=BorMaN=- 2004-03-15 02:03:10 (#102950)