![]() |
|
|
#1 |
|
Rìu Bạc
![]() Tham gia: Dec 2007
Bài: 346
VZD: 4.657
Điểm: 78/52 bài viết
|
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.comChào mừng các bạn đến diễn đàn lớp tui! |
|
|
|
|
|
#2 |
|
Búa Gỗ
![]() Tham gia: Feb 2008
Bài: 12
VZD: 403
Điểm: 13/3 bài viết
|
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.
|
|
|
|
|
|
#3 |
|
Rìu Vàng Đôi
![]() |
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.
|
|
|
|
|
|
#4 |
|
Rìu Bạc
![]() Tham gia: Dec 2007
Bài: 346
VZD: 4.657
Điểm: 78/52 bài viết
|
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.comChào mừng các bạn đến diễn đàn lớp tui! |
|
|
|
|
|
#5 |
|
Búa Gỗ Đôi
![]() Tham gia: Dec 2007
Bài: 42
VZD: 842
Điểm: 8/5 bài viết
|
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í !
|
|
|
|
|
|
#6 |
|
Rìu Bạc
![]() Tham gia: Dec 2007
Bài: 346
VZD: 4.657
Điểm: 78/52 bài viết
|
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ữa
thự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.comChào mừng các bạn đến diễn đàn lớp tui! |
|
|
|
|
|
#7 |
|
Rìu Sắt
![]() Tham gia: Feb 2008
Bài: 196
VZD: 2.341
Điểm: 23/18 bài viết
|
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! |
|
|
|
|
|
#8 |
|
Gà Con
![]() Tham gia: Mar 2008
Bài: 1
VZD: 150
Điểm: 0/0 bài viết
|
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
|
|
|
|
|
|
#9 |
|
Gà Con
![]() Tham gia: Jul 2008
Bài: 7
VZD: 530
Điểm: 1/1 bài viết
|
@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, |
|
|
|
|
|
#10 |
|
Rìu Bạc
![]() Tham gia: Dec 2007
Bài: 346
VZD: 4.657
Điểm: 78/52 bài viết
|
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.comChào mừng các bạn đến diễn đàn lớp tui! |
|
|
|
|
|
#11 |
|
Búa Gỗ Đôi
![]() Tham gia: Aug 2008
Bài: 41
VZD: 773
Điểm: 5/5 bài viết
|
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!!!
|
|
|
|
|
|
#12 |
|
Rìu Sắt Đôi
![]() Tham gia: Mar 2008
Đến từ: Hà Nội
Bài: 276
VZD: 5.424
Điểm: 236/78 bài viết
|
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ó).
|
|
|
|
|
|
#13 |
|
Thành viên đang bị kỷ luật
![]() Tham gia: Aug 2008
Bài: 10
VZD: 469
Điểm: 129/4 bài viết
|
Ai chi minh tao ra file .exe di
Thanks |
|
|
|