Lazarus 3.6 (2024.09.30.)
Letöltés

  • Oldal:
  • 1

TÉMA:

Hogyan válthatok fókuszt form-ok között? 2026 ápr. 03 13:18 #2718

  • Tomi
  • Tomi profilkép Témaindító
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 84
  • Köszönetek: 1
Sziasztok!
Nagyon elakadtam egy újabb Lazarus-os játékom fejlesztése közben, mégpedig azzal, hogy futásidőben létrehozok a fő form-on (form1) egy TPanel összetevőt és azon néhány TBitBtn gombot. Ezek a gombok arra szolgálnának, hogy rájuk kattintva a felhasználó átdefiniálhatja a játékot irányító gombokat, tehát ha lenyom egy gombot, akkor az lesz a jobbra mozgatáshoz rendelve, egy másik a lövéshez, stb.
A gond az, hogy amint rákattintok egy ilyen TBitBtn-ra, akkor az lesz aktív és nem tudom, hogy utána hogyan adjam vissza a fókuszt a form1-nek vagy bármely más összetevőnek.
Tehát ilyen a kódrészlet:
urh1panel:=TPanel.Create(form1);
     urh1panel.Parent:=form1;
     urh1panel.color:=clGreen;
     urh1panel.Left:=10;
     urh1panel.Top:=(form1.height div 2)-10;
     urh1panel.Width:=form1.width div 4;
     urh1panel.Height:=form1.height div 2;
     //
     urh1gombbalra:=TBitBtn.Create(urh1panel);
     urh1gombbalra.Parent:=urh1panel;
     urh1gombbalra.Left:=4;
     urh1gombbalra.Top:=4;
     urh1gombbalra.width:=urh1panel.width div 2;
     urh1gombbalra.Glyph.LoadFromFile('kepek\ikonbalra.bmp');
     (...)
     urh1gombbalra.DoubleBuffered:=true;
     urh1gombbalra.OnClick:=@form1.j1bgbeallit;
 
procedure TForm1.j1bgbeallit(Sender: TObject);
begin
     form1.enabled:=true;
     form1.visible:=true;
     form1.SetFocus;
end;
De ezek után nem történik semmi a gombnyomásra. Próbáltam ezzel is:
ActiveControl:=form1;
de erre meg azt írta hibaüzenetként, hogy letiltott vagy láthatatlan form-ra nem lehet a fókuszt továbbadni. Szóval most teljesen leálltam, pedig még a ChatGPT segítségét is bevetettem. Valaki tudna segíteni, segítő magyarázatot adni ezekkel kapcsolatban?

  • Oldal:
  • 1