Delphi 7 Lazarus BMP jak pasek - uchwyt okna

Delphi 7 Lazarus BMP jak pasek - uchwyt okna
Dodeq
  • Rejestracja:ponad 6 lat
  • Ostatnio:8 miesięcy
  • Postów:28
0

Dzień dobry,
Mam jeszcze jedno pytanie techniczne czy jest jakieś polecenie albo funckja aby wpisać i bmp z Timage przypisać Właściwości uchwytu okna? żeby można było "złapać bitmape i nią ruszać oknem? To też nie wiem jak się nazywa i jak szukać.
Dziękuję.

cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:około 6 godzin
  • Lokalizacja:Poznań
  • Postów:8805
0

Opisz proszę jeszcze raz co chcesz osiągnąć, bo nie jestem pewien, czy dobrze zrozumiałem, o co pytasz.
Z tego co zrozumiałem - chcesz, aby użytkownik mógł sobie kliknąć na jakiś obrazek na oknie i go przesuwać, jednocześnie pozostawiając samo okno w tym samym miejscu. Czyli - chcesz przesunąć obrazek na oknie, a nie okno na ekranie. Tak?


greenmag
  • Rejestracja:około 20 lat
  • Ostatnio:9 dni
  • Postów:353
0
Kopiuj
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  begin
    if (Button = mbLeft) then
      begin
        ReleaseCapture;
        SendMessage(Form1.Handle, WM_NCLButtonDown, htCaption, 0 );
      end;
  end;
edytowany 2x, ostatnio: greenmag
Dodeq
  • Rejestracja:ponad 6 lat
  • Ostatnio:8 miesięcy
  • Postów:28
0
cerrato napisał(a):

Opisz proszę jeszcze raz co chcesz osiągnąć, bo nie jestem pewien, czy dobrze zrozumiałem, o co pytasz.
Z tego co zrozumiałem - chcesz, aby użytkownik mógł sobie kliknąć na jakiś obrazek na oknie i go przesuwać, jednocześnie pozostawiając samo okno w tym samym miejscu. Czyli - chcesz przesunąć obrazek na oknie, a nie okno na ekranie. Tak?

nie nie. Chciałbym aby np bitmapa w kształcie prostokąta takim jak pasek okna (każdego wyświetlanego z możliwością zmniejszenia, powiększenia na pełny ekran, i zamknięcia X) zastąpiła go. Czy tak da się?

greenmag
tak właśnie masz w przykładzie wyżej...
Dodeq
  • Rejestracja:ponad 6 lat
  • Ostatnio:8 miesięcy
  • Postów:28
0
greenmag napisał(a):
Kopiuj
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  begin
    if (Button = mbLeft) then
      begin
        ReleaseCapture;
        SendMessage(Form1.Handle, WM_NCLButtonDown, htCaption, 0 );
      end;
  end;

czy tu muszę dodać coś? bo nie rozpoznaje tego "ReleaseCapture:;"

greenmag
gotowy kod, wkleić do zdarzenia OnMouseDown Obrazka za który chcesz chwytać aby przeciągnąć formę.
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 6 godzin
  • Lokalizacja:Tuchów
  • Postów:12175
1
Dodeq napisał(a):

czy tu muszę dodać coś? bo nie rozpoznaje tego "ReleaseCapture:;"

Dodaj do uses moduł Windows. Pod Lazarusem masz dwie opcje — albo dodać moduł Windows, albo wieloplatformowy LCLIntf, w zależności od tego czy na wieloplatformowości ci zależy.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
Dodeq
  • Rejestracja:ponad 6 lat
  • Ostatnio:8 miesięcy
  • Postów:28
0

Bardzo dziękuję. Na razie pytam o podstawy, jak poszerzę swoją wiedzę z czasem podpytam o wieloplatformowość.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.