naja, den ersten teiel habe ich soweit verstandne nur den zweiten nicht:
mein ziel ist es ein Menu zur laufzeit zu erstellen, qullcode:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46:
|
procedure TForm1.CreateHigMenu; var hlList:TSynHighlighterList; M:TMenuItem; count,i:Integer; str:String; begin inherited; hlList := GetPlaceableHighlighters; count:=0; for i := 0 to hlList.Count-1 do begin if count <= HigMaxiMenu-1 then begin inc(count); m:=TMenuItem.Create(self); m.Caption:=hlList.Items[i].GetLanguageName; Higleiter1.Add(m); end;
if count = HigMaxiMenu then begin count:=count+1; m:=TMenuItem.Create(Self); m.Caption:='-'; HigLeiter1.Add(m);
m:=TMenuItem.Create(Self); m.Caption:='Menu &Auswählen...'; M.ShortCut:=TextToShortCut('Strg+H'); M.OnClick:=HigAusClick; HigLeiter1.Add(m); end else Form2.ListBox1.Items.Add(hlList.Items[i].GetLanguageName); end;
end; |
ich hoffe du versteht mein problem....
und die "highlighter" werden dann aus dem menu bzw. aus der ListBox geladen....
ich hatte das jetzt soweit:
das ich einfach alle highlighter kompos die es gibt aufs form gepackt habe und fertig und dann über eine funktion FindExt(die habe ich selbst geschrieben) mir die richtige komponente rausgesucht und fertig.... aber mein ziel war es die highlighter zur laufzeit zu erstellen(wegen dem speicherplatzt und der geschwindigkeit)