Ereigniszustellung und Hostgrenzen korrigieren und Change archivieren

This commit is contained in:
2026-09-05 19:15:31 +02:00
parent 57d6386a5a
commit 644a86212f
39 changed files with 2013 additions and 271 deletions

View File

@@ -0,0 +1,29 @@
use tb_runtime::host::{CaptureHost, Ereignis, MausArt, MausEreignis};
use tb_vm::interp::{RunEvent, Vm};
fn main() {
let form = tb_ui::frm::read_text(
"eingabe-taste-maus.frm",
include_str!("../../compat/eingabe-taste-maus.frm"),
)
.unwrap();
let module = tb_vm::compile_source_with_forms("FORM1", &form.code, &form.catalog()).unwrap();
let mut vm = Vm::new(module);
form.apply(&mut vm.forms).unwrap();
vm.forms.show(0, false).unwrap();
let mut host = CaptureHost::default();
host.ereignis_nach(2, Ereignis::Taste("K".into(), 0));
host.ereignis_nach(
2,
Ereignis::Maus(MausEreignis {
art: MausArt::Druck,
taste: 1,
shift: 0,
zeile: 2,
spalte: 2,
}),
);
assert_eq!(vm.run(&mut host), RunEvent::Ended);
assert_eq!(tb_runtime::snapshot::text(&vm.rt.screen), "KM\n");
println!("Terminalfreier FRM-/VM-Lauf: KM");
}