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

» Вопросы по Delphi

Автор: Tualan
Дата сообщения: 20.01.2006 10:24
Подскажите плз., как можно перекомпилить сорцы Дельфи в Source\RTL, всё компилиться кроме Variants.pas, там эксепшн

[Fatal Error] Variants.pas(1024): Program or unit 'Variants' recursively uses itself

если скомпилить отдельно, то всё ок, но тогда неудобно дебагить, каждый раз надо прописывать путь к файлу Variants.pas. Судя по ошибке можуль ссылается сам на себя но это не так. Borland специально не позволяет перекомпилить его?
Автор: SergeBS
Дата сообщения: 20.01.2006 11:30
Tualan
Положи себе в папку проекта, добавь и компилируй. Можешь еще переименовать для большей крутизны
Автор: SERGE_BLIZNUK
Дата сообщения: 20.01.2006 11:30
eMASTER

Цитата:
Как в документе MS Word заменить некоторые слова на данные из таблицы Access'а?
Вообще какие-нибудь доки или статьи по работе с Word...


если ещё актуально, из некоторой другой веточки данного форума:

1)
Лучшая подобная вещица называется VK_Report. Бесплатная от автора VK_DBF
Влада Карпова. Шаблоны понимает, основной формат RTF. всё
бесплатно
_http://www.vlad-karpov.narod.ru/Components.html

2) от господина Sphinx333 (надеюсь он на меня не обидится за цитирование)
Сегодня в очередной раз попросили реализовать отчеты в Word... Уже
неоднократно перебирал все возможное - COM/OLE тяжело и меееедленно... RTF
самое то... из всех библ нравится одна - коммерческая... автор, по-моему,
давно забил... но работает-то она весьма недурственно (может есть лучше - не
все нашел... тады пожалуйста хинт - сорцы и работа под билдером строго
обязательны)!!! Решил вспомнить, т.к. без проблем всунул ее в 2006 билдер...
Это конечно не фаст, но все в отчете редактируемо самыми доступными
средствами...


Автор: dsk
Дата сообщения: 20.01.2006 14:05

Цитата:
Есть другой еще вопрос:
Написал вот такую простенькую процедурку

Поскипано
Pr.GetPrinter(Device, Driver, Port, hPrn);
ShowMessage(string(Device) + ' ' + string(Driver) + ' ' + string(Port));
end; // for
Pr.Free;
end;

Только вот почему то string(Driver) = '' и string(Port) = ''. Почему?

В хелпе написано что:
ADevice is a buffer that receives the device name of the current printer. This is the name that appears in the Print Manager (for example, "Epson FX-80"). It is not the printer model name.

ADriver is a buffer that receives the driver name for the current printer. Some versions of Windows do not use printer driver names, in which case this buffer is unused. On versions of Windows that support printer driver names, this is the name of a printer driver (usually 'WINSPOOL').

APort is a buffer that receives the port used by the current printer. It is not used on 32-bit versions of Windows, but is included for backward compatibility.
Если обобщить, то ADriver может и не использоваться, т.е. быть пустым, а APort вообще не используется.
Автор: Kr_Alex
Дата сообщения: 20.01.2006 16:07
dsk
Понятно
Автор: Kr_Alex
Дата сообщения: 23.01.2006 09:22
Хочу изменить поведение TListBox:
- при перемещении мыши, выделялся бы Item

Не подскажите в какую сторону копать?
Автор: ArtemiyUO
Дата сообщения: 23.01.2006 10:16
procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
iindex : integer;
begin
iindex := listbox1.ItemAtPos(Point(x, y), True);
if iindex <> -1 then listbox1.ItemIndex := iindex;
end;
Автор: samusev
Дата сообщения: 23.01.2006 17:31
Подскажите, плз, реализацию вывода "готовой" формы-заставки. Т.е. чтобы на SplashForm.Show - она показывалась уже с прорисованными TImage, TLabel и проч.

Дело в том, что очень некрасиво выглядит существующая реализация, когда сначала выводится серый квадрат, потом прорисоввывается картинка, потом текст крупным шрифтом и т.д. Ведь на самих Дельфях( как врочем на всем софте) - заставка показывается сразу вся - без временных задержек на прорисовку. Может с winAPI помудрить что-нить?

Автор: dyr farot
Дата сообщения: 23.01.2006 17:43
оно так и происходит...
ты, похоже, процесс как-то не так организовал. или у тебя "тяжелый" поток до отображения заставки стартует
Автор: Konstantin555Xaker
Дата сообщения: 23.01.2006 17:55
ЗАГОЛОВОК окна я получаю функцией GetWindowText
Как получить ТЕКСТ самого окна или определённого элемента?
Автор: samusev
Дата сообщения: 23.01.2006 18:09

Цитата:
или у тебя "тяжелый" поток до отображения заставки стартует


Не скрою - картинка почти 50 кб (маленькая, но 24bit цветности) - вот уж не думал, что так критично по памяти...

Вопрос частично (не не полностью решен)

Set TImage.IncrementalDisplay to true on large compressed images that take a long time to load or on images that may be altered by a computationally slow process. When IncrementalDisplay is true, partial renderings of the image are drawn periodically during slow operations such as loading. Set IncrementalDisplay to false to wait until the entire operation is complete before drawing the image.

For some classes of graphic objects, an OnProgress event occurs at various points during slow operations. If IncrementalDisplay is true, the OnProgress event occurs immediately after the approximate image is drawn. If IncrementalDisplay is false, OnProgress occurs but the image is not updated until the entire image has been loaded.

The default value for IncrementalDisplay is false.

Попробовал (true)- вроде бы быстрее - но всеравно ВИДНО прорисовку.

Кстати еще вопросик возник. Если в TImage грузить GIF - на старте - выдает ошибку чтения потока. на маленьких GIF - такого нет. а мой 49 кб. Кто что знает про это?


Добавлено:
Всем спасибо.

Решено.

сжатием а JPG до 13 кб + TImage.IncremrntalDisplay=true
Автор: stepan96
Дата сообщения: 23.01.2006 19:37
Здравствуйте коллеги!

Предложили написать диплом. Тема не помню, но суть следующая: разработка приложения в виде трехзвенной архитектуры.
Т.е. сервер БД - сервер приложений - клиенская часть. Необходимо разработать сервер приложений и клиентскую часть.
Причем: сервер приложений должен быть реализован в виде службы. Настройка сервера приложений должна быть выполнена в виде
консоли MMC (может быть получится и изменить этот пункт).

Теперь собственно вопросы: с чего начать? Посоветуйте необходимую литературу. Если кто сталкивался с реализацией таких
задач - помогите советом.

Спасибо заранее
Автор: dyr farot
Дата сообщения: 24.01.2006 11:50
http://www.rsdn.ru/Forum/Message.aspx?mid=191390&only=1
Автор: Lightosaur
Дата сообщения: 24.01.2006 17:33
Господа умные товарищи! Помогите!
Жизнь заставила изучать Делфи.
И вот всё было хорошо, пока не дошло до создания объектов собственного класса.
фрагмент программы (почти из учебника):
TMyObject = class (TObject)
MyField:integer;
function MyMethod:integer;
end;
При компиляции сообщение:
Unit1.pas(20): Unsatisfied forward or external declaration: 'TMyObject.MyMethod'
Шо такое?
Что только не делал. Не хочет создавать метод нового класса.
Спасайте от самоубийства!!!
Автор: OXDBA
Дата сообщения: 24.01.2006 17:42
Lightosaur
Поставь курсор мыши на MyMethod, затем нажми SHIFT+CTRL+C или клик правой кнопки мыши, пункт меню Complete class at cursor.



Добавлено:
Да, когда уведишь в секции implementation код

function TMyObject.MyMethod: Integer;
begin

end;
Подумай, Шо это такое?
Автор: YurikGL
Дата сообщения: 24.01.2006 21:31

Цитата:
Да, когда уведишь в секции implementation код

function TMyObject.MyMethod: Integer;
begin

end;
Подумай, Шо это такое?

Есть сильное подозрение, что этого он не обнаружит...


Цитата:
Lightosaur

Функцию описал, а тело кто определять будет?
Автор: Lightosaur
Дата сообщения: 24.01.2006 22:10
Спасибо друзья. Сегодня вы спасли, если не жизнь, то мою работу точно.
Автор: RostY
Дата сообщения: 25.01.2006 13:47
eMASTER

Цитата:
Подскажите, может кто знает...
Как в документе MS Word заменить некоторые слова на данные из таблицы Access'а?
Вообще какие-нибудь доки или статьи по работе с Word...


пример с исп. OLE из одного моего проекта:

procedure TForm1.Button1Click(Sender: TObject);
var
Word: Variant;
begin
Word := CreateOleObject('Word.Application');
Word.Documents.Open('C:\шаблон.doc');
Word.Visible := 1;
Word.Selection.Find.ClearFormatting;
Word.Selection.Find.Replacement.ClearFormatting;
word.Selection.Find.Text := Table1.FieldByName('WORDTEXT').AsString; //что ищем
word.Selection.Find.Replacement.Text := iFile.ReadString(table1.fieldByName('AIDASECTION').AsString,
table1.fieldByName('AIDAKEY').AsString,
table1.fieldByName('WORDTEXT').AsString); //текст для замены
word.Selection.Find.Forward := True;
word.Selection.Find.Wrap := $00000002;
word.Selection.Find.Format := False;
word.Selection.Find.MatchCase := False;
word.Selection.Find.MatchWholeWord := False;
word.Selection.Find.MatchWildcards := False;
word.Selection.Find.MatchSoundsLike := False;
word.Selection.Find.MatchAllWordForms := False;
word.Selection.Find.Execute(Replace:=$00000002);



Добавлено:
Bonivur

Цитата:
Нужна подсветка гитарных аккордов в тексте


_http://synedit.sourceforge.net/index.php
Автор: ladapilot
Дата сообщения: 25.01.2006 22:05
Помогите !
Чтобы было понятно поясню суть.
Есть база данных содержащая людей , т.е фамилию имя и т.д и фотографию.Как при редактировании записи изменить фотографию, если эта фотка предварительно загружена в компоненту Image?
form1.table1.edit;
????????? (чё здесь должно быть)
form1.table1.post;
Автор: sunduk4
Дата сообщения: 26.01.2006 05:57
ladapilot

какая база и как хранишь фотографии? если в блоб полях, то -
hттp://progers.net.ru/modules.php?name=Pages&pa=list_pages_categories&cid=23
Автор: RostY
Дата сообщения: 26.01.2006 08:26
Подскажите, как получить ROWID записи при использовании DOA. Написал

select tab1.rowid, tab1.* from tab1

все поля есть, ROWID нету.


Добавлено:
ladapilot

Цитата:
Как при редактировании записи изменить фотографию


вопрос
Цитата:
какая база и как хранишь фотографии?

остается открытым.

попробуй используй DBImage, настрой датасорс, датафилд,

form1.table1.edit;
DBImage.Picture.LoadFromFile('c:\pic.bmp');
form1.table1.post;
Автор: ArtemiyUO
Дата сообщения: 26.01.2006 10:29
попробуй для эксперемента
select rowid, fieldname from tab1
Автор: SERGE_BLIZNUK
Дата сообщения: 27.01.2006 02:48
RostY

Цитата:
Подскажите, как получить ROWID записи при использовании DOA. Написал


из рабочего проекта


Код:
function TApplicationServer.LockRecords(const stTableName, stRange: WideString): Double;
var
q: TOracleDataSet;
begin
q := TOracleDataSet.Create(self);
try
q.Session := osUserSession;
SetSQL('SELECT rownum FROM ' + FullTableName(stTableName) + ' WHERE ' + stRange + ' FOR UPDATE NOWAIT', q);
q.Open;
Result := q.RecordCount;
finally
q.Free;
end;
end;
Автор: RostY
Дата сообщения: 27.01.2006 09:13
SERGE_BLIZNUK

Я немного чайник, может поэтому не совсем понятно. Или ты меня не совсем понял.

Мне нужно именно ROWID, а не просто какую-то уникальную запись. Тот ROWID, который вижу в SQL-Plus, или при конекте к Ораклу через BDE.


Автор: Vitus_Bering
Дата сообщения: 27.01.2006 09:33
Господа, посоветуйте, пож-та, как можно быстро сравнить два StringList.
В каждом около 5000 строк.
Автор: RostY
Дата сообщения: 27.01.2006 10:07
если просто на "равно", "не равно", то
if StringList1.Text = StringList2.Text
Автор: Vitus_Bering
Дата сообщения: 27.01.2006 10:32
[q][/q]
Надо сравнить построчно StringList1 с StringList2, в случае несовпадения строка заносится в StringList_NoMatches.
Автор: ShamaN
Дата сообщения: 27.01.2006 11:05
Подскажите как jpeg изображение из blob поля можно показать в Image.
Помещаю в БД следующим образом:


Код:
if FileExists(dlgOpenFile.FileName) then

begin
Image1.Picture.LoadFromFile(dlgOpenFile.FileName);
DataSource1.DataSet.Edit;
BlobStream := DataSource1.DataSet.CreateBlobStream(
DataSource1.DataSet.FieldByName('FOTO'), bmWrite);
try
FileStream := TFileStream.Create(dlgOpenFile.FileName, fmOpenRead);
try
BlobStream.CopyFrom(FileStream, FileStream.Size);
finally
FileStream.Free;
end;
finally
BlobStream.Free;
end;
DataSource1.DataSet.Post;
Автор: LordMAD
Дата сообщения: 27.01.2006 11:36
ShamaN
Вопрос снят?

Добавлено:
Vitus_Bering

Цитата:
Надо сравнить построчно StringList1 с StringList2, в случае несовпадения строка заносится в StringList_NoMatches.

Сравнивай hash'ы строк. Если они совпадают - сами строки. Будет очень быстро, если правильно подберешь hash'ы.
Автор: Vitus_Bering
Дата сообщения: 27.01.2006 11:49
LordMAD
Спасибо за совет.
Если можно уточни по поводу hash'ей, как их подбирать и сравнивать потом.
Может пример кода, если есть.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Вероятность одинакового CRC32


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