» Вопросы по Delphi (все версии) - часть 4
V1s1ter
Установил, собрал, создал тестовый проект, положил пару компонент, откомпилил, запустил, ткнул несколько раз, закрыл дальфю, открыл дельфю, открыл тестовый проект, откомпилил, запустил, закрыл дельфю, открыл дельфю, удалил пакет из IDE, закрыл дельфю, открыл дельфю, собрал, установил, запустил тестовый проект...
Никаких ошибок, все отстроилось, все удалилось. Delphi7 Lite v7.3.2.3 build 8.1.
Поэтому и сижу на семерке, не рыпаюсь...
Установил, собрал, создал тестовый проект, положил пару компонент, откомпилил, запустил, ткнул несколько раз, закрыл дальфю, открыл дельфю, открыл тестовый проект, откомпилил, запустил, закрыл дельфю, открыл дельфю, удалил пакет из IDE, закрыл дельфю, открыл дельфю, собрал, установил, запустил тестовый проект...
Никаких ошибок, все отстроилось, все удалилось. Delphi7 Lite v7.3.2.3 build 8.1.
Поэтому и сижу на семерке, не рыпаюсь...
Xaoc666
Спасибо.
Если судитьпо нику, у Вас должно стоять хотябы CodeGear RAD Studio 2010 (Weaver)14.0.3449.21988.2
Спасибо.
Если судитьпо нику, у Вас должно стоять хотябы CodeGear RAD Studio 2010 (Weaver)14.0.3449.21988.2
brookson
Цитата:
В чем конкретно сложности? Обычная БД, ничего сверхъестественного. Несколько дочерних таблиц плюс основная. Если тебе надо готовое решение - то вряд ли у кого было точно такое же, хотя подобная база пишется за день максимум (если у заказчика есть готовый интерфейс вернее его представление).
delover
Цитата:
Unlocker это умеет делать. Плюс у меня где то валяются исходники модулей которые могут делать выгрузку библиотеки из памяти процессов. Если Unlocker не пойдет - то поищу.
Цитата:
Расписание. Запись клиента ведётся в таблицу, где есть:
- дата
- время начала
- время окончания
- к_кому_записан
- в какой кабинет записан
- фио клиента, телефон и т.д.
Кому-нибудь доводилось такое реализовывать?
В чем конкретно сложности? Обычная БД, ничего сверхъестественного. Несколько дочерних таблиц плюс основная. Если тебе надо готовое решение - то вряд ли у кого было точно такое же, хотя подобная база пишется за день максимум (если у заказчика есть готовый интерфейс вернее его представление).
delover
Цитата:
Подскажите пожалуйста, а есть ли таеок средство, чтобы когда я пишу dll эксперт для дельфи, чтобы мне было пофиг сколько раз было LoadLibrary? Пофиг сколько процессов это делало. Просто я сказал унлоад и делете файл. Можно ли так сделать и есть ли кардинальные средства? Експерты тема интересная, хотелось бы попробовать в реал-тайм.
Unlocker это умеет делать. Плюс у меня где то валяются исходники модулей которые могут делать выгрузку библиотеки из памяти процессов. Если Unlocker не пойдет - то поищу.
Возникла задача оптимизировать массив. Есть определенного размера массив данных типа Integer, нужно найти одинаковые значения элементов, сложить их и удалить дубликаты. Как это сделать наиболее эффективно?
Пример:
массив - 2 3 4 3
нужно - 2 6 4
Порядок значения не имеет.
Просто записей в массиве очень много, моя реализация выполняется очень долго и со сбоями. Хочу узнать ваши мнения.
Пример:
массив - 2 3 4 3
нужно - 2 6 4
Порядок значения не имеет.
Просто записей в массиве очень много, моя реализация выполняется очень долго и со сбоями. Хочу узнать ваши мнения.
dr1v3
Задача непонятна. Во-первых для оптимизации нужно четко представлять сферу применения кода, чтобы установить ограничения.. Каков разброс значений? Каков средний размер массива? Как часто выполняется эта процедура? Чем можно пренебречь - памятью, точностью? И вообще, может этого делать не надо, а копать нужно в другом месте?
Во-вторых не совсем понятно, что значит
Цитата:
Задача непонятна. Во-первых для оптимизации нужно четко представлять сферу применения кода, чтобы установить ограничения.. Каков разброс значений? Каков средний размер массива? Как часто выполняется эта процедура? Чем можно пренебречь - памятью, точностью? И вообще, может этого делать не надо, а копать нужно в другом месте?
Во-вторых не совсем понятно, что значит
Цитата:
и удалить дубликаты. Если это массив, а не список, то удалить его элементы - это либо выделение памяти нового размера, либо установка неких флагов "удаленный элемент". Какой из способов нужен?
Скажем, есть некий StringGrid с полями: имя, код, сумма. Что бы было понятнее обьясню на примере.
Вася 10 50.00
Петя 11 30.00
Женя 12 20.00
Володя13 10.00
Вася 10 40.00
Володя13 90.00
Петя 11 80.00
Таблицу нужно привести к виду
Вася 10 90.00
Петя 11 110.00
Женя 12 20.00
Володя13 100.00
Таких строк в таблице ~50 000. Вот тут как раз важна точность, память не критична, скорость выполнения важнее. Для удаления строк есть своя функция вида
Код: with SG do begin
if (RowToDelete>=0) and (RowToDelete<RowCount) then begin
for i:=RowToDelete to RowCount-2 do
Rows[i].Assign(Rows[i+1]);
RowCount:= RowCount-1;
end;
end;
Вася 10 50.00
Петя 11 30.00
Женя 12 20.00
Володя13 10.00
Вася 10 40.00
Володя13 90.00
Петя 11 80.00
Таблицу нужно привести к виду
Вася 10 90.00
Петя 11 110.00
Женя 12 20.00
Володя13 100.00
Таких строк в таблице ~50 000. Вот тут как раз важна точность, память не критична, скорость выполнения важнее. Для удаления строк есть своя функция вида
Код: with SG do begin
if (RowToDelete>=0) and (RowToDelete<RowCount) then begin
for i:=RowToDelete to RowCount-2 do
Rows[i].Assign(Rows[i+1]);
RowCount:= RowCount-1;
end;
end;
dr1v3
лично я реализовывал бы через in-memory dataset (kbmMemTable) -
1. создается таблица нужной структуры, нужные индексы для сортировки
2. добавляются записи из источника
3. в результате - таблица (dataset), который потом можно крутить как угодно - ввод и корректировка, расчет, аналитика, отчеты, графика. То, что ты показал в примере - простейший отчет с группировкой
50000 записей для kbmMemTable - мелочь, доводилось обрабатывать и бОльшие объемы,
скорострельность очень приличная.
Чем не устраивает?
лично я реализовывал бы через in-memory dataset (kbmMemTable) -
1. создается таблица нужной структуры, нужные индексы для сортировки
2. добавляются записи из источника
3. в результате - таблица (dataset), который потом можно крутить как угодно - ввод и корректировка, расчет, аналитика, отчеты, графика. То, что ты показал в примере - простейший отчет с группировкой
50000 записей для kbmMemTable - мелочь, доводилось обрабатывать и бОльшие объемы,
скорострельность очень приличная.
Чем не устраивает?
А можно более "велосипедным" способом, за рамки StringGrid не охота выходить?
dr1v3
Цитата:
Судя по всему у тебя каждому имени соотв код. Тогда делай массив записей вида
myRec = record
Num:integer;
Name : string[20];
Sum: real;
end;
myArr : array[1..50000] of MyRec;
загоняешь туда все записи из стрингрида, сортируешь хоть пузырьком хоть чем Num в порядке возрастания, а потом уже загоняешь в гриду при этом пока подряд идут одинаковые Num то суммируем Sum, иначе записываем итоговую сумму в гриду.
ЗЫ. при помощи SQL это решается одной строкой и менее секундой длительности
Цитата:
А можно более "велосипедным" способом, за рамки StringGrid не охота выходить?
Судя по всему у тебя каждому имени соотв код. Тогда делай массив записей вида
myRec = record
Num:integer;
Name : string[20];
Sum: real;
end;
myArr : array[1..50000] of MyRec;
загоняешь туда все записи из стрингрида, сортируешь хоть пузырьком хоть чем Num в порядке возрастания, а потом уже загоняешь в гриду при этом пока подряд идут одинаковые Num то суммируем Sum, иначе записываем итоговую сумму в гриду.
ЗЫ. при помощи SQL это решается одной строкой и менее секундой длительности
dr1v3
ShIvADeSt
Цитата:
оть и я про то же - не тем микроскопом гвозди забиваются, типичная БД-задача
ShIvADeSt
Цитата:
ЗЫ. при помощи SQL это решается одной строкой и менее секундой длительности
оть и я про то же - не тем микроскопом гвозди забиваются, типичная БД-задача
ShIvADeSt: Спасибо, так и сделаю. Я планировал всё это дело в SQLite загнать, но это надо весь код перелопачивать, а прога нужна уже и сейчас. После переделаю.
Подскажите, какой-то странный глюк.
У меня Delphi 2007.
Если я например, в какой-то процедуре или функции вставляю блок обработки исключений try
......
except
end;
то после этой вставки, у меня в среде IDE начинаются странности. Например, если подвести курсор к процедуре, объекту и т. д., например TS.Free, то среда разработки не показывает всплывающее окошко, где написана вся иерархия объекта, или все свойства или методы, которые у него есть, а всплывает пусто окошко.
До блока
try
except
все нормально... Почему так может происходить?
У меня Delphi 2007.
Если я например, в какой-то процедуре или функции вставляю блок обработки исключений try
......
except
end;
то после этой вставки, у меня в среде IDE начинаются странности. Например, если подвести курсор к процедуре, объекту и т. д., например TS.Free, то среда разработки не показывает всплывающее окошко, где написана вся иерархия объекта, или все свойства или методы, которые у него есть, а всплывает пусто окошко.
До блока
try
except
все нормально... Почему так может происходить?
Почему?
Возникает при StrToInt(StringName);
dr1v3
а какого максимальное значение INT? возможно StrToInt64 поможет...
а какого максимальное значение INT? возможно StrToInt64 поможет...
f3ka
Помогло
Помогло
Frodo_Torbins
ShIvADeSt
Спасибо, это помогает хотябы только один раз перегружать Дельфи. Я так подумал, что если рвать все интерфейсы жёстко, то потом всё равно будет сложно работать - лучше перегрузить. Я попробовал делать немного иначе и накидал демку. Если не сложно - гляньте пожалуйста. Извините там просто пара кнопок в общем...
http_//ifolder.ru/12715398
ShIvADeSt
Унлокер я скачал, вот исходники тоже было бы интересно взглянуть.
ShIvADeSt
Спасибо, это помогает хотябы только один раз перегружать Дельфи. Я так подумал, что если рвать все интерфейсы жёстко, то потом всё равно будет сложно работать - лучше перегрузить. Я попробовал делать немного иначе и накидал демку. Если не сложно - гляньте пожалуйста. Извините там просто пара кнопок в общем...
http_//ifolder.ru/12715398
ShIvADeSt
Унлокер я скачал, вот исходники тоже было бы интересно взглянуть.
Первое впечатление после работы с этим, что такой проблемы никогда не существовало. )
Подскажите как конвертировать Flash ролик в формат RTF.
Aleksandr N
может просто вставить? а не конвертировать. в плане сохранненых данных это выглядит как обычное бинарное вложение. /code /code ...
может просто вставить? а не конвертировать. в плане сохранненых данных это выглядит как обычное бинарное вложение. /code /code ...
Не знаю можно-ли сюда писать подобные просьбы, но напишу. Сорри, если что.
Помогите с написанием простейшей программы на делфи: конвертер валют(из рублей в долары, и обратно, и из рублей в евро, и обратно), а также запрет ввода букв вместо цифр.
Друг попросил, очень надо. Сам особо не шарит. Нужно до завтрашнего вечера.
Ps ещё раз извините, если не сюда обратился.
Ps2^ В гугле ничо не нашёл.
Ps3 Если что, постучите в аську или в личку напишите.
Помогите с написанием простейшей программы на делфи: конвертер валют(из рублей в долары, и обратно, и из рублей в евро, и обратно), а также запрет ввода букв вместо цифр.
Друг попросил, очень надо. Сам особо не шарит. Нужно до завтрашнего вечера.
Ps ещё раз извините, если не сюда обратился.
Ps2^ В гугле ничо не нашёл.
Ps3 Если что, постучите в аську или в личку напишите.
Запреты на ввод букв вместо цифр я люблю!
У едита есть событие KeyPress в него пишешь:
procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);
begin
case Key of
'0'..'9': ;
// '.',',':Key:=DecimalSeparator;
#8: ;
#13: ;
else Key:=Chr(0);
end;
end;
Если нужно разрешить ввод числа с запятой - убери комент на DecimalSeparator. Кстати, этот код подставляет автоматически меняет , . на правильный символ.
Такой конвертор - элементарно:
В один едит вводишь значение, это значение умножаешь на коеффициент и выводишь куда надо (например в другой едит).
Всё!
Можешь написать мультивалютный конвертер:
В один едит вводишь курс валюты, в другой вводишь сумму (в тугриках), в третий едит выводишь произведение суммы на курс.
У едита есть событие KeyPress в него пишешь:
procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);
begin
case Key of
'0'..'9': ;
// '.',',':Key:=DecimalSeparator;
#8: ;
#13: ;
else Key:=Chr(0);
end;
end;
Если нужно разрешить ввод числа с запятой - убери комент на DecimalSeparator. Кстати, этот код подставляет автоматически меняет , . на правильный символ.
Такой конвертор - элементарно:
В один едит вводишь значение, это значение умножаешь на коеффициент и выводишь куда надо (например в другой едит).
Всё!
Можешь написать мультивалютный конвертер:
В один едит вводишь курс валюты, в другой вводишь сумму (в тугриках), в третий едит выводишь произведение суммы на курс.
spasius
Ну в данном случае это не подходит. Мне нужно из N-ного редактора с Flash роликом сохранить данные в RTF файл. Т.е. нужна перекодировка или нечто подобное.
Ну в данном случае это не подходит. Мне нужно из N-ного редактора с Flash роликом сохранить данные в RTF файл. Т.е. нужна перекодировка или нечто подобное.
Kursist
Спасибо. Но ему хорошо бы, чтобы уже готовая прога была. Думаю он врядле что разберёт из твоего написанного).
Спасибо. Но ему хорошо бы, чтобы уже готовая прога была. Думаю он врядле что разберёт из твоего написанного).
Michael007Pro
А гугл совсем уже ничего не выдает? Или этот вариант чем то не подходит? А вообще такие вещи за деньги делаются.
А гугл совсем уже ничего не выдает? Или этот вариант чем то не подходит? А вообще такие вещи за деньги делаются.
Michael007Pro
Ну, если он не может разобраться даже в моем коде, а ему надо дешево, надежно и сердито, тогда ему прямой путь к обычному калькулятору. Чем плох такой вариант? Но это уже не относится к теме - "Вопросы по Дельфи"!!! как и вообще к вопросам по программированию!
Ну, если он не может разобраться даже в моем коде, а ему надо дешево, надежно и сердито, тогда ему прямой путь к обычному калькулятору. Чем плох такой вариант? Но это уже не относится к теме - "Вопросы по Дельфи"!!! как и вообще к вопросам по программированию!
Проблема:
есть диск,на котором находится множество файлов.
Нужно через форму Delphi просматривать содержимое диска, выделить необходимые файлы и считать их имена(для дальнейшего помещения в БД).
Вопрос: какие компоненты, функции и.т.д. для этого использовать.
есть диск,на котором находится множество файлов.
Нужно через форму Delphi просматривать содержимое диска, выделить необходимые файлы и считать их имена(для дальнейшего помещения в БД).
Вопрос: какие компоненты, функции и.т.д. для этого использовать.
Aquest
компонент TOpenDialog
а дальше F1
компонент TOpenDialog
а дальше F1
Aquest
TFileListBox и его наследники
TFileListBox и его наследники
Aquest
можно еще использовать компонент TShellListView с закладки Samples, не нужно открывать отдельный диалог
можно еще использовать компонент TShellListView с закладки Samples, не нужно открывать отдельный диалог
Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
Предыдущая тема: Глобальные переменные в разных формах с++ builder 'a.
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.