Ok Ich hab nun folgenden Code zusammengebaut:
Delphi-Quellcode:
// Fill Keyboard Variants
if Processcmd = 'xkeyboard-variants' then
begin
Form1.Page2Variantlist.clear;
Form1.Page2Variantlist.items.add('[None]');
for i := 0 to AMemo.Lines.Count - 1 do
if AMemo.lines[i] = '' then
// do nothing
else
if pos(Processvar,AMemo.lines[i]) <> 0 then
begin
Astring1:=copy(AMemo.lines[i],0,pos(' ',AMemo.lines[i])-1);
AString2:=copy(AMemo.lines[i],pos(' ',AMemo.lines[i])+1,length(AMemo.lines[i]));
AString2:=StringReplace(AString2,Processvar+' ','',[rfReplaceAll]);
Form1.Page2Variantlist.items.add(trim(Astring2) + ' [' + Astring1 + ']');
end;
end;
Den ich wie folgt aufrufe:
Delphi-Quellcode:
procedure TForm1.Page2LayoutListClick(Sender: TObject);
begin
//Fill Keyboard Variants
Processcmd:='xkeyboard-variants';
Processvar:= Page2LayoutList.Items.Strings[Page2LayoutList.ItemIndex];
Processvar:= copy(Processvar,pos('[',Processvar)+1,length(Processvar));
Processvar:= StringReplace(Processvar,']',':',[rfReplaceAll]);
Processandwait(Processcmd);
end;
Es funktioniert zwar aber es dauert ewig bis die Anzeige da ist. Die Liste die er durchgeht ist ca. 350 Zeilen lang. Es währe besser die Liste schon zu haben und nur diese durchzugehen. Mal sehen wie ich das hinbekommen. Ich denk ich hab schon was im Kopf ...