Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi (все версии) - часть 4

Автор: bornbill
Дата сообщения: 07.06.2008 19:44
req: компоненты для работы с pop3\smtp(turbo delphi)
Заранее благодарен. за советы какие использовать лучше проще и надёжней потомучто в этом обрезке нет ничего связанного с почтой.
Автор: Jokerjar79
Дата сообщения: 07.06.2008 19:55
В бесплатной версии turbo delphi нет возможности установки компонентов. Думаю, нужно искать модули/классы
Автор: RA Alex
Дата сообщения: 07.06.2008 21:00
Помогите решить задачу Симплекс методом. НЕ могу паписать целевую функцию и ограничения. Кто может Пришлите готовую прогу, а то сессия горит!



7. Завод выпускает изделия трех моделей. Для их изготовления используются два вида ресурсов (А и В), запасы которых составляют 4000 и 6000 единиц. Расход ресурсов на одно изделие каждой модели приведен в таблице.
Ресурс    Расход ресурса на одно изделие данной модели
    1    2    3
А    2    3    5
В    4    2    7
Трудоемкость изготовления изделия модели 1 вдвое больше, чем изделия модели 2 и втрое больше, чем изделия модели 3. Численность рабочих завода позволяет выпускать 1500 изделий модели1. Анализ условий сбыта показывает, что минимальный спрос на продукцию завода составляет 200, 200 и 150 изделий моделей 1, 2 и 3 соответственно. Однако соотношение выпуска изделий моделей 1, 2 и 3 должно быть 3 : 2 : 5. Удельные прибыли от реализации изделий моделей 1, 2 и 3 составляют 30, 20 и 50 долл. соответственно. Сформулируйте для данных условий задачу определения объемов выпуска изделий каждой модели, при которых прибыль будет максимальной.
Автор: Skipper
Дата сообщения: 07.06.2008 21:13

Цитата:
бесплатной версии turbo delphi нет возможности установки компонентов. Думаю, нужно искать модули/классы


Помоему интузиастам, все таки удалось устанавливать в него компоненты...
Автор: Stylik
Дата сообщения: 08.06.2008 00:43
Помогите плиз разобраться!
Имеется база на MySQL 5! Нужно из Delphi 7 в Fast report 4 создать отчёт! ПРоблема заключается в следующем!
Когда кидаю в фастрепорте MasterData, предварительно сделав запрос к нужной таблице, и на него Text object, то при просмотре отчёта выдаёт ошибку:
---------------------------
Error
---------------------------
The following error(s) have occured:

Cannot use the same dataset for Report.DataSet and Band.DataSet


---------------------------
ОК
---------------------------

Если просто связываю запрос с Text object без MasterData, то отображает значение данного поля! Ка как заставить фаст репорт работать с таблицй, поделитесь опытом?!
Если есть какие-то ссылки на литературу в связке Delphi + MySQL + Fast report (т.к. использую именно эти) , буду очень благодарен!
Автор: Ramazan
Дата сообщения: 09.06.2008 06:12
Erazer
Странно. Набросал демку, файлы идут перед папками, сортировка A->Z и в папках и файлах (лат + рус)
Автор: Ramazan
Дата сообщения: 09.06.2008 09:55
WSWCORP
Так работает.
AnalogXP
Разбей информацию - пусть первое дерево работает ТОЛЬКО с категориями (ссылок в нем не будет), а второе - только со ссылками. Тогда правка будет затрагивать только или первое, или второе дерево.

Добавлено:
Stylik
Используй или Report.DataSet, или Band.DataSet, но не одновременно. В твоем случае, видимо, имеет смысл оставить только Band.DataSet.
Автор: Erazer
Дата сообщения: 10.06.2008 12:53
удалено.
Автор: Antananarivu
Дата сообщения: 10.06.2008 14:51
Delphi 7. Indy по умолчанию с 7 Delphi.
Пишет ошибку: Max Line Length Exceeded.
Кто-нибудь сталкивался?

Добавлено:
Если кто сможет помочь, могу дать конкретный код, пароль на почту откуда я скачиваю... Все демки работы Indy с интернета дают ту же ошибку. Ну не может же быть чтобы Indy был такой глючный что пару писем принять не может.
Помогите, пожалуйста.
Автор: OdesitVadim
Дата сообщения: 10.06.2008 15:33
Antananarivu
я в своё время мучился с инди при попытках получить/отправить почту. Потом надоело и попробовал Synapse (http://synapse.ararat.cz/doku.php)
Автор: Antananarivu
Дата сообщения: 10.06.2008 15:47
OdesitVadim
Это мне все заново начинать... )
А Синапс точно не глючит? ))


Добавлено:
Вообще не хотелось бы, просто хочу найти человека кто писал почтовый клиент с помощью Indy и у кого все работает, пусть он меня носом ткнет.
Автор: OdesitVadim
Дата сообщения: 10.06.2008 17:18
Antananarivu
"неглючных" нет. но эти работают достаточно хорошо. Вложения разруливают хорошо. И вообще то это не компоненты, а бибилиотека классов

Ну люди пишут, демки есть посмотри, может что то найдёшь.
Автор: Maks150988
Дата сообщения: 11.06.2008 00:54
Привет. Раньше тут проскакивал кусок кода для отображения иконки в заголовке MessageBox. Не могу найти нужную страницу. Если не сложно, продублируйте сюда или в личку.
Автор: Dimoniusis
Дата сообщения: 11.06.2008 07:57
Antananarivu Indy не просто глючный а очень глючный Бился с ним достаточно долго - перепробовал все версии - "чудеса" продолжались и множились. Перешел на ICS - http://www.overbyte.be/frame_index.html - чудеса все ушли, удобства прибавилось...
Автор: PowerChute
Дата сообщения: 11.06.2008 09:44
Dimoniusis

Цитата:
Antananarivu Indy не просто глючный а очень глючный Бился с ним достаточно долго - перепробовал все версии - "чудеса" продолжались и множились. Перешел на ICS - http://www.overbyte.be/frame_index.html - чудеса все ушли, удобства прибавилось...

А где взять сие чудо? В копилке не нашел.
Автор: greenpc
Дата сообщения: 11.06.2008 11:44
PowerChute
на сайте
_http://www.overbyte.be/frame_index.html
Автор: Ivan_Taiga
Дата сообщения: 11.06.2008 12:16
Существуют ли бесплатные варианты лицензирования Delphi (c 6 cверсии до Delphi 2007)?
Автор: OdesitVadim
Дата сообщения: 11.06.2008 12:31
Ivan_Taiga
да, TurboDelphi
также можно посмотреть на Lazarus (lazarus.freepascal.org)
Автор: Ivan_Taiga
Дата сообщения: 11.06.2008 13:42
Про Lazarus слышал что он не очен стабилен... Может это и не так конечно, но хотелось бы чего-нить другого.


Цитата:
да, TurboDelphi

А где можно скачать Turbo Delphi? И уточнить на счёт его лицензии...
Автор: OdesitVadim
Дата сообщения: 11.06.2008 13:50
Ivan_Taiga
как ни странно - http://turbodelphi.ru/.
Поискать ссылку на скачку можно на этой странице http://www.turboexplorer.com/downloads
Правда пишут, что его сняли с поставок. Лицензия на него получалась на сайте CodeGear.com - бесплатная регистрация и присылают ключ на 100 лет, хватит.
Можно делать комерческие приложения и продавать. Правда нельзя устанавливать допкомпоненты, обходы созданы, но это уже нарушение лицензии.
Автор: Maks150988
Дата сообщения: 12.06.2008 12:14
Есть код вида:


Код: program sample;

uses
Windows, Messages, CommCtrl;

{$R dialog.res}

const
RC_DIALOG = 101;
RC_ICON = 101;
ID_LISTBOX = 101;

var
hApp : Integer;
ListWnd : THandle;
ListIco : hIcon;
ListDC : hDC;
RectLB : TRect;
TextLB : array [0..$400] of Char;

function AppFuncProc(hWnd : HWND; uMsg : UINT; wParam, lParam : Integer) : BOOL; stdcall;
var
I : Integer;
begin
Result := TRUE;

case uMsg of

WM_MEASUREITEM :
case wParam of
ID_LISTBOX :
begin
with PMEASUREITEMSTRUCT(lParam)^ do
begin
itemHeight := 18;
end;
end;
end;

WM_DRAWITEM :
case wParam of
ID_LISTBOX :
begin
ListWnd := PDRAWITEMSTRUCT(lParam).hwndItem;
RectLB := PDRAWITEMSTRUCT(lParam).rcItem;
ListDC := PDRAWITEMSTRUCT(lParam).hDC;
if (Integer(PDRAWITEMSTRUCT(lParam).ItemID) > - 1) then
begin
ListIco := LoadImage(hInstance, MAKEINTRESOURCE(RC_ICON), IMAGE_ICON, 16, 16, 0);
if ((PDRAWITEMSTRUCT(lParam).itemState and ODS_SELECTED) <> 0) then
begin
FillRect(ListDC, RectLB, GetSysColorBrush(COLOR_HIGHLIGHT));
SetBkColor(ListDC, GetSysColor(COLOR_HIGHLIGHT));
SetTextColor(ListDC, GetSysColor(COLOR_HIGHLIGHTTEXT));
end
else
begin
FillRect(ListDC, RectLB, GetSysColorBrush(COLOR_WINDOW));
SetBkColor(ListDC, GetSysColor(COLOR_WINDOW));
SetTextColor(ListDC, GetSysColor(COLOR_WINDOWTEXT));
end;
DrawIconEx(ListDC, RectLB.Left + 2, RectLB.Top + 1, ListIco, 16, 16, 0, 0, DI_NORMAL);
RectLB.Left := RectLB.Left + 22;
SendMessage(ListWnd, LB_GETTEXT, PDRAWITEMSTRUCT(lParam).ItemID, LongInt(@TextLB[0]));
DrawText(ListDC, @TextLB[0], - 1, RectLB, DT_SINGLELINE or DT_VCENTER);
DeleteObject(ListIco);
end;
if ((PDRAWITEMSTRUCT(lParam).itemState and ODS_FOCUS) <> 0) then DrawFocusRect(ListDC, PDRAWITEMSTRUCT(lParam).rcItem);
end;
end;

WM_INITDIALOG :
begin
hApp := hWnd;
for I := 0 to 7 do SendMessage(GetDlgItem(hApp, ID_LISTBOX), LB_ADDSTRING, 0, Integer(PChar('ListBox String Ownerdraw !!!')));
end;

WM_DESTROY, WM_CLOSE : PostQuitMessage(0);

else
Result := FALSE;
end;
end;

begin
InitCommonControls;
DialogBox(hInstance, MAKEINTRESOURCE(RC_DIALOG), 0, @AppFuncProc);

end.
Автор: OdesitVadim
Дата сообщения: 12.06.2008 12:44
Maks150988
Сам шрифт не такой как надо? толстый и большой? (о том, что там не те буквы, я молчу)
Функция DrawText просто по умолчанию берёт шрифт где то с глубин и он не сопадает по кодировке. вот здесь http://msdn.microsoft.com/en-us/library/ms533909(VS.85).aspx описана эта функция. Когда то мучился с этим, кажется флаг DT_INTERNAL помог.
Автор: Maks150988
Дата сообщения: 12.06.2008 13:20
Сам диалог такой:

Код: 101 DIALOG 0, 0, 210, 110
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
CAPTION ""
LANGUAGE LANG_RUSSIAN, 0x1
FONT 8, "Tahoma"
{
CONTROL "", 101, LISTBOX, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_NOINTEGRALHEIGHT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP, 10, 5, 195, 92
}
Автор: OdesitVadim
Дата сообщения: 12.06.2008 13:41

Цитата:
И как понять что там не те буквы?

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

Добавлено:
Собрал у себя пример. вместо строк отображает строку ":@"

Добавлено:
Думаю проблема в строке
SendMessage(ListWnd, LB_GETTEXT, PDRAWITEMSTRUCT(lParam).ItemID, LongInt(@TextLB[0]));
Эта строка не возвращает содержимое элемента. по крайней мере, отладчик так показал
Автор: Maks150988
Дата сообщения: 12.06.2008 15:02
OdesitVadim
Если таким макаром в ComboBox установить стиль CBS_OWNERDRAWVARIABLE, то такой метод прорисовки работает. Только там надо SendMessage(Handle, CB_GETLBTEXT, PDRAWITEMSTRUCT(lParam).ItemID, LongInt(@CbxPC[0])), С ListBox не получается. Хотелось бы найти решение этой проблемы. Раз отладчик показад что строка ничего не возращает, то я попробовал указать явно пукнт в списке, с которого надо получитьб текст. Тоже не получилось. Через TextOut вообще не получилось ничего вывести.

Добавлено:
Песец!!! Добавил к ЛистБоксу стиль LBS_HASSTRINGS и проблема исчезла...
=)
Автор: Erazer
Дата сообщения: 14.06.2008 19:53

Код:
// примем то что пришло через Drag&Drop
procedure TfmMain.AddFile(const FileName: string);
var
FileSize: TFileInfo;
attrs: Integer;
begin
LboxSrcPath.Items.Add(FileName); // добавим-ка файл или каталог
// создадим массив файлов
FileList := TStringList.Create();
FileList.Clear;
//создадим массив размеров файлов
FileSizeList := TStringList.Create();
FileSizeList.Clear;
attrs := FileGetAttr(FileName); // получить атрибуты
// если это каталог
if attrs and faDirectory > 0 then
begin
mFileScan1.Filters.Clear;
mFileScan1.Paths.Clear;
mFileScan1.Paths.Add(FileName);
// если не все типы то тот который выбран
if cbFileTypes.Itemindex <> 0 then
begin
mFileScan1.Filters.Add(cbFileTypes.Text);
end
else
begin
// иначе все
mFileScan1.Filters.Add('*.ac3');
mFileScan1.Filters.Add('*.aac');
mFileScan1.Filters.Add('*.wv');
end;

NoOfFiles := 0;
mFileScan1.SubDirs := True;
// ShowMessage(FileName);
mFileScan1.Start;
//ShowMessage(FileName+' Finished');
end else
begin
// а если файл...
FileList.Add(FileName);
// добавляем текущий файл в список
FileSize := ReadFileInfo(FileName);
// получаем размер файла в байтах.
FileSizeList.Add(IntToStr(FileSize.Size)); // список размеров найденных файлов в байтах
// размер текущего файла в байтах
// добавляем размер текущего файла в список
FillVTVWithFiles(FileList);
end;

FileList.Free;
FileSizeList.Free;
end;

procedure TfmMain.mFileScan1Ready(Sender: TObject; Aborted: Boolean;
SearchResult: TStringList);
begin
// ShowMessage('started');
FillVTVWithFiles(SearchResult);
VT.FullExpand; end;
Автор: Frodo_Torbins
Дата сообщения: 14.06.2008 20:55
Erazer
Может Application.ProcessMesages поставить вместо ShowMessage?
Автор: Maks150988
Дата сообщения: 15.06.2008 10:49
Заметил одну ошибоку в прорисовке ЛистБокса. Если нажать на пункт в списке и начать елозить по списку курсором вверх-вниз при нажатой левой кнопке мыши, то через несколько секунд иконки у пунктов пропадают и остается только текст. С чем это может быть связано? В кривой прорисовке пунктов?
Автор: ShIvADeSt
Дата сообщения: 16.06.2008 05:45
Maks150988
есть более простой способ перекрасить ЛистБокс.

Цитата:
The WM_CTLCOLORLISTBOX message is sent to the parent window of a list box before Windows draws the list box. By responding to this message, the parent window can set the text and background colors of the list box by using the given display device context handle.

WM_CTLCOLORLISTBOX
hdcLB = (HDC) wParam; // handle of list box display context
hwndLB = (HWND) lParam; // handle of list box


Parameters

hdcLB

Value of wParam. Identifies the device context for the list box.

hwndLB

Value of lParam. Identifies the list box.



Return Values

If an application processes this message, it must return the handle of a brush. Windows uses the brush to paint the background of the list box.

Default Action

The DefWindowProc function selects the default system colors for the list box.

Remarks

The WM_CTLCOLORLISTBOX message is never sent between threads. It is sent only within one thread.

я так делал, если ничего больше не надо рисовать.

Автор: decu2007
Дата сообщения: 16.06.2008 06:39
Доброго времени суток
Продскажите пожалуйста, где я могу скачать программу-Borland Delphi 2005 Architect Edition -извините, если пишу не туда можно ответ на ПМ или сюда

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Глобальные переменные в разных формах с++ builder 'a.


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.