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

Delphi - проблемы и решения

  Все выпуски  

Проблемы и решения в Delphi #49


Служба Рассылок Subscribe.Ru

5806 подписчиков.

Проблемы и решения в Delphi - выпуск 49 от 01.03.2002.


Эх раз, еще раз ....


* В БАЗУ OFFLine * * ВСЕ ВОПРОСЫ * * СПРОСИТЬ * * ПРЕДЛОЖИТЬ * * АРХИВЫ * * СКОЛЬКО НАС *


Доброго Вам времени суток уважаемый читатель.



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


Как обычно в выпуске:

1. Очередные вопросы.
2. Отвеченные вопросы.
3. Наша база OFFLine взаимопомощи.


* В БАЗУ OFFLine * * ВСЕ ВОПРОСЫ * * СПРОСИТЬ * * ПРЕДЛОЖИТЬ * * АРХИВЫ * * СКОЛЬКО НАС *

1. Очередные вопросы.

Вопрос 702:
От: AA

Есть окно родитель - оно запускает через Show дочернее окно.
Как сделать так, чтобы оно тоже отображалось в панели задач?


Ответить.


Попробуй так:


Вопрос 703:
От: AAKolesnichenko@TONIPI.surgutneftegas.ru

Подскажите как реализовать перетаскивание URL-а (страницы, рисунка,
архива) из браузера (Internet Explorer) на компанент Delphi (Memo)


Ответить.


Попробуй так:


Вопрос 704:
От: Vladimir

1) Как получить список запущенных программ?
2) Можно ли как-нибудь узнать, как закрывается программа - принудительно
(по Ctrl-Alt-Del) или при выгрузке Винды?


Ответить.


Попробуй так:


Вопрос 705:
От: Б. Б.

:1.Как в F1Book (Formula one Active X)  программно записать какое-то
значение в определенную ячейку?
:2. Где взять Help по Formula one (лучше,-русский)?
:3 Где взять Formula one,работающий с Excel97 или Excel 2000?


Ответить.


Попробуй так:


Вопрос 706:
От: Alexey Shubin

Где взять компоненту запаковки,
только без VCL. Надо что бы код был компактным.
Или на худой конец алгоритм запаковки
ZIP или какой другой  ????
PS. D5


Ответить.


Попробуй так:


Вопрос 707:
От: Alexander Prishchepa

Как имея Handle библиотеки (полученный при помощи LoadLibrary) узнать
каталог, из которого она загружена, т.е. из каталога Винды, Системного,
каталога проги или вообще из чего-нибудь прописанного в Path-e.


Ответить.


Попробуй так:


Вопрос 708:
От: Maria Zimakova

Я работаю с пакетом DOA(Direct Oracle Access) и мне нужно организовать
работу нескольких пользователей, которые обращаются напрямую к серверу
Oracle.
Подскажите, пожалуйста, какие существуют фишки для такой задачи, как
лучше все это делать. Например, мне нужно, чтобы если один пользователь
редактирует запись в базе, то другой не мог одновременно делать то же
самое. Годится ли для этого свойство LockingMode для OracleDataSet?
Вроде в Хэлпе написано как раз про это, но я не уверена, что правильно
все понимаю.


Ответить.


Попробуй так:


Вопрос 709:
От: netpilot@tut.by

Необходимо определить дату создания каталога. В справке по WinAPI
такая функция
отсутствует, есть только для файла. Может кто располагает кодом или
веб-ссылкой?


Ответить.


Попробуй так:


Вопрос 710:
От: Andrew

Существует ли функция преобразования определенного количества
секунд, прошедшего с момента 01.01.1970, в дату?


Ответить.


Попробуй так:


Вопрос 711:
От: Thomas Eagle

Я пытаюсь сделать динамическое заполнение DataSet с помощью компонент,
расположенных на DBCtrlGrid. После заполнения всех компонент в текущей
строке этот DBCtrlGrid  вместо того, чтобы создать новую строку и
переместить в нее курсор, передает фокус на первый компонент текущей
строки
(курсор, соответственно, тоже остается на месте). После повторного
выхода из
последней компоненты в текущей строке, DBCtrlGrid срабатывает правильно
и
создает новую строку. Таким образом, чтобы заполнить строку и перейти в
новую, необходимо два раза пройтись по всем компонентам, расположенным в
DBCtrlGrid. В примерах Delphi DBCtrlGrid работает так же.
Может быть есть хитрый способ заставить эту компоненту работать
правильно?
Если нет, подскажите - нет ли какой-нибудь другой аналогичной компоненты
(но
нормально функционирующей :) и где ее легко и быстро можно достать?


Ответить.


Попробуй так:


Вопрос 712:
От: Андронов Алексей

1.      Можно ли встроить свой пункт в PopUp меню Брузера. Например,
рядом с пунктом <Сохранить объект, как...> стоял бы мой пункт меню
<Скопировать ярлык в мою программу>? Если можно, то как это осуществить?
2.      Такой же, но только обратный вопрос: Как убрать из PopUp меню
Браузера свой пункт меню?


Ответить.


Попробуй так:


Вопрос 713:
От: NikK

Проект свыше 100 модулей, около 140 тыс. строк object Pascal на Delphi6.
Не заметил, как в одном их основных модулей (его объем около 23 тыс.
строк) вдруг отказал отладчик, а именно: могу установить точку
прерывания, но отладчик его игнорирует, аналогично по клавише F4. В
других модулях все как-будто без изменений.
Еще одна странность - при передаче управления на процедуру в отказавшем
модуле отладчик останавливается на произвольной строке кода, совсем не
связанной с той процедурой, на которую было передано управление.
В откомпилированном EXE-шнике все будто-бы работает правильно, по
крайней мере ошибок программа не дает.


Ответить.


Попробуй так:


Вопрос 714:
От: mrph

Где мне найти исходники , программы ТЕСТ (контроль знаний)
Если можно то хоть ссылочку или инфу , плииз


Ответить.


Попробуй так:


Вопрос 715:
От: Shamashov

Например у нас есть 10 shape с именами shape1,shape2...,shape10.
Как поменять им свойства в цикле?
for i:=1 to 10 do begin
shape(номер i).brush.color:=clred;
end;


Ответить.


Попробуй так:


Вопрос 716:
От: Горщарук Владимир Александрович

Хочу спросить народ, может кто знает сетевые WinAPI
функции для "зашаривания" ресурсов, разумеется с
добавлением пользователей взятых из домена Windows NT
Также хочу знать как "расшаривать" - т.е. снимать доступ
с этих ресурсов
Использовать функцию Command.com - Net Share ...   - не годится :-(
Вызов функций будет происходить на платформах Win9x/Win2000
Если есть принципиальные отличия в вызовах функций или в их
описании, то расскажите об этом по подробнее.


Ответить.


Попробуй так:


Вопрос 717:
От: ura

 
У меня на TQuickReport лежит TQRLabel. При печати возникают странности.
У меня несколько машин в сети и один принтер, так вот на экране
TQuickReport
выглядит на всех машинах одинаково, а вот на на принтер выходят
совершенно
разные страницы. Такое чуство, что при печати меняются характеристики
шрифта
и текст в TQRLabel выводится не полностью (обрезается строчка или две).
Подскажите, что мне с этим делать.
AutoSize и AutoStretch - False;
 


Ответить.


Попробуй так:



* В БАЗУ OFFLine * * ВСЕ ВОПРОСЫ * * СПРОСИТЬ * * ПРЕДЛОЖИТЬ * * АРХИВЫ * * СКОЛЬКО НАС *

2. Отвеченные вопросы.

Вопрос 693:
От: d

Чем объяснить такую ситуацию? Я по таймеру создаю(Create) TTable и
перед созданием чищу(Free) предыдущий. И когда я смотрю занимаемую приложением
память, то она все время растет, т.е. получается память не освобождается.
В чем проблема?


Ответить.

Попробуй так:
Вроде не должно такого быть! Попробуй так:


Вопрос 694:
От: LYNX

Идея такова: делает случайное число от 1 до 100 притом не
повторяющиеся. А случается так, что оно повторяется. Подскажите что я
недоделал.
var
  si    : boolean;
  s     : integer;
  r     : integer;
  i     : integer;
  a     : array[1..100] of integer;
  st    : string;
procedure TForm1.FormCreate(Sender: TObject);
begin
  randomize;
  S:=0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
  si:=false;
  s:=s+1;
  if s>100 then s:=0;
  r:=random(99)+1;
  if s>1 then
  begin
    for i:=1 to s-1 do
    begin
      if a[i]=r then
      begin
        si:=true;
        break;
      end
      else continue;
    end;
  if not si then
  begin
    a[s]:=r;
    str(a[s]:3,st);
    if StrToInt(st)<=100 then
    begin
      Caption:=st;
    end;
  end
  else a[s]:=r;
  end;
end;


Ответить.

Попробуй так:
Собственно с кодом все в порядке. Вы не учли, что случайные
события в природе, как и в теории вероятности, не гарантируют неповторяемости. В вашем случае используется закон нормального распределения, говорящего лишь о том, что все значения из выбранного диапазона имеют одинаковую вероятность появления. На самом деле этот закон будет полностью подтверждаться практикой, только при бесконечном числе опытов. Вам нужно в код только добавить проверку на уникальность, ну к примеру используя дополнительный массив на 100 элементов. Записывать в него новое значение в позицию с индексом равному самому значению, но только после проверки, а не заполнена ли она ранее. Если да, то повторяется вызов r:=random(99)+1. Можно, конечно, проверять и по содержимому вашего массива a[], просто перебирая уже записанные в него значения. Кстати, лучше будет s:=s+1 заменить на inc(s). Попробуй так:
Давай разберем алгоритм процедуры при нажатии на кнопку Button1. Сначала в цикле определяется есть ли значение в массиве А. Если нет, то заносим значение в массив плюс некие действия, иначе ... тоже заносим значение в массив. Здесь и появляются дубли. Для упрощения поиска введи массив В размерности как А, который показывает было или не было значение r. Попробуй так:
Лучше будет так: var s: integer; a: array[1..100] of integer; procedure TForm1.Button1Click(Sender: TObject); begin Caption:=IntToStr(a[s]); Inc(s); if s>100 then s:=1; end; procedure TForm1.FormCreate(Sender: TObject); var i,r,t: integer; found: boolean; begin Randomize; for i:=1 to 100 do begin // формируем 100 случайных чисел repeat r:=Random(100)+1; // значение лежит в диап. [1..100] found:=FALSE; for t:=1 to i do // проверяем наличие r в предыдущих элементах if a[t]=r then begin found:=TRUE; // Нашли повтор, сгенерируем r заново Break; end; until not found; // повторять цикл, пока i-й элем. // не станет уникальным a[i]:=r; // ОК, r - уникальный end; S:=1; // теперь имеем 100 неповторяющихся чисел end; Попробуй так:
У тебя стоит if для проверки флажка si. Если флажок установлен, у тебя должна быть следующая попытка получить случайное число - то есть, здесь лучше обнять это циклом repeat...until. А у тебя на else (то есть, когда нашлось совпадение чисел) стоит просто присвоение этого числа в элемент массива, то есть, действие, прямо противоположное тому, что тебе надо. Попробуй так:
Во-первых, уж сильно у Вас "крутой" алгоритм получился - я бы советовал его упростить, убрав лишние операторные скобки и освободившись от операторов типа Continue. Во-вторых, все сгенерированные числа я бы складывал в переменную множественного типа. Тогда проверка вновь сгенерированного числа на его существование упростилась заметно упрастится. А если все-таки надо еще это число и в массив очередным номером записывать, то делаем так: var a :array [1..100] of Byte; r,i :Byte; b :set of Byte; begin b := []; i := 1; repeat r := Random(100)+1; if not (r in b) then begin Include(b, r); a[i] := r; Inc(i); end; until i = 101; end; Попробуй так:
Все просто. 1) При s=101 будет сброс s в ноль, соответственно проверка на s>1 даст False и выполнится то, что идет после else, т.е. a[s]:=r, точнее a[0]:=r, поскольку s=0. А это не есть хорошо, массив объявлен как array[1..100]. Следующий вызов процедуры даст сходную картину: s=1, if s>1 then... else a[s]:=r т.е. a[1]:=r. Никаких сравнений в данной ситуации не производится. 2) Код: if s>1 then begin for i:=1 to s-1 do begin if a[i]=r then begin Здесь ты проверяешь массив от 1 до s-1, но у тебя остались данные в массиве от предыдущего заполнения, поэтому могут быть совпадения. Хотя, быть может так и было задумано. Я бы сделал так: procedure TForm1.FormCreate(Sender: TObject); begin randomize; s:=0; end; procedure TForm1.Button1Click(Sender: TObject); begin si:=false; s:=s+1; if s>100 then s:=1; //Теперь мы не залезем в a[0] и в r:=random(99)+1; //любом случае проверим массив for i:=1 to s do //если сделаем "to 100", а не "to s" begin if a[i]=r then begin si:=true; break; end else continue; end; if not si then begin a[s]:=r; str(a[s]:3,st); if StrToInt(st)<=100 then Caption:=st; end end; Попробуй, сорри если наглючил - торопился и код не проверил. Но вроде должно работать... Попробуй так:
Ты просто не тот алгоритм выбрал. По-моему у Кнута я видел такой алгоритм. Допустим надо получить n случайных чисел с условием их уникальности в диапазоне от 1 до m генерируешь массив из n элементов в заданном диапазоне с условием нарастания. То есть так, чтобы следующее число было хотя бы на единицу больше другого. Таким образом выполняется условие уникальности. А потом сопоставляешь каждому числу случайное число. То есть берешь еще один такой же массив и заполняешь его случайными числами. И сортируешь оба массива сравнивая элементы второго как ключи. Все. Теперь у тебя в первом массиве будет случайная и уникальная последовательность. :-) Пока писал придумал еще один алгоритм, используя хеш функцию и связанные списки. Тут вариантов множество. Если не до конца разберешься, пиши. :' Попробуй так:
Зачем так сложно? По моему для таких случаев придумали множества (set). И проверять множество легче (if i in Myset) и добавлять в него...


Вопрос 695:
От: Alexandr Gratchenko

фдч> Вы спрашивали:
фдч> ****************************************
фдч> С компонентом MaskEdit.
фдч> Для ввода чисел до 5 знаков использую маску '99999;0;_'
фдч> Но при работе эта маска пропускает не только цифры, но и пробелы,
если
фдч> перемещаться по полю клавишами со стрелками.
фдч> Может кто-нибудь знает как побороть этот глюк?
фдч> Soft Delphi 5.0
фдч> ****************************************
фдч> Появились ответы:
фдч> Попробуй так:
фдч> Попробуй так: 00000;0;0 Эта маска требует обязательного ввода 5 цифр, а мне нужно вводить от 0 до 5 цифр фдч> только смотри не MaskEdit1.Text, а MaskEdit1.EditText.

Ответить.

Попробуй так:
используй маску '99999;1;0' и свойство MaskEdit1.EditText О
твет: попробуй использовать компонет currencyEdit. Он есть в RX-е и DevExpress-е. DecimalPlaces=0 DisplayFormat=0 Тогда правда остается возможность ставить "-" и ",". Попробуй так:
Можно написать обработчик OnKeyPress, в котором фильтруется нажатие клавиш. Попробуй так:


Вопрос 696:
От: Dr.Shadow[X-RayS]

Здравствуйте,недавно скачал из 2 раздела компонент
"Управление DOS окнами". Пожалуйста скажите где можно найти внятное
объяснение как енто работает или на худой конец какой нибудь
исходничек, а то у меня все это как-то коряво работает, да и вообще
c некоторые DOS - окнами это вообще не работает. Не считайте
ламером (программирую третий год),но нужно работать с DOS-программой.
Кстати я уже задавал вопрос (679) и думаю, что этот компонент мне
поможет. Просто залез в хелпу и там такое про консоли.что аж страшно
стало, поэтому решил воспользовать готовым.
PS: вы посоветовали мне скачать
    http://iont.virtualave.net/pub/upxshell/upxsource.exe
    а нельзя ли исходничек посмотреть как все это работает


Ответить.

Попробуй так:


Вопрос 697:
От: Stanislav

как из edit/memo взять текст и перенести в bmp'шку например 256х256 с
белым фоном.
хотелось бы услышать (прочитать:) популярно.
Можно в виде кода с пояснениями, т.к. с такой проблемой встречаюсь в 1й
раз.
 


Ответить.

Попробуй так:
Есть два способа: 1 - Ламерский, 2 - Стандратный 1. То что
на канве edit или memo копируй в канву bitmap'a 2. Требуемый текст функциями win32 API или уже упрощенными функцими дэльфовской канвы рисуй на ее поверхности. Но здесь есть много проблем, надо размеры шрифта определять и учитывать много свойств самой канвы, и много тут камней. Но вопщем советую что нить по win32API-проганью почитать и как им работать с графикой. Зная их - мона много еще чего делать. Попробуй так:
Создаем переменную TBitMap, устатавливаем размеры ее канвы, рисуем текст, сохраняем ее в файл - и все дела! -)))))) Теперь подробнее: var b :TBitMap; begin b := TBitMap.Create; b.Width := 256; b.Height := 256; width b.Canvas do begin Brush.Color := clWhite; Rectangle(0, 0, b.Width, b.Height); Font.Size := 12; TextOut(5, 5, edt.Text); end; b.SaveToFile('a.bmp'); end: Попробуй так:
Ниже приведен код процедуры для записи изображения любого элемента управления. Использовать, например, так: GrabControl(Memo1,'memo_pic.bmp'); GrabControl(Edit1,'edit_pic.bmp'); ---------------------- procedure TForm1.GrabControl(const aControl: TControl; const FileName: string); var B: TBitmap; srcRect,dstRect: TRect; begin B:=TBitmap.Create; with dstRect do begin Left:=0; Top:=0; Right:=aControl.Width+1; Bottom:=aControl.Height+1; end; with srcRect do begin Left:=aControl.Left; Right:=aControl.Left+aControl.Width; Top:=aControl.Top; Bottom:=aControl.Top+aControl.Height; end; B.Width:=aControl.Width; B.Height:=aControl.Height; B.Canvas.CopyRect(dstRect,Self.Canvas,srcRect); B.PixelFormat:=pf8bit; // сохранить с палитрой 256 цветов B.SaveToFile(FileName); B.Free; end; Попробуй так:
Пример, используя компоненту TImage (Она должна быть на форме): Image1.Canvas.TextOut(X,Y,Edit1.Text); Image1.Picture.SaveToFile(FileName); Попробуй так:


Вопрос 698:
От: lysenko

Вот сидел, ломал голову над тем, как данные их xls (Excel) файла в
Paradox перегнать... Ну увидел я вобщем ADOTable все красиво,
понравилось, и тут
я понял что не знаю как получить список доступных таблиц.
В ADOTable.TableName находится список листов XLS файла, как этот список
в ComboBox, например, перегнать ?
Помогите хотя бы теорией...


Ответить.

Попробуй так:
Посмотри TADOConnection - у него есть методы вытаскивания т
акой информации Попробуй так:
Малость другое, но принцип тот же самый (я так загонял в комбо-бокс список полей в таблице): for i:=0 to Table1.FieldCount-1 do ComboBox1.Items.Add(Table1.Fields.Fields.FieldName); Может где и ошибся -- давно дело было, да и писал на память... Попробуй так:
'Посмотри TADOConnection - у него есть методы вытаскивания такой информации


Вопрос 699:
От: AL

Здравствуйте, я тут прикупил компакт с Delphi6, думаю юзать её в
свободное время, ну и на рассылку вашу подписался.
Что я ценю в рассылках — это вопросы и ответы. И не так вопросы и
ответы, как возможность самому задать вопрос и дать ответ.
Естественно, хочу попросить о некоторых вещах:
В Делфи я полный тормоз, но хотелось бы хоть как-то, хоть немного
в ней разобраться.
Вообще я умею немного программировать в Т-Паскаль и ПХП-скриптах.
Даже сайт свой есть (на PHP и MySQL работает).
Так вот, хочу спросить, не могли бы вы подсказать, где в И-нете найти
учебник какой-то по Делфи, прочитав который, я смог бы понять хотя бы
концепцию создания программ в Делфи? Особенно, чтобы на каких-то
примерах обучиться?
В общем, что-то вроде "Первые шаги в Делфи" или что-то похожее.
Надеюсь, подскажете.


Ответить.

Попробуй так:
Зря ты так. Лучше вижул СИ++ учи. Я сам щас жалею что в иечен
ии 3-х лет тока дэльфи изучал. Щас приходится писать гибкие проги. И дэльфов тут маловато будет. И приходится "извращаться" в дэльфи чтоб получить такие же гибкие как в сях проги. Но у дэльфов один большой плюс - быстрота и легкость написания. Если я тебя не разубедил - то инфы в нэте валом по delphi. набери в яндэксе "+delphi +первые +шаги" или что нить подобное - тучу ссылок получишь. И кстати 6-ой дэльфи требует минимум 128 оперативки и мощный комп для нормальной работы. Лучше 3-ю или 4-ую дэльфу используй. Между всеми дэльфями начиная с 3-ей существенной разницы нет. И прчем каждая новая версия компелит экзэшник на 100кб больше чем предидущая. Я лично использую 3-ию. Еще не было сильной необходимости прогать в какойто другой. Попробуй так:
Есть такой сайт "Королевство Делфи".... в поисковике любом напиши ... (ссылку не даю, так как считаю что такие вещи должен каждый сам находить) P.S. Есть куча книг в магазине за углом ;) Black_Rey Попробуй так:
По вопросу о литературе по программированию. Есть такой сайт http://www.emanual.ru . Так вот там собрано достаточное количество различной документации не только по программированию на Delphi, но и по программированию вообще. Также там есть литература по различной околокомпьютерной и околопрограммистской тематике. Рекомендую посетить. Попробуй так:


Вопрос 700:
От: strannik

У меня такой вопрос как из своей программы получить текст кнопки
или меню из другой программы например file-open и изменить на свой:


Ответить.

Попробуй так:
Получи хэндл окна, над которым хочешь поизвращаться, потом пр
огой spy++ узнай ID интересующей кнопки, и есть какаято функция (не помню), в которой имея эти данные мона делат то что ты хотел. Поисчи эту функцию в хэлпе дэльфи (win32.hlp). Если позарез надо. Я могу дома поискать свой исходник (tara@hbr.kht.ru), тока там не меняется текст, а нажимается, исчезает, появляется кнопка из другой проги. Но суть одна. Попробуй так:
Смотри MS SDK Help, поставляется с Дельфой... Получить: int GetWindowText( HWND hWnd, // handle of window or control with text LPTSTR lpString, // address of buffer for text int nMaxCount // maximum number of characters to copy ); Изменить: BOOL SetWindowText( HWND hWnd, // handle of window or control LPCTSTR lpString // address of string ); Как получить нужный HWND, зависит от ситуаци. Могут помочь: GetForeGroundWindow, GetTopWindow и т.п. Попробуй так:


Вопрос 701:
От: MX

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


Ответить.

Попробуй так:
В общем виде "Alter Table" - есть такой оператор в SQ
L но форматы значительно различаются для разных баз данных - загляните в хэлп по своей базе на эту комманду Попробуй так:
Вообще-то зависит от базы данных. А так, SQL-оператор ALTER TABLE



* В БАЗУ OFFLine * * ВСЕ ВОПРОСЫ * * СПРОСИТЬ * * ПРЕДЛОЖИТЬ * * АРХИВЫ * * СКОЛЬКО НАС *



3. Наша база OFFLine взаимопомощи.
Что на сегодня у нас имеется :
Документы Компоненты Программы Проекты
1. От Валентина Озерова
2. 32 Урока По Делфи4(текст)
3. Непрямоугольные формы
4. CGI на Делфи
5. Справочник по Делфи5
6. От Олега Малышева
7. Перекодировки
8. WinApi
9. От Алексея Малинина
10. 32 Урока По Делфи4(рисунки)
11. МИДАС

1. Выполнение Матем Выражений
2. Управление DOS окнами
3. Rx6_Lib
4. Rx6_Help(rus)
5. Delphi_X
6. Delphi_X_Help(eng)


1. Текст под Углом
2. Управляем WinAmp
3. Печать Графики
4. Заменить Строки

Если Вам есть что послать в базу OFFLine то просто в теме письма укажите 'baseoffl' приложите аттач и отправьте письмо. В связи с ограничением размера письма не делайте аттачи более 1500кб.
А ты уже поделился с товарищами чем-нибудь интересным?
Если хотите что-то заказать то пошлите по почте этот запрос , а после двоеточия поставьте две цифры разделенныe запятой, например : ':2,1' - это значит, что вы хотите заказать из второй колонки(Компоненты) первый элемент.
Есть небольшое ограничение - в одном письме можно запросить только что-то одно (обрабатывается только первая строка тела письма)!

Помните! Структура каталогов поддерживается только до очередного выпуска рассылки! Поэтому при запросе всегда берите данные из последнего выпуска!

Если Вы хотите как можно скорее получить ответ на свой вопрос, то
укажите в теме письма - delphiV,иначе письмо будет прочитано значительно
позже, если же у вас есть предложения то в теме письма укажите delphiP.

Для интересующихся - немного о себе. Работаю на
железнодорожном транспорте ведущим программистом.
Основные мои разработки - это сбор и доставка клиентам
информации о вагонах и поездах: где находится(по России),
куда едет. В связи с этим программировал для e-mail,Socket,БД,ISAPI.

За сим прощаюсь - скорых Вам и качественных программ.

Автор рассылки - Дмитрий.
ICQ - 89533941.

* В БАЗУ OFFLine * * ВСЕ ВОПРОСЫ * * СПРОСИТЬ * * ПРЕДЛОЖИТЬ * * АРХИВЫ * * СКОЛЬКО НАС *



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное