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

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

Автор: killerbeanjeka
Дата сообщения: 08.05.2007 17:36
GreatOne


можно так: [more] uses
TypInfo;

type
TNumericChoiceParent = (ncp_Mother, ncp_Father, ncp_Child);

procedure TForm1.btChooseClick(Sender: TObject);
var
S: string;
begin
S := InputEdit.Text;
case TNumericChoiceParent(GetEnumValue(TypeInfo(TNumericChoiceParent), 'ncp_' + S)) of
ncp_Mother: ShowMessage('Hello Mom )');
ncp_Father: ShowMessage('Hi, Dad -]');
ncp_Child: ShowMessage('Shut up and eat your soup !-(');
else
ShowMessage('Who do you think that you are?');
end;
end;[/more]
сам не проверял, но вроде говорят работает
Автор: Arvur
Дата сообщения: 08.05.2007 18:15
killerbeanjeka
Это уж как-то совсем жестко...
В основе идеи лежит тот же строковый массив + AnsiIndexStr. Но накручивать поверх этого RTTI имхо лишнее.
Автор: GreatOne
Дата сообщения: 08.05.2007 21:01
killerbeanjeka
Спасибо.

Кто-нить знает как получить handle проги которая скрыта от диспетчера задач(видна только в процессах) или находиться в трее????

Добавлено:
Все, не надо - сам нашел. Подскажите как убить антивирь касперского в процессах, а то он чет не хочет закрываться
Автор: OdesitVadim
Дата сообщения: 08.05.2007 22:38
GreatOne
Во первых, здесь не андеграунд. А во вторых, убить каспера достаточно накладно. Он не даёт это сделать. Он на уровне ядра перехватывает убиение процесса. Но есть куча способов его снести. Но помогать людям которые потом будут гадить тебе или твоим(моим) друзям я не буду.
Автор: MACKLIA
Дата сообщения: 08.05.2007 23:26
Вопрос такого плана-необходимо получить список параметров ,входящих в определённый раздел реестра.Пример: астозагрузка осуществляется из HKEY_LOCAL_MACHINE\Softvare\Microsoft\Windows\CurrentVersion\Run -нужно получить все программы добавленные в автозагрузку по этому пути.
Автор: RomanTim
Дата сообщения: 09.05.2007 09:26
Arvur
Понятно, что можно обойти по всякому - если уж очень case хочется, хотя я обычно через if...else if... else if... делаю. Хотя наверное если очень большой список веток, да использовать не просто массив, а что-нибудь более оптимизированное по скорости поиска - тогда оно того стоит

MACKLIA
TRegistry - OpenKey, GetValueNames, ReadString
Автор: GreatOne
Дата сообщения: 09.05.2007 10:05
OdesitVadim
Блин!!! Я не пишу вирь, просто у меня каспер частенько подвисает и выйти из него нет возможности, кроме ресета.
Автор: scharhan
Дата сообщения: 09.05.2007 12:08
против касперское есть, и другой выход, поставь что-то другое, например симантек, ато касперский очень въедается в систему, у меня тоже прижился, я его бью, а он не уходит
-----
Кто-то знает более действенный способ уменьшить прогу, чем KOL, а то в KOL мало компонентов, и прогу предется под него переписывать, не очень хочется из-за 1 плюза грузить столько минусов!!!

Добавлено:
Кто- нибудь знает как сделать чтобы в программе сохранялись настройки,
например в программе можно менять цвет формы, но когда её закрываешь, а затем опять открываешь, этот цвет нужно устанавливать по новой.
HELP!!!
Автор: GreatOne
Дата сообщения: 09.05.2007 13:21
scharhan
Попробуй сохранять настройки в ini файле
Автор: scharhan
Дата сообщения: 09.05.2007 16:00
GreatOne
ок, я так и собирался но не знаю, КАК?
Автор: OdesitVadim
Дата сообщения: 09.05.2007 17:17
scharhan
Вот те пример.
В uses добавляеш IniFiles

Текст сохранения.

Код:
procedure SaveParam;
var ini:TIniFile;
begin
ini:=TIniFile.Create(ChangeFileExt(Application.exename),'.ini');//Если указать просто имя ини файла без полного пути, то создаст в documents and Setting (Если новая винда)
ini.WriteString('section','paramname','paramvalue');
ini.writeinteger('Form1','Width',Form1.width);
ini.free;
end;
Автор: SERGE_BLIZNUK
Дата сообщения: 09.05.2007 21:20
scharhan

Цитата:
Кто-то знает более действенный способ уменьшить прогу, чем KOL, а то в KOL мало компонентов

вы сами себе противоречите - Вам правильно подсказали, что программа "пухнет" от использования VCL (как раз тех компонент, которых Вам так не хватает). Если писать с использованием функций WinAPI (ну или с использованием KOL) - тогда размер уменшается. Если используете стандартные компоненты - смиритесь с тем, что размер EXE будет достаточно большой. Кстати, а чем вам лишний мегабайт так мешает? Сейчас выполняемый файл в пару мегабайт уже почти норма (как это не печально). Есть ещё программы сжимающие выполняемые файлы (AsPack, UPX и иже с ними....) - но от них скорее больше вреда, чем пользы.

Цитата:
Кто- нибудь знает как сделать чтобы в программе сохранялись настройки,
Кстати, к слову, есть компоненты, которые достаточно бросить на форму, что она сама запоминала (записывала в INI) свои размеры и положение.... Хотя чаще самому ручками можно лучше сделать.
Автор: scharhan
Дата сообщения: 09.05.2007 21:55
OdesitVadim
В uses добавляеш IniFiles

Текст сохранения.

Код:
procedure SaveParam;
var ini:TIniFile;
begin
ini:=TIniFile.Create(ChangeFileExt(Application.exename),'.ini');//Если указать просто имя ини файла без полного пути, то создаст в documents and Setting (Если новая винда)
ini.WriteString('section','paramname','paramvalue');
ini.writeinteger('Form1','Width',Form1.width);
ini.free;
end;


Чтение настроек

Код:
procedure LoadParam;
var ini:TIniFile;
s:string;
begin
ini:=TIniFile.Create(ChangeFileExt(Application.exename),'.ini');//Если указать просто имя ини файла без полного пути, то создаст в documents and Setting (Если новая винда)
s:=ini.ReadString('section','paramname','paramdefaultvalue');
Form1.width:=ini.readinteger('Form1','Width',Form1.width);
ini.free;
end;

НЕ ПАШЕТ
УЖЕ ЗДЕСЬ
ini:=TIniFile.Create(ChangeFileExt(Application.exename),'.ini');
ДЕЛФИ РУГАЕТСЯ
ставит курсор перед ,'.ini');
Автор: OdesitVadim
Дата сообщения: 09.05.2007 22:11
А текст ошибки почитать не судьба? и дублировать мой ответ тоже не стоило. Код писался "наколенке", поэтому мог смазать.
А ошибка была проста - скобку чуть не туда поставил
сравниваем
было

Код:
ini:=TIniFile.Create(ChangeFileExt(Application.exename),'.ini'));
Автор: s1n
Дата сообщения: 09.05.2007 22:16
упс, OdesitVadim опередил
Автор: virpool
Дата сообщения: 09.05.2007 22:57
Помогите, ктонить пожалуйста, реализовать такую конструкцию на Делфи
<form action=http://chex.dp.ua/icq_test.php method=post>
<input type=text name=vvv>
<input type=submit value=Send>
</form>
при помощи компонента TIdHTTP
Автор: OdesitVadim
Дата сообщения: 09.05.2007 23:18
virpool
Без проблем.

Код:
var sl:TStringList;
s:string;
begin
sl:=TStringList.create;
sl.add('vvv=samevalue');
s:=idHttp1.post('http://chex.dp.ua/icq_test.php',sl);
sl.free;
end;
Автор: virpool
Дата сообщения: 09.05.2007 23:26
OdesitVadim
Большое спасибо) А можно еще както получить данные post?

Добавлено:
Или они в переменную s помещаются?...
Автор: OdesitVadim
Дата сообщения: 10.05.2007 00:13
Да, туда они и помещаются. Правда метод Post - перегружен, и если картинку хочеться получить (ну уж точно это не строка), то можно и в поток сохранить
Автор: GreatOne
Дата сообщения: 10.05.2007 14:52
Стало вдруг интерестно - как можно узнать имена юзеров которые в данных момент просматривают вордовский файл на моем компе?? Ессесено с помощью дельфи.
Автор: RomanTim
Дата сообщения: 10.05.2007 15:35
GreatOne
API функция NetFileEnum - подробности в МСДН
В самой делфи заголовочных файлов нет, так что или описывай сам по документации, или бери что-то типа JediAPI
Автор: ShBulekbaev
Дата сообщения: 14.05.2007 12:18
Необходима срочная помощь. При компиляции выдает сообщение
Не могу найти указанный файлFile not found "System reflection.dcu"
Автор: GreatOne
Дата сообщения: 14.05.2007 14:32
2ShBulekbaev

Походу ты подключил модуль которого нет.
Автор: Aleks007
Дата сообщения: 15.05.2007 14:59
Подскажите функцию для работы с датой, чтобы получать её в виде числа секунд с 1970г. А ещё лучше было бы преобразовать стандартный формат даты и времени "15.05.2007 12:14:35" в количество секунд. Т.е проблема в преобразовании строчки с датой в кол. секунд с 1970г.
Спасибо.
Автор: Solnake
Дата сообщения: 15.05.2007 15:54
Aleks007
Посмотрите в сторону модуля DateUtils
там есть и
function SecondOf(const AValue: TDateTime): Word;
и function SecondsBetween(const ANow, AThen: TDateTime): Int64;

Думаю вам хватит уже готовых функций и методов.
Автор: Vitus_Bering
Дата сообщения: 16.05.2007 11:27
Нужно программно сохранить web-страницу в текстовый файл.
Автор: Arvur
Дата сообщения: 16.05.2007 14:28
Vitus_Bering
Тебе которую? Ту, что уже в браузере, или по заданной ссылке?
Автор: Vitus_Bering
Дата сообщения: 16.05.2007 14:42
Arvur
Можно все варианты?
Автор: Arvur
Дата сообщения: 16.05.2007 15:24
Vitus_Bering

Цитата:
Можно все варианты?

Легко
Просто получить html-документ по ссылке: взять какой-нибудь пакет, расчитанный на минимум усилий - например, Clever Internet Suite (был на пролазе).
Из браузера будет чуть сложнее.
Если для FireFox или Opera - сходу не подскажу, надо читать у них на сайте. Для Delphi мне таких библиотек не попадалось.
Если для IE - придется писать к нему плагин, Browser Helper Object. Можно взять готовые каркасы:
- Самый известный - _http://www.bsalsa.com
- Мне больше понравился _http://www.evocorp.com/Delphi/, он и попроще.
- Есть еще несколько на торри, в частности очень мощный пакет от Alexander Agafonoff, но поддержки к нему нет, а код написан ужасно. По возможностям он наиболее крут.
Правда здесь в любом раскладе придется потратить больше времени, чем просто скачивая по url.
Автор: Vitus_Bering
Дата сообщения: 16.05.2007 17:28
Arvur
Спасибо.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: 1С: Конвертация данных 2.0


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