![]() |
keine gültige 16Bit Ressource
Hi
Möchte mal fragen wie ihr bzw .. mit welchen Programm ihr eure ressource Dateien erstellt. Ich möchte eine Resource einbinden wie folgt.
Delphi-Quellcode:
und wie oben ersichtlich zur laufzeit einen Dialog aus der resource laden.
//Microsoft Developer Studio generated resource script.
// #include "resrc1.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "resource.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // Deutsch (Deutschland) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) #ifdef _WIN32 LANGUAGE LANG_GERMAN, SUBLANG_GERMAN #pragma code_page(1252) #endif //_WIN32 ///////////////////////////////////////////////////////////////////////////// // // Icon // // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. FACE1 ICON DISCARDABLE "FACE1.ICO" FACE2 ICON DISCARDABLE "FACE2.ICO" FACE3 ICON DISCARDABLE "FACE3.ICO" FACE4 ICON DISCARDABLE "FACE4.ICO" FACE5 ICON DISCARDABLE "FACE5.ICO" ///////////////////////////////////////////////////////////////////////////// // // Dialog // 100 DIALOG DISCARDABLE 103, 94, 78, 160 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Select Fish" FONT 8, "MS Sans Serif" BEGIN CONTROL "",101,"Button",BS_AUTORADIOBUTTON,13,19,12,10 CONTROL "",102,"Button",BS_AUTORADIOBUTTON,13,45,12,10 CONTROL "",103,"Button",BS_AUTORADIOBUTTON,13,70,12,10 CONTROL "",104,"Button",BS_AUTORADIOBUTTON,13,99,12,10 CONTROL "",105,"Button",BS_AUTORADIOBUTTON,13,132,12,10 ICON "FACE1",-1,33,12,20,20 ICON "FACE2",-1,33,38,20,20 ICON "FACE3",-1,33,64,20,20 ICON "FACE4",-1,33,93,20,20 ICON "FACE5",-1,33,125,20,20 END 101 DIALOG DISCARDABLE 85, 68, 174, 65 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION CAPTION "About" FONT 8, "MS Sans Serif" BEGIN ICON "FACE4",-1,7,7,18,20 LTEXT "Water Gadget",-1,37,8,128,8 LTEXT "Copyright © 2008 BrewIdeas@EmilWeiss, Inc.",-1,37,19, 140,8 PUSHBUTTON "&OK",IDOK,62,43,58,14 END ///////////////////////////////////////////////////////////////////////////// // // Menu // POPUPMENU MENU DISCARDABLE BEGIN POPUP "&Tray" BEGIN MENUITEM "Exit Water Gadget", IDCANCEL MENUITEM SEPARATOR MENUITEM "&About", IDOK END END //.... bla bla Aber Delphi murrt rum das es keine 16Bit ressource ist. Was kann ich machen ? gruss Emil |
Re: keine gültige 16Bit Ressource
normal meckert D2006 wenn es keine 32Bit Ressource ist.. :gruebel:
wie bindest du den die ressource ein und wie erstellst sie? |
Re: keine gültige 16Bit Ressource
Zitat:
Und einbinden so {$R Tray.rc} Oder muss die mit *.res abgelegt werden ? EDIT: Also habs jetzt so {$R *.RES} {$R 'Tray.res'} Zitat:
|
Re: keine gültige 16Bit Ressource
Probier's doch mal so:
Delphi-Quellcode:
Uli.
{$R 'res\Blubb.res' 'res\Blubb.rc'}
|
Re: keine gültige 16Bit Ressource
Zitat:
Trotzdem danke. gruss Emil |
Re: keine gültige 16Bit Ressource
Sonst versuch es doch mal mit dem Ressourcencompiler (brcc32.exe).
|
Re: keine gültige 16Bit Ressource
Hallo Emil,
in diesem ![]() Dort wird vermutet das es an einer korrupten dfm Datei liegt. Vielleicht hilft Dir ja die Lösung welche ganz unten im Thread geposted wurde. Grüße Klaus |
Re: keine gültige 16Bit Ressource
Zitat:
ps: wie ist deine commandline beim brc32? |
Re: keine gültige 16Bit Ressource
Zitat:
gruss Emil |
Re: keine gültige 16Bit Ressource
ich meinte ja nicht die .DFM sondern die .RES welche du mit dem BRC32 aus der .RC erzeugst. denn die .RES bindest du ja dann in dein prog ein. oder :?:
|
Re: keine gültige 16Bit Ressource
Zitat:
Nur in dem Artikel ging es um ein problem was die DFM Datei angeht und die hab ich nicht. Mit der brcc32.exe habe ich bisher noch nicht gearbeitet. wenn ich die RC mit BRC32 öffne kann ich damit nichts tun. Getestet habe ich diese auch mit anderen Projekten über all das gleiche problem. gruss Emil |
Re: keine gültige 16Bit Ressource
Die meiner Meinung nach einfachste Methode, eine .rc-datei in ein Projekt einzubinden, besteht darin, sie dem Projekt hinzuzufügen. Delphi baut dann das enstprechende {$R...} automatisch an der richtigen Stelle ein.
Normalerweise benutze ich für Ressourcen den Borland Resource Workshop, den gibt es im Netz irgendwo frei herunterzuladen, findest Du über Google. Habe früher auch ab und zu Dialoge mit VS erstellt, dort habe ich dann aber zuerst mal die VS-spezifischen Dinge aus der .rc-Datei entfernt und für die Konstanten eine eigene .pas eingebunden. Gruß, teebee |
Re: keine gültige 16Bit Ressource
Zitat:
Und das mit dem addieren zum project auch mal testen. gruss Emil |
Re: keine gültige 16Bit Ressource
[quote="EWeiss"]
Zitat:
aber wie gesagt erst mal die .RC in ein ressource kompilieren und dann einbinden. danan funktioniert das auch. falls was nicht stimmen sollte, meckter bereit der Ressoruce compiler.. und da kannst die fehler direkt behben, vor den kompilieren... <HTH> GG btw: der RC wird bereits seit geraumer zeit nicht mehr unterstützt, da er nur die 16B kann ... |
Re: keine gültige 16Bit Ressource
Die resource wird nun erkannt aber nicht aufgerufen..
Ich mache folgendes kann aber nicht sagen ob das in Delphi machbar ist. Unter Basic hab ich da kein problem. Nachdem mein Window (Class) erstellt wurde initialisiere ich den Dialog über die API
Delphi-Quellcode:
Jetzt sollte eigentlich in der WndProc WM_INITDIALOG: aufgerufen
// Lade die DialogBox von Resource
g_hInst := hInstance; DialogBox(g_hInst, MAKEINTRESOURCE(100), HWND_DESKTOP, @WndProc); und der Dialog angezeigt werden. Hier meine WinProc
Delphi-Quellcode:
EDIT:
// Main Windowproc
function WndProc(WinHandle: HWND; Msg: UINT; wParam : Integer; lParam: Integer) : Integer; stdcall; begin case Msg of WM_NCHITTEST: begin Result := HTCAPTION; Exit; end; WM_INITDIALOG: begin // Wähle das erste Option Control SendDlgItemMessage(WinHandle, 101, BM_SETCHECK, BST_CHECKED, 0); // Setze das Menu Handle hMenu := GetSubMenu(LoadMenu(g_hInst, 'POPUPMENU'), 0); // Addiere das Tray Icon ti.cbSize := SIZEOF(TNotifyIconData); ti.Wnd := WinHandle; ti.uID := g_hInst; ti.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP; ti.uCallbackMessage := WM_TRAYICON; ti.hIcon := LoadIcon(g_hInst, 'FACE1'); ti.szTip := 'Water Gadgets'; Shell_NotifyIcon(NIM_ADD, @ti); DestroyIcon(ti.hIcon); Result := 1; exit; end; WM_TRAYICON: case lParam of // Linker Button gedrückt WM_LBUTTONDOWN: if IsWindowVisible(WinHandle) = False then ShowWindow( WinHandle, SW_SHOW); // Rechter Button gedrückt WM_RBUTTONDOWN: begin if IsWindowVisible(WinHandle) = False then SetForegroundWindow(WinHandle); GetCursorPos(TrayMenuP); TrackPopupMenu(hMenu, 0, TrayMenuP.x, TrayMenuP.y, 0, WinHandle, nil); Postmessage(WinHandle, WM_NULL, 0, 0); end; end; WM_COMMAND: begin case LoWord(WParam) of 101, 105: begin // Ändere das TrayIcon ti.hIcon := LoadIcon(g_hInst, PAnsiChar('FACE' + IntToStr(LOWORD(wParam) - 100))); Shell_NotifyIcon(NIM_MODIFY, @ti); DestroyIcon(ti.hIcon); end; IDOK: // AboutBox aus der Resource Anzeigen - siehe Tray.rc DialogBox(g_hInst, MAKEINTRESOURCE(101), HWND_DESKTOP, @AboutProc); IDCANCEL: begin if MessageBox(WinHandle, 'Möchten Sie das Programm wirklich beenden?', 'Water Gadget', MB_ICONEXCLAMATION or MB_OKCANCEL) = IDOK then EndDialog(WinHandle, 0); Result := 1; Exit; end; end; end; WM_SYSCOMMAND: case wParam and $FFF0 of SC_MINIMIZE: begin ShowWindow(WinHandle, SW_HIDE); Result := 1; Exit; end; SC_CLOSE: begin ShowWindow(WinHandle, SW_HIDE); Result := 1; Exit; end; end; WM_KEYDOWN: if wParam = VK_ESCAPE then DestroyWindow(WinHandle); WM_DESTROY: begin PostQuitMessage(0); Shell_NotifyIcon(NIM_DELETE, @ti); end; end; result := DefWindowProc(WinHandle, Msg, wParam, lParam); end; Habs nochmal geändert waren ein paar kleine Fehler. So könnt ihr sehen was ich vorhabe ;) gruss Emil |
Re: keine gültige 16Bit Ressource
Zitat:
|
Re: keine gültige 16Bit Ressource
Zitat:
Danke gruss Emil |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz