Ой блин!!!! Что не понятного! Ну допустим я какой-то файлю напримр 123.zip, добалюя в ресурсы проекта! Понятно? Потом мне этот файл надо извлечь из exe-файла на диск! Надо и все! Что непонятного? И не шлите плиз ответов типа Поясни вопрос, или что такое манифест, или А нельзя ли сразу копировать!
Приветствую Вас, Кирилл! Скорее всего LoadResource и остальные функции иже с ним тебе понадобятся. После всех манипуляций с HGLOBAL, GlobalLock и так далее у тебя будет или указатель или CMemFile (что сомнительно :) ). Потом эти данные записываешь на ХДД. Ответ отправлен: 13.12.2003, 11:16 Отправитель: vitya Отвечает fC
Нервные клетки не восстанавливаются, не нервничайте так, Кирилл! :) Все Вас прекрасно поняли и сейчас Вам ответят :) Итак (с), накопал кое-что для Вас: 1. Пишем в блокноте RC-файл, куда прописываем все нужные нам программы, например: ARJ EXEFILE C:UTILARJ.EXE 2. Компилируем его в ресурс при помощи Brcc32.exe. Получаем RES-файл. 3. Далее в тексте нашей программы: implementation {$R *.DFM} {$R test.res} //Это наш RES-файл procedure ExtractRes(ResType, ResName, ResNewName : String); var Res : TResourceStream; begin Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType)); Res.SavetoFile(ResNewName); Res.Free; end; procedure TForm1.BitBtn1Click(Sender: TObject); begin // Записывает в текущую папку arj.exe ExtractRes('EXEFILE', 'ARJ', 'ARJ.EXE'); end; И все дела, и стоило так нервничать?
;) Удачи! Ответ отправлен: 12.12.2003, 23:38 Отправитель: fC Отвечает Andy
Приветствую Вас, Кирилл! Нужно создать resource script file (*.RC) с помощью простого текстового файла (например блокнота), и вписать всего одну строку: 1 RCDATA "123.zip" Единичка - это просто номер ресурса, RCDATA - определяет, что мы имеем дело с user-defined resource. Последнее - имя файла. Компилируем его в .RES файл, при помощи BRCC32.EXE. В MS-DOS набираем: BRCC32 123.RC Это должно создать файл 123.RES. Добавляем директиву компилятор в исходный код нашей программы. Она должна следовать за директивой формы, как показано здесь: {$R *.DFM} {$R 123.RES} Добавляем следующую процедуру в программу: procedure LoadfromEXE; var ResStream : TResourceStream; // Resource Stream begin ResStream := nil; try ResStream := TResourceStream.CreateFromID(HInstance, 1, RT_RCDATA); ResStream.SaveToFile(FileName);
finally ResStream.Free; end; end; // procedure Ответ отправлен: 15.12.2003, 09:43 Отправитель: Andy
Вопрос № 1174
здравствуйте уважаемые эксперты. подскажите как можно данные с одной формы в ставить в другую форму. например: текст из компанента мемо с одной формы записать в мемо другой формы.
Приветствую Вас, евгений! Какие проблемы, смотри стандартный пример по TMemo - Lines - LoadFromFile (SaveToFile) или LoadToStream / SaveToStream. Второй вариант предпочтительнее Нужно только не забыть модуль со второй формой упомянуть в USES первой. Ответ отправлен: 15.12.2003, 18:15 Отправитель: Boriss Отвечает sir henry
Приветствую Вас, евгений! В разделах implementation Uses каждой из форм должен быть упомянут модуль другой формы, к которой он будет обращаться. Тогда можно будет сделать следующее: Form2.Memo2.Lines:=Form1.Memo1.Lines; Ответ отправлен: 15.12.2003, 04:05 Отправитель: sir henry Отвечает fC
Здравствуйте, евгений! Текст можно скопировать так: Form2.Memo1.Text:=Memo1.Lines.Text; Удачи! Ответ отправлен: 13.12.2003, 00:12 Отправитель: fC Отвечает CJ
Доброе время суток, евгений! Например на одной форме ставинь кнопку, а в ней код типа Form2.memo1.text:=form1.memo1.text; Ответ отправлен: 14.12.2003, 13:22 Отправитель: CJ
Вопрос № 1175
Здраствуйте эксперты. Спасибо за ответы № 1172 Delphi (2 формы+TSaveDialog ) Ответ: разобрался,выносил TsaveDialog в dll-так же. Вобщем я писал по обычному так type SysListView32 = class(TStringGrid) ... end; var LS:SysListView32; делал LS:=SysListView32.create(self); ...parent после создания LS - TSaveDialog неработает, не помогает и LS.free; Проблема решается - убрать 32,типа SysListView = class Cтранно? Вопрос ,почему не работает функция-Project-Options-'Version..Inc build'- при каждой компиляции - инкримирует билд. Delphi4, и в 5 неработат.А то надо.Спасибо.
Добрый день, AllDer! Да и в Delphi 7 она работает оригинальным способом, значение инкрементируется тогда, когда повторно вызываешь диалог Options и то не всегда :) Ответ отправлен: 13.12.2003, 22:59 Отправитель: fC
Вопрос № 1176
Приветствую ЭКСпертов! Подскажите пожалуйста, как можно встроить свои пункты в контекстное меню справки, например как у htm2chm. И еще: можно ли задавать прозрачность таким элементам как кнопочки, текстовые поля, списки и т.д. с изменением степени прозрачности?
Доброе время суток, Кирилл! Открыть файл как нетипизированный, открыть с длиной записи 1.Прочитать в буфер BlockRead. Найти символы и затем, записать BlockWrite. Как пользоваться ими см. в приложении
Приложение: Ответ отправлен: 15.12.2003, 17:50 Отправитель: Boriss Отвечает fC
Доброе время суток, Кирилл! Держи примитивный примерчик поиска двойного слова 000C8000h и последующего копирования. Удачи!
Приложение: Ответ отправлен: 14.12.2003, 21:31 Отправитель: fC Отвечает Case_X
Ответ отправлен: 13.12.2003, 23:56 Отправитель: Case_X
Вопрос № 1179
Уважаемые эксперты, помогите. Работаю с Buider 5. Нужен код который бы позволял копировать файл с СD в определенную директорию. Код с испльзованием SHFILEOPSTRUCT не работает. Хотелось бы, чтобы код был работоспособен как и в Win98 так и в Win2000/XP. Спасибо.
Приветствую Вас, Annet! Kernel32.dll BOOL CopyFileA( LPCTSTR lpExistingFileName, // pointer to name of an existing file LPCTSTR lpNewFileName, // pointer to filename to copy to BOOL bFailIfExists // flag for operation if file exists ); Удачи! Ответ отправлен: 14.12.2003, 12:46 Отправитель: fC
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.