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ę.
Delphi 7 Lazarus BMP jak pasek - uchwyt okna
- Rejestracja: dni
- Ostatnio: dni
- Postów: 28
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Poznań
- Postów: 9012
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?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 353
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;
- Rejestracja: dni
- Ostatnio: dni
- Postów: 28
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ę?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 28
greenmag napisał(a):
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:;"
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Tuchów
- Postów: 12269
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.