![]() |
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 12:41 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