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:
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?