Go Back   VN-Zoom forum > Chia sẻ kiến thức > Lập trình > Pascal | C/C++

 


Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 19-02-2008, 20:34   #1
Rìu Bạc
 
Mr_Dolphin's Avatar
 
Tham gia: Dec 2007
Bài: 319
VZD: 4.902
Điểm: 81/54 bài viết
Smile Không biết Pascal có làm đc không.

Bạn nào giỏi khoản này cho mình hỏi chút, mình mới bắt đầu học pascal.
Trong mấy ngày nghịch, viết được mấy bài, xuất nó ra exe để chạy.
Nhưng ở dạng exe icon của nó chỉ có mỗi một kiểu xấu è.
Không biết có cách nào, hay lệnh gì trong chương trình để khi viết xong, bài của mình có một cái icon nhìn đẹp chút không.
Hic không biết nhiều về Pascal mọi người đừng cười.
__________________
-_::Tin Học là chia sẻ ::_-
http://cnttk1a.hnsv.com
Chào mừng các bạn đến diễn đàn lớp tui!
Mr_Dolphin vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-03-2008, 11:04   #2
Búa Gỗ
 
anbinhtrong's Avatar
 
Tham gia: Feb 2008
Bài: 11
VZD: 443
Điểm: 17/3 bài viết
Default

Bó tay, nhấp phải chọn property đổi icon đi. Pascal ra hồi 92 làm gì đổi được.
__________________
Số phận nghiệt ngã có thể khiến bạn bỏ cuộc, mọi người có thể nói với bạn là không thể- nhưng chính bạn mới là người quyết định có bỏ cuộc hay không- cho dù bất kì điều gì xảy ra.
anbinhtrong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-03-2008, 11:13   #3
Rìu Vàng Đôi
 
seudaudovn's Avatar
 
Tham gia: Jan 2008
Đến từ: Hà Nội
Bài: 1.028
VZD: 44.765
Điểm: 1.935/385 bài viết
Send a message via Yahoo to seudaudovn
Default

Pascal giao diện xấu òm, bạn có đổi icon được thì khi chạy cũng chỉ ra trắng đen thôi mà. Nhưng nếu muốn đổi icon có thể bấm chuột phải chọn Properties -> change icon.
seudaudovn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-03-2008, 21:23   #4
Rìu Bạc
 
Mr_Dolphin's Avatar
 
Tham gia: Dec 2007
Bài: 319
VZD: 4.902
Điểm: 81/54 bài viết
Default

KHông phải như các bác bảo đâu, thực ra mấy tuần qua mình đã search mạng, ở trang nước ngoài. Cuối cùng đã tìm ra kết quả rùi. Họ bảo tạo một cái Unit lấy icon từ ngoài, họ cho cả mã nguồn tạo, chắc làm đc. Nhưng giờ tôi chán rùi, dù gì trong cũng xấu, cái vỏ đẹp đc ích gì, nên không tao thử. Nếu ai có hứng thú tôi gửi code cho.
__________________
-_::Tin Học là chia sẻ ::_-
http://cnttk1a.hnsv.com
Chào mừng các bạn đến diễn đàn lớp tui!
Mr_Dolphin vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-03-2008, 22:11   #5
Búa Đá
 
vivuvivu's Avatar
 
Tham gia: Dec 2007
Bài: 47
VZD: 1.002
Điểm: 8/5 bài viết
Default

Bạn Mr_Dolphin có thể gửi cách làm cho tui được hok?
__________________
4rum bây giờ nhiều ^ pro lém nên hok dám múa rìu qua mắt thợ(gãy rìu thì khốn) cho nên mình hok bít kí !
vivuvivu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-03-2008, 20:22   #6
Rìu Bạc
 
Mr_Dolphin's Avatar
 
Tham gia: Dec 2007
Bài: 319
VZD: 4.902
Điểm: 81/54 bài viết
Default

Nguyên văn nó đây, hướng dẫn, mã nguồn và cả ví dụ nữa. Nhưng để làm được bạn phải có chút kiến thức để tạo Unit nữathực tế là tôi chưa làm thử đâu nhé.)

I want to make a program that can change an .exe file icon.

> Suppose I have the file other.exe that contains 'other.ico'

> The program's input boxes:
> - Input exe file : [c:\other.exe]
> - Input ico file : [d:\newicon.ico]

> When I press the OK button, the icon of other.exe is changed to newicon.ico.
> How do I do this? Can somebody give me a code snippet?

> Gary

you have to use the UpdateResource-function:

maybe this german thread can help you (posting #2
[ModifyIconForNt-function] maybe interesting):


Der Reshacker (getestet mit Version 3.4)



unit IconModifyUnit;

interface

uses Windows, SysUtils, Classes ;

type
TIconModifier = Class(TComponent)
private
FSourceFile : String ;
FDestFile : String ;
procedure SetSourceFile(AFile: String) ;
procedure SetDestFile(AFile: String) ;
function ModifyIconForNt(SourceIndex, DestIndex: Cardinal = 1): Boolean ;
function ModifyIconFor9x(SourceIndex, DestIndex: Cardinal = 1): Boolean ;
public
property SourceFile: String Read FSourceFile Write SetSourceFile ;
property DestFile : String Read FDestFile Write SetDestFile ;
function ModifyIcon(SourceIndex, DestIndex: Cardinal = 1): Boolean ;
end;

implementation


procedure TIconModifier.SetSourceFile(AFile: String);
begin
FSourceFile := AFile ;
end;

procedure TIconModifier.SetDestFile(AFile: String);
begin
FDestFile := AFile ;
end;

function TIconModifier.ModifyIconForNt(SourceIndex, DestIndex: Cardinal = 1): Boolean ;
var
hModule : Cardinal ;
hResFind : Cardinal ;
hResLoad : Cardinal ;
pResLock : PChar ;
hResUpdate: Cardinal ;
begin
Result := false ;

hModule := LoadLibrary(PChar(FSourceFile));
if hModule = 0 then
Exit ;

try
hResFind := FindResource(hModule, MakeIntResource(SourceIndex+1), RT_ICON) ;
if hResFind = 0 then
Exit ;

hResLoad := LoadResource(hModule, hResFind) ;
if hResLoad = 0 then
Exit ;

pResLock := LockResource(hResLoad) ;
if pResLock = nil then
Exit ;

hResUpdate := BeginUpdateResource(PChar(FDestFile), false) ;
if hResUpdate = 0 then
Exit ;

if not UpdateResource(hResUpdate,
RT_ICON,
MakeIntResource(DestIndex + 1),
0, //local language
pResLock,
SizeofResource(hModule, hResFind)) then
Exit ;

if not EndUpdateResource(hResUpdate, false) then
Exit ;
finally
FreeLibrary(hModule) ;
end;
Result := true ;
end;

function TIconModifier.ModifyIconFor9x(SourceIndex, DestIndex: Cardinal = 1): Boolean ;
begin
Result := false ;
end;

function TIconModifier.ModifyIcon(SourceIndex, DestIndex: Cardinal = 1): Boolean ;
begin
Result := false ;
if Win32PlatForm = VER_PLATFORM_WIN32_NT then
Result := ModifyIconForNt(SourceIndex, DestIndex)
else
Result := ModifyIconFor9x(SourceIndex, DestIndex) ; // not implement now.
end;
end.



example :

use IconModifyUnit ;

procedure TForm1.Button1Click(Sender: TObject);
var
im : TIconModifier ;
source, dest: String ;
begin
if OpenDialog1.Execute then
source := OpenDialog1.FileName
else
Exit ;

if OpenDialog2.Execute then
dest := OpenDialog2.FileName
else
Exit ;


im := TIconModifier.Create(Self) ;
im.SourceFile := source ; //a file includes source icon(s), exe or dll format.
im.DestFile := dest ; //file includes icon which will be modified. exe or dll.
if im.ModifyIcon(1) then
MessageBox(Handle,'successful.', 'info', MB_OK + MB_ICONINFORMATION)
else
MessageBox(Handle,'fail.', 'info', MB_OK + MB_ICONINFORMATION) ;
im.Free ;

end.

Chúc bạn thành công!
__________________
-_::Tin Học là chia sẻ ::_-
http://cnttk1a.hnsv.com
Chào mừng các bạn đến diễn đàn lớp tui!
Mr_Dolphin vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-03-2008, 20:27   #7
tct
Rìu Sắt
 
tct's Avatar
 
Tham gia: Feb 2008
Bài: 193
VZD: 2.611
Điểm: 23/18 bài viết
Default

Dài thế cơ!
Ai làm thử đi!
Tui cũng đang tò mò xem anh Pascal này có hay vậy ko!
tct vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-08-2008, 16:16   #8
Gà Con
 
sieudaochich1's Avatar
 
Tham gia: Mar 2008
Bài: 1
VZD: 170
Điểm: 0/0 bài viết
Default

Làm sao để xuất file *.pas ra file *.exe để chạy trực tiếp không qua gián tiếp pascal vậy các bạn
sieudaochich1 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-08-2008, 13:55   #9
Búa Gỗ Đôi
 
minhngq's Avatar
 
Tham gia: Jul 2008
Bài: 29
VZD: 1.094
Điểm: 10/8 bài viết
Default

@Mr_Dolphin: Về vấn đề icon cho pascal thì bồ chỉ cần kiếm bộ pascal nào đó trên windows là xong... Vì Turbo Pascal hay Borland Pascal bồ đang dùng là chạy trên DOS nên ko tự có icon để hiển thị trên Windows

@sieudaochich1: Nếu ko muốn dùng giao diên IDE của Pascal thì bồ dùng chương trình command line TPC để dịch cũng được. Thực chất IDE của pascal invoke TPC để dịch file .PAS sang .EXE

Cheers,
minhngq vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-08-2008, 18:09   #10
Rìu Bạc
 
Mr_Dolphin's Avatar
 
Tham gia: Dec 2007
Bài: 319
VZD: 4.902
Điểm: 81/54 bài viết
Default

Không biết có tiên ích nào đổi icon cho file exe không nhỉ, các pro vọc phần mềm góp ý xem.
__________________
-_::Tin Học là chia sẻ ::_-
http://cnttk1a.hnsv.com
Chào mừng các bạn đến diễn đàn lớp tui!
Mr_Dolphin vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-08-2008, 03:25   #11
Búa Đá
 
tcliang's Avatar
 
Tham gia: Aug 2008
Bài: 49
VZD: 919
Điểm: 8/8 bài viết
Default

sao các trường nhà mình còn chung thành với Pascal quá vậy? Mình đang học ở nước ngoài, cũng là công nghệ thông tin, tư lâu người ta đã không dạy Pascal rồi, C/C++ là cơ bản nhất, mở rộng là dạy OpenGL, MFC, còn dạy Java... dùng pascal làm sao ra thi đấu đây? đi luyện C/C++ trên ACM đi các bạn ơi. nếu ai thích viết phần cứng thì luyện verilog và học assembly. luyện pascal để làm gì không biết!!!
tcliang vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-08-2008, 18:38   #12
dst
Rìu Sắt Đôi
 
dst's Avatar
 
Tham gia: Mar 2008
Đến từ: Hà Nội
Bài: 272
VZD: 5.679
Điểm: 253/75 bài viết
Default

Hoàn toàn tán thành bạn tcliang, C++ là cơ bản và mạnh nhất (chỉ tội code khó).
dst vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-08-2008, 09:19   #13
vhacker
Khách Viếng Thăm
 
vhacker's Avatar
 
Bài: n/a
VZD: 0 [Check]
Default

Ai chi minh tao ra file .exe di
Thanks
  Trả Lời Với Trích Dẫn
Trả lời

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt
Trackbacks are Tắt
Pingbacks are Tắt
Refbacks are Tắt
Chuyển đến


Múi giờ GMT +7. Hiện tại là 16:36.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
Từ điển được cung cấp bởi VDict.com - Hosting được tài trợ bởi Rao vặt 123