Ja użyć funkcji ScaleRect()

problemy z tworzeniem aplikacji graficznych oraz audio i wideo

Ja użyć funkcji ScaleRect()

Nowy postprzez duf » czwartek, 6 września 2012, 13:25

Maluję na DBGrid ikonki w odpowiednich kolumnach ale zawsze umieszczane są na początku komórki. Chciałbym mieć możliwość określania miejsca w poziomie komórki gdzie ikonka ma się pokazać. Wydaje mi się, że służy do tego funkcja ScaleRect() ale nie znalazłem przykładu jak jej można użyć. Podaje przykład jak umieszczam ikonki w komórkach.
Kod: Zaznacz cały
ImageList1->GetBitmap( Index, bitmap );
intWidth = (Rect.Bottom - Rect.Top);
fixRect.Right = Rect.Left + intWidth;
DBGrid1->Canvas->StretchDraw( fixRect, bitmap ); 

Proszę o sugestie.
Avatar użytkownika
duf
Intelektryk
Intelektryk
 
Posty: 175
Dołączył(a): czwartek, 9 października 2008, 13:02
Podziękował : 17
Otrzymał podziękowań: 2
System operacyjny: Windows 10
Kompilator: XE8
Gadu Gadu: 0
    Windows XPFirefox

Re: Ja użyć funkcji ScaleRect()

Nowy postprzez Mironas » czwartek, 6 września 2012, 14:11

Zwiększ fixRect.Left
Avatar użytkownika
Mironas
Programista I
Programista I
 
Posty: 427
Dołączył(a): poniedziałek, 2 stycznia 2012, 19:02
Podziękował : 17
Otrzymał podziękowań: 61
System operacyjny: Windows 10
Kompilator: C++Builder 10.3 Rio
TMS Components Pack
Gadu Gadu: 0
    Windows XPChrome

Re: Ja użyć funkcji ScaleRect()

Nowy postprzez duf » czwartek, 6 września 2012, 15:12

Kod: Zaznacz cały
fixRect.Left = 1;

Dzięki. Jeżeli o to Ci chodzi to żadna wartość dodatnia ani ujemna nie powoduje przesunięcia ikony w prawo. Ikona jest rozciągnięta na pozostałe komórki.
Avatar użytkownika
duf
Intelektryk
Intelektryk
 
Posty: 175
Dołączył(a): czwartek, 9 października 2008, 13:02
Podziękował : 17
Otrzymał podziękowań: 2
System operacyjny: Windows 10
Kompilator: XE8
Gadu Gadu: 0
    Windows XPFirefox

Re: Ja użyć funkcji ScaleRect()

Nowy postprzez Mironas » czwartek, 6 września 2012, 16:28

Napisałem zwiększ a nie ustaw na 1. Czyli np.:
KOD cpp:     UKRYJ  
  int margines = 20;

  ImageList1->GetBitmap( Index, bitmap );
  intWidth = (Rect.Bottom - Rect.Top);
  fixRect.Left += margines;    // tutaj zwiększam
  fixRect.Right = Rect.Left + intWidth + margines;    // tutaj też może być konieczne
  DBGrid1->Canvas->StretchDraw( fixRect, bitmap );
 

Za ten post autor Mironas otrzymał podziękowanie od:
duf
Avatar użytkownika
Mironas
Programista I
Programista I
 
Posty: 427
Dołączył(a): poniedziałek, 2 stycznia 2012, 19:02
Podziękował : 17
Otrzymał podziękowań: 61
System operacyjny: Windows 10
Kompilator: C++Builder 10.3 Rio
TMS Components Pack
Gadu Gadu: 0
    Windows XPChrome

Re: Ja użyć funkcji ScaleRect()

Nowy postprzez duf » czwartek, 6 września 2012, 18:48

Mironas napisał(a):Napisałem zwiększ a nie ustaw na 1.

Słuszna uwaga. Dziękuję, działa.
Avatar użytkownika
duf
Intelektryk
Intelektryk
 
Posty: 175
Dołączył(a): czwartek, 9 października 2008, 13:02
Podziękował : 17
Otrzymał podziękowań: 2
System operacyjny: Windows 10
Kompilator: XE8
Gadu Gadu: 0
    Windows 7Firefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Aplikacje multimedialne, graficzne

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 1 gość