• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

c++ builder image wlasciwosci

Object Storage Arubacloud
0 głosów
552 wizyt
pytanie zadane 14 kwietnia 2020 w C i C++ przez lujasjeden Użytkownik (860 p.)
Witam, czy jest jakaś własciwość Image której ustawienie sprawiłoby, że zdjęcie się podświetli, pokaże jako zaznaczone, cokolwiek co by dało znak, że właśnie zostało naciśnięte? Mam 81 takich samych pól i po wybraniu jednego chciałbym aby użytkownik widział jakąś różnice.

3 odpowiedzi

0 głosów
odpowiedź 14 kwietnia 2020 przez lujasjeden Użytkownik (860 p.)

a i przy okazji chcialbym sie zapytac jak mam napisac petle ktora bedzie ladowala zdjecia do TImagow. Mam 81 Imagow i do kazdego z nich chce wstawic to samo zdjecie, Image nazywaja sie c1,c2,c3...c81 i napisalem w ten sposob ale nie dziala

//reset planszy
for (i=1; i<=81; i++)
{
c[i]->Picture->LoadFromFile("img/pole48x48.bmp");
}

 

0 głosów
odpowiedź 14 kwietnia 2020 przez tangarr Mędrzec (154,780 p.)

Nie potrafię znaleźć porządnej dokumentacji klasy TImage. Podejrzewam, że mógłbyś wyciągnąć załadowany obrazek, narysować na nim ramkę lub półprzezroczysty prostokąt i przypisać zmodyfikowany obrazek do obiektu TImage.

Twoje obrazki prawdopodobnie się nie ładują dlatego, że masz ustawiony katalog roboczy inny niż katalog w którym trzymasz assety. Spróbuj ustawić prawidłowy katalog przed pętlą (SetCurrentDir)

komentarz 14 kwietnia 2020 przez lujasjeden Użytkownik (860 p.)
co masz na mysli poprzez wyciagnac? Narysowac w tools->Image Editor? I kurde szczerze to nie rozumiem drugiej rady moglbys mi to jakos latwiej wytlumaczyc albo napisac jak to zapisac?
komentarz 14 kwietnia 2020 przez tangarr Mędrzec (154,780 p.)
Nie znam borlanda. Dlatego dzielę się tylko przypuszczeniami.

Po załadowaniu obrazka ( Picture->LoadFromFile ) prawdopodobnie będziesz mógł nim manipulować Może ten artykuł ci pomoże http://programowanie.cal.pl/cyfbar/canvas.html

Kiedy uruchamiasz jakiś program to posiada on katalog roboczy. Zazwyczaj jest to katalog w którym byłeś podczas uruchamiania programu (w konsoli). Jeżeli uruchomiłeś program klikając w plik exe to najprawdopodobniej będzie to katalog w którym znajduje się ten plik.

Dla przykładu. Masz program c:\Program\super_program.exe
Jeżeli go uruchomisz klikając myszką w ikonę to program będzie miał ustawiony katalog roboczy c:\Program\
Jeżeli program będzie chciał wczytać plik obrazek.bmp to tak naprawdę zostanie wczytany plik c:\Program\obrazek.bmp

Często się zdarza, że podczas uruchamiania programu katalog roboczy jest ustawiony na inny (np. c:\Users\Use\Documents) w takim przypadku program będzie próbował znaleźć plik w złym miejscu. Funkcja SetCurentDir pozwala ustawić katalog roboczy na taki jaki potrzebujesz.

PS. Dlaczego używasz Borlanda? To środowisko jest przestarzałe od przynajmniej 10 lat.
komentarz 15 kwietnia 2020 przez j23 Mędrzec (194,920 p.)

@tangarr, C++ Builder jest cały czas rozwijany, więc generalnie z tą przestarzałością to bym nie przesadzał. Popularna wśród newbies szóstka jest przestarzała.

komentarz 15 kwietnia 2020 przez tangarr Mędrzec (154,780 p.)
Serio?
Byłem przekonany, że Builder skończył się na szóstce.
komentarz 15 kwietnia 2020 przez j23 Mędrzec (194,920 p.)
Jeśli się nie mylę, nowe 64-bitowe wersje stoją na forku clanga. Zatem nie jest źle... no może poza tym VCL-em w Delphi ;/
komentarz 15 kwietnia 2020 przez lujasjeden Użytkownik (860 p.)

@tangarr, dzieki za komentarz, przeczytalem artykul, dowiedzialem sie nowych rzeczy, ale niestety nie zastosuje ich w tym problemie, ale bede wiedzial na nastepne, dzieki wielkie, a i uzywam po obejrzeniu dwoch serii z c++ Mirsoława Zelenta robie sobie jakies gry w builderze zeby zrobic cos swojego, ale jak skoncze chcialbym sie zaczac uczyc czegos nowego, cos co mogloby mnie dalej rozwijac, tylko nie wiem co to by moglo byc, myslalem nad html i potem javascript ale no nie wiem jestem w tym zielony, masz moze jakies propozycje? Nauka czego pomoze mi wszechstronnie sie rozwinac jezeli chodzi o programowanie i co jest przyszlosciowe?

komentarz 15 kwietnia 2020 przez j23 Mędrzec (194,920 p.)

cos co mogloby mnie dalej rozwijac,

Uczenie się po łebkach kolejnych języków czy technologii w niczym Cię nie rozwinie, co najwyżej da Ci jakąś wiedzę ogólną, której nie będziesz w stanie sensownie wykorzystać.

Jeśli interesuje Cię WebDev, to uderzaj w Javę, JS, HTML, PHP itd. i nie trać czasu na C++.

0 głosów
odpowiedź 15 kwietnia 2020 przez j23 Mędrzec (194,920 p.)

Ręcznie w edytorze ustawiłeś 81 image'ów? Zuch! 


a i przy okazji chcialbym sie zapytac jak mam napisac petle ktora bedzie ladowala zdjecia do TImagow

Można tak:

TImage* images[81] = { c1, c2, c3, /* itd. */ };

for (int i = 0; i < 81; i++) {
    images[i]->Picture->LoadFromFile("img/pole48x48.bmp");
}

Choć IMO za dużo tych image'ów. Jeden wystarczy.

komentarz 15 kwietnia 2020 przez lujasjeden Użytkownik (860 p.)
o dzieki zadziałało chociaz i tak mi to nie zmienia duzo bo i tak musze wypisac cyfry od 1-81 wiec praca ta sama co bym ctrc ctrlv linijki z tym ze mniej linijek wyjdzie, wiem ze w obu przypadkach nie ma duzo pracy aczkolwiek chcialem to napisac sprytniej, ale dowiedzialem sie nowej rzeczy, dziekuje. Nie rozumiem twoich slow ze za duzo imagow, jak jeden wystarczy? Pisze sobie sudoku i kazde pole jest odzielne.
komentarz 15 kwietnia 2020 przez j23 Mędrzec (194,920 p.)

Tworzysz jeden image o wielkości planszy, w pętli rysujesz na tej planszy poszczególne pola na odpowiednich pozycjach (x,y) (właściwość Canvas). Pola, które zostały kliknięte, łatwo można wyliczyć z pozycji kursora myszy.

W sumie to dość proste do zaimplementowania, a zdecydowanie lepsze od ustawionych ręcznie 81 kontrolek.

komentarz 15 kwietnia 2020 przez lujasjeden Użytkownik (860 p.)
jak  z pozycji kursora myszy nie rozumiem
komentarz 16 kwietnia 2020 przez j23 Mędrzec (194,920 p.)
Bierzesz współrzędną x kliknięcia, dzielisz ją przez szerokość pola i masz numer kolumny. To samo robisz dla wartości y, tyle że dzielisz przez wysokość pola i masz numer wiersza.

Oczywiście współrzędne powinny być względem początku obszaru image'a.

Podobne pytania

0 głosów
1 odpowiedź 148 wizyt
pytanie zadane 27 listopada 2020 w C i C++ przez anonimowy_szejk Nowicjusz (190 p.)
0 głosów
2 odpowiedzi 199 wizyt
pytanie zadane 25 maja 2020 w C i C++ przez tonn204 Mądrala (7,440 p.)
0 głosów
3 odpowiedzi 232 wizyt
pytanie zadane 5 sierpnia 2016 w C i C++ przez dziki indyk Użytkownik (940 p.)

92,548 zapytań

141,391 odpowiedzi

319,511 komentarzy

61,932 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...