Hallöle...
Ich habe meinen Frames einen Container (TForm) wegen dem "ENTER zum nächsten Control" verpaßt. Nur das
Perform(WM_NEXTDLGCTL, 0, 0) wird nur auf das erste Control losgelassen. Wieso ist das ActiveControl des ContainerForms immer nil?
Was fehlt?
PS: TabStop ist kontrolliert und Active
Delphi-Quellcode:
class function TdAV_FormFactory.CreateFormContainer(ChildFrame: TfrBase): TfoContainer; // entspricht TForm + diverse Events
begin
Result := TfoContainer.Create(nil, ChildFrame);
Result.Align := alClient;
Result.BorderStyle := bsNone;
ChildFrame.Parent := Result; // eingebettet :-)
end;
Delphi-Quellcode:
procedure TfoContainer.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); // wird bei jedem Tastendruck, auch aus dem Frame, ausgeführt
var
aMsg: TMsg;
begin
if (Key = VK_RETURN) and (not (Self.ActiveControl is TAdvMemo)) then // hier ist ActiveControl = nil *grübel* - das sollte das letzte Control sein?
begin
FChildFrame.ParentFormKeyDown(Self, Key);
Perform(WM_NEXTDLGCTL, 0, 0); // wird zwar ausgeführt aber läuft ins Leere immer auf das erste Control des Frames
end;
if Key = VK_ESCAPE then
begin
Self.Close;
end;
end;
Crosspost DT:
https://forum.delphi-treff.de/index....tiveContol-nil