Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2011, 14:11   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ток по Object Pascal/Delphi
Ну почему же? Это и в классическом паскале есть
Цитата:
но посмотри внимательнее
Внимательнее нужно быть тебе. Функции могут не указываться в interface. Это значит что они внутреннего пользования и не могут быть экспортированы в другом модуле.
Цитата:
выскакривает ошибка
А почему у меня не выскакивает?

В общем так: Давай ты почитаешь http://marklv.narod.ru/book/pascal.html#27 а потом мы уже и будем беседовать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.06.2011, 17:18   #12
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
cargo29, я поражуюсь твоему стремлению изучить тот язык, о котором ты даже книгу ни разу н прочёл.
Элементарного не знаешь!
Код:
function ChangeMAINICON(I:TIcon, TargetExe: String): Boolean;
что поставить, подумай сам.

p.s. чисто из принципа не буду давать модуль для смены иконки exe из файла.
у меня где то есть модуль, меня щас интересует как это программно пишется а с модулями легко работать... а на счет того сколько я знаю я его изучаю от силы 6 месяцев делфи, и ни кто не обьяснял книги читал библию делфи , делфи глазами хакера (на много лучше библии книга), видео уроки Любаева и макрушина. если ты уже изучал его много я так понимаю и обьясняли тебе я не по спорю что ты будешь лучше шарить в этом.

Вообщем вот что получилось

Код:
var
  Form1: TForm1;
 t:ticon;
implementation

{$R *.dfm}

function MAKELANGID(p :DWORD ;s : DWORD) : LANGID;
begin
Result := (s shl 10) or (p);
end;

function GetMAINICONLanguage(const sFileName: String): LANGID;
// Функция обратного вызова. Вызывается для каждого языкового
// идентификатора данного ресурса. В lParam ей передаю указатель на переменную,
// в которую возвратится результат.
function EnumResLangProc(hModule: THandle; lpszType: PChar;
lpszName: PChar; wIDLanguage: WORD;
lParam: Pointer): BOOL; stdcall;
begin
PWORD(lParam)^ := wIDLanguage;
Result := False; // После первого вызова сразу прекращаем перебор,
// т.к. не видел ни одной проги с разными иконками под разные языки
end;

var hExe: THandle;
begin
hExe := LoadLibrary(PChar(sFileName)); // Загружаю файл.
// Запускаю перебор языков главной иконки
EnumResourceLanguages(hExe, RT_ICON, MakeIntResource(1),@EnumResLangProc, LPARAM(@Result));
FreeLibrary(hExe);
end;

function ChangeMAINICON (I:TIcon; TargetExe:String): Boolean;
var
hUpdateRes: THandle;
S:TMemoryStream;
begin
Result:= False;
try
 S:=TMemoryStream.Create;
 I.SaveToStream(S);
 hUpdateRes := BeginUpdateResource(PChar(TargetExe), False);
 if hUpdateRes = 0 then Exit;
 if UpdateResource(hUpdateRes, RT_ICON, MakeIntResource(1),GetMAINICONLanguage(PChar(TargetExe)),S.Memory, S.Size) = False then Exit;
 Result := EndUpdateResource(hUpdateRes, False);
finally
 S.Free;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
t:= TIcon.Create;
t.LoadFromFile('icon.ico');
ChangeMAINICON(t, 'to.exe');
t.Free;
end;

и дело в том что у программы вообще иконка пропадает, но программа сама запускается, я не ошибаюсь если скажу что программа не может определить язык???

Последний раз редактировалось Stilet; 05.06.2011 в 19:29.
cargo29 вне форума Ответить с цитированием
Старый 05.06.2011, 17:26   #13
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Цитата:
у меня где то есть модуль, меня щас интересует как это программно пишется а с модулями легко работать...
О господи.... УМАРА. АХАХАХАХХХААаа( //без слёз твои темы читать просто невозможно. Прошу, прекрати цирк, и прочитай все что ты перечислил НЕ по диагонали.

p.s.
Если есть готовый, зачем вообще тему создал?

Возьми открой его, и комментируй каждую строку кода. Разбирай функции..
Я так делаю если нужно разобраться с тем или иным методом.

Дам подсказку:
1. TResourceStream
2. Все намного проще. и без всяких GetMAINICONLanguage который у тябя там прописан, вообще не пойми зачем.
3. Ресурс иконки приложения заложен под именем MAINICON.

А ты в дебри полез. Зачем? Почитал бы MSDN или дельфийский help там все это есть. Осталось только придумать схему, и написать по этой схеме функцию.

Последний раз редактировалось Человек_Борща; 05.06.2011 в 17:31.
Человек_Борща вне форума Ответить с цитированием
Старый 05.06.2011, 18:04   #14
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
О господи.... УМАРА. АХАХАХАХХХААаа( //без слёз твои темы читать просто невозможно. Прошу, прекрати цирк, и прочитай все что ты перечислил НЕ по диагонали.

p.s.
Если есть готовый, зачем вообще тему создал?

Возьми открой его, и комментируй каждую строку кода. Разбирай функции..
Я так делаю если нужно разобраться с тем или иным методом.

Дам подсказку:
1. TResourceStream
2. Все намного проще. и без всяких GetMAINICONLanguage который у тябя там прописан, вообще не пойми зачем.
3. Ресурс иконки приложения заложен под именем MAINICON.

А ты в дебри полез. Зачем? Почитал бы MSDN или дельфийский help там все это есть. Осталось только придумать схему, и написать по этой схеме функцию.
а если не лезти в делфи тогда и ни когда не научишься ничегому,

вот смотри
1. S:=TResourceStream.Create(HInstance , 'icon.ico', RT_ICON); так должно быть??? что мы подгружаем файл в S

2. Вот функция тут ничего не написано что можно не указывать язык

http://programmers.gb7.ru/showthread...UpdateResource

3.
Цитата:
3. Ресурс иконки приложения заложен под именем MAINICON.
вот это я не понял ... в смысле ты имел ввиду что сюда
Код:
t:= TIcon.Create;
t.LoadFromFile('icon.ico');
не правильно подгрузил???
cargo29 вне форума Ответить с цитированием
Старый 05.06.2011, 19:04   #15
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
если ты уже изучал его много я так понимаю и обьясняли тебе я не по спорю что ты будешь лучше шарить в этом.
лично мне ничего не обьясняли, лишь желание было.
Цитата:
1. TResourceStream
и чем он поможет?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.06.2011, 19:07   #16
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
лично мне ничего не обьясняли, лишь желание было.и чем он поможет?
да и еще время... много на учебу уходит все со временем придет. в чем отличение 1. TResourceStream и TMemoryStream; и какую все таки использовать???? в чем ошибка была в коде???
cargo29 вне форума Ответить с цитированием
Старый 05.06.2011, 19:30   #17
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
читал библию делфи , делфи глазами хакера
Мда... вот откуда ноги то ростут... Фленовщина...
Не с того начали, батенька. Начинать надо не с хакров а с основ.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.06.2011, 19:34   #18
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Мда... вот откуда ноги то ростут... Фленовщина...
Не с того начали, батенька. Начинать надо не с хакров а с основ.
Хорошо что посоветуете?? и как же на счет моего вопроса
cargo29 вне форума Ответить с цитированием
Старый 05.06.2011, 19:49   #19
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

"Библия делфи" хорошая книга в самом начале она мне оч помогла)
"Делфи глазами хакера" после неё самое то но не перед ней
Pein95 вне форума Ответить с цитированием
Старый 05.06.2011, 20:06   #20
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Цитата:
Сообщение от Pein95 Посмотреть сообщение
"Библия делфи" хорошая книга в самом начале она мне оч помогла)
"Делфи глазами хакера" после неё самое то но не перед ней
Да о чем там говорилось все это я знаю что забуду еще раз посмотрю но ни в одном из всего этого небыло изменить иконку. Сначало читал библию а потом глазами хакера.. все что там дается ничего сложного нету а тут для меня сложно уже... просто помогите в этом разобраться что не так а дальше уже додумывать буду сам свои ошибки....
cargo29 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как программно сменить иконку в трее компонента TtrayIcon ? zmxncb Компоненты Delphi 3 15.12.2014 03:26
Сменить иконку? zhook Общие вопросы Delphi 3 28.12.2010 00:57
Как изменить описание ЕХЕ-файла и убрать дельфийскую иконку. TwiX Общие вопросы Delphi 7 03.03.2010 14:36
Как сменить каталог для сохранения файла? КаМММ Microsoft Office Excel 4 19.01.2010 08:01
как поменять иконку своего ехе файла Skalik Общие вопросы .NET 4 22.12.2007 17:51