CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Dodawanie resourców do projektu w BCB 6
Strona 1 z 1

Dodawanie resourców do projektu w BCB 6

Nowy postNapisane: poniedziałek, 13 czerwca 2016, 22:00
przez Arnold_S
Witam!
Na wstępie chciałbym krótko nadmienić, że od dość dawna jestem czytelnikiem strony oraz forum. Składam wielki szacunek i podziękowanie za świetne opisy i tutoriale przy użyciu środowiska BCB. Dobra dość wazeliny :] przejdźmy do meritum.
Jestem początkującym pasjonatem C++ i po tym jak skończyłem się bawić strukturalnie w konsoli, spróbowałem stworzyć jakiś mały programik wyglądający bardziej jak "pod łindołsem". DO tej pory wszystkie bitmapy dla przycisków oraz inne zasoby mojego programu, dołączałem z utworzonego w tym celu katalogu (odpowiednią funkcją). Konsekwencje były takie, że wraz z przeniesieniem programu na inny komputer, musiałem przenieść katalogi z grafiką i dźwiękami. Zacząłem szukać sposobu na dołączanie do projektu zasobów tak aby były zawarte w pliku wykonywalnym programu. Znalazłem kilka opisów po angielsku i niezbyt dokładnych po polsku. Jedni piszą o skompilowaniu pliku *.rc do pliku *.res, inni podają przykłady w których tworzą plik.rc oraz plik nagłówkowy plik.h oraz inkludują go w programie. Mi nie specjalnie to działa. Wiem, że popełniam gdzieś błąd ale gotująca krew zaczyna wylewać mi się uszami i nie pozwala mi myśleć. Dotarłem również do opisu na stronie Cyfrowy Baron ale przykład odnosi się do BCB 4.0. Poszperałem też w moim BCB 6.0, w Image Editorze i widzę, że tam można otwierać i zapisywać pliki w formacie *.res.

Czy po dołączeniu do projektu pliku res (i odpowiednim skompilowaniu) wszystkie zasoby staną się integralną częścią pliku exe?
Bardzo proszę o pomoc...a szczerzej mówiąc, łopatologiczne wytłumaczenie procedury dołączania tego pliku res.
Proszę nie odsyłajcie mnie do google :]

Jestem posiadaczem BCB 6.0 na Win7 32b.

Re: Dodawanie resourców do projektu w BCB 6

Nowy postNapisane: wtorek, 14 czerwca 2016, 10:15
przez Mironas
Opisy na stronie Cyfrowy Baron tak samo będą działały pod BCB 6. Napisz z czym konkretnie masz problem.
Do edycji plików RES możesz też użyć innych programów, np.: XN Resource Editor.

Re: Dodawanie resourców do projektu w BCB 6

Nowy postNapisane: wtorek, 14 czerwca 2016, 14:27
przez Cyfrowy Baron
Arnold_S napisał(a):Czy po dołączeniu do projektu pliku res (i odpowiednim skompilowaniu) wszystkie zasoby staną się integralną częścią pliku exe?
Bardzo proszę o pomoc...a szczerzej mówiąc, łopatologiczne wytłumaczenie procedury dołączania tego pliku res..


Tak plik zasobów RES stanie się integralną częścią aplikacji. Można jednak wciąż edytować takie zasoby np. za pomocą programu "Resource Hacker".

Tworzenie pliku z zasobami i zapisywanie zasobów do pliku.
Edycja zasobów (modyfikacja, usuwanie, wstawianie).

Re: Dodawanie resourców do projektu w BCB 6

Nowy postNapisane: wtorek, 14 czerwca 2016, 23:48
przez Arnold_S
Dobra...jest plik zasoby.res, wszystko pięknie. Dodałem go do projektu (Shift+F11).
Dołączyłem definicję funkcji "SaveResourceToFile" do unit1.cpp

Utworzyłem na formatce SpeedButton1. Do tej pory na zdarzenie OnClick wywoływałem funkcję:
SpeedButton1->Glyph->LoadFromFile("on.bmp");

Teraz jak wydobyć po nowemu on.bmp z pliku zasobów aby ustawić go jako Glyph przycisku?
I jeszcze jedno głupie pytanie: dlaczego funkcja wydobywająca cokolwiek, nosi nazwę "SaveToFile"?
Patrząc na opis wydobywania z pliku tych zasobów wszystko jest jasne...ale serio nie wiem gdzie jestem. heh

Re: Dodawanie resourców do projektu w BCB 6

Nowy postNapisane: środa, 15 czerwca 2016, 09:19
przez Mironas
Jeśli masz bitmapę w pliku zasobów to najlepiej wczytać ją bezpośrednio (z zasobów do SpeedButton1) z pominięciem pliku na dysku:
KOD cpp:     UKRYJ  
  // Wczytanie bitmapy z pliku zasobow do 'Image1'
  SpeedButton1->Glyph->LoadFromResourceName(0, "NAZWAZASOBU");
 

Funkcja "SaveResourceToFile" jest w tym przypadku zbędna. Ona służy do innego celu.

Re: Dodawanie resourców do projektu w BCB 6

Nowy postNapisane: środa, 15 czerwca 2016, 19:03
przez Arnold_S
Panowie wszystko pięknie działa. Dodałem również WAV-a do zasobu i też śmiga.
Szkoda tylko, że BMPy muszą być w 256 kolorach, inaczej brcc32 krzyczy. Czy da się to jakoś ominąć?

Do czego służy ta funkcja SaveToFile?

Re: Dodawanie resourców do projektu w BCB 6

Nowy postNapisane: czwartek, 16 czerwca 2016, 04:56
przez Cyfrowy Baron
Jak nazwa wskazuje SaveToFile służy do zapisywania do pliku. Bitmapy wcale nie muszą być w 256 kolorach, może po prostu źle tworzysz bitmapę. Bitmapa musi być w 8 bitach na kanał -> czyli 3x8=24 -> czyli 24 bitowa.

Re: Dodawanie resourców do projektu w BCB 6

Nowy postNapisane: poniedziałek, 20 czerwca 2016, 21:56
przez Arnold_S
Wszystko się zgadza. Nie była 24 bitowa.

Re: Dodawanie resourców do projektu w BCB 6

Nowy postNapisane: czwartek, 31 sierpnia 2017, 23:31
przez Arnold_S
Witam!
Mam kolejną zagwozdkę z resourcami. (Korzystam z C++B XE2)
Otóż w moim programie chciałbym pobrać (wylosować) z pliku (na przykład tekstowego), kilka wybranych wyrazów (stringów).
Niestety taki plik musiałbym dołączać do mojej aplikacji.
- Czy da się dołączyć go do pliku *.rc, tak jak wyżej opisane bitmapy lub wav-y?
- Jeśli tak to jak wyglądałaby linijka w tym pliku? Na przykład:
KOD cpp:     UKRYJ  
TLO_FORMY               BITMAP          "img/TLO_FORMY.bmp"
PLIK_Z_WYRAZAMI         /*co tutaj?*/   "teksty/jakies_teksty.txt"

- Jeśli to poprawna forma, to jak wylosować z takiego pliku jakiś wyraz? Załóżmy, że są oddzielone przecinkami.

W aplikacjach konsolowych korzystałem z operacji we/wy, np.:
KOD cpp:     UKRYJ  
#include <iostream>
using namespace std;
#include <fstream>
#include <string>

int main()
{
string nazwa_pliku = "jakies_teksty.txt";
ifstream czyt;
czyt.open(nazwa_pliku.c_str(), ios::in);
// dalsze operacje czytania zawartosci tego pliku
czyt.close();
}
 


Jeśli udałoby mi się umieścić zawartość takiego pliku tekstowego w pliku *.res, to jak się do niego odnieść poprzez operacje we/wy?
Jak napisałem na początku, chciałbym wylosować kilka wyrazów, które są oddzielone przecinkiem.

Re: Dodawanie resourców do projektu w BCB 6

Nowy postNapisane: piątek, 1 września 2017, 09:10
przez Mironas
Opis jak umieszczać pliki tekstowe w zasobach i jak je wczytywać masz tutaj.