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

c++ builder image wlasciwosci

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
826 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 (155,140 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 (155,140 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 (195,260 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 (155,140 p.)
Serio?
Byłem przekonany, że Builder skończył się na szóstce.
komentarz 15 kwietnia 2020 przez j23 Mędrzec (195,260 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 (195,260 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 (195,260 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 (195,260 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 (195,260 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ź 323 wizyt
pytanie zadane 27 listopada 2020 w C i C++ przez anonimowy_szejk Nowicjusz (190 p.)
0 głosów
2 odpowiedzi 224 wizyt
pytanie zadane 25 maja 2020 w C i C++ przez tonn204 Mądrala (7,470 p.)
0 głosów
3 odpowiedzi 346 wizyt
pytanie zadane 5 sierpnia 2016 w C i C++ przez dziki indyk Użytkownik (940 p.)

93,191 zapytań

142,206 odpowiedzi

322,041 komentarzy

62,518 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 3053p. - dia-Chann
  2. 2884p. - Łukasz Piwowar
  3. 2876p. - Łukasz Eckert
  4. 2854p. - CC PL
  5. 2704p. - Tomasz Bielak
  6. 2678p. - Łukasz Siedlecki
  7. 2666p. - rucin93
  8. 2584p. - Adrian Wieprzkowicz
  9. 2536p. - Mikbac
  10. 2485p. - Marcin Putra
  11. 2418p. - Michal Drewniak
  12. 2239p. - Michał Telesz
  13. 2156p. - Anonim 3619784
  14. 1733p. - rafalszastok
  15. 1650p. - Mariusz Fornal
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...