...fakt moja wina, że nie sprecyzowałem konkretnie.
Plik tekstowy wpomniany wcześniej zawiera strukturę która nie jest zapisem dla komponentów menu (nie ma ustawionej - jako nazwy - właściwości w ActionManager.FileName ani w tej samej właściwości dla ActionToolBar'a: oba pola puste). Plik tekstowy odzwierciedla jedynie struktury jakie (w trakcie działania programu) chcę wstawić do SynEdita. Problem polega - dla mnie - na pobraniu nagłówków tych struktur i na tej podstawie stworzenie dynamicznego menu.
Idea polega na:
Krok1.
{...}
var tab : array of string;
licz : integer;
linia : string;
const delimiter : string = '-------{delimiter}--------';
{...}
Assign(zm_plikowa,NazwaPliku);
Reset(zm_plikowa);
licz :=0;
while Not EoF (zm_plikowa) do
begin
//tworzymy tablice nagłówków z pliku
SetLength(tab,licz+1);
Readln(zm_plikowa,linia);
if linia=delimiter
then begin
// czytamy naglowek
Readln(zm_plikowa,tab[licz]);
// to do pozniejszej identyfikacji gdzie bylismy
tab[licz]:=tab[licz]+' '+IntToStr(licz);
inc(licz,1);
end
else inc(licz,1);
end;
CloseFile(zm_plikowa);
Krok 2.
Na podst stworzonej tablicy chce wlasnie utworzyc - dynamicznie - menu na ActionToolBarze (najlepiej przez rekurencje - gdyby sie dalo).
cos w stylu:
{...}
var myAction : TAction;
{...}
for licz:=0 to Length(tab) do
begin
myAction.Caption:=tab[licz];
myAction.Name:=tab[licz];
myAction.Create(MyAction.onExecute); //to tylko przyklad!
{...i inne instrukcje tworzące strukture akcji}
TActionToolBar.Bars[0].Item.Add(myAction);
..i potem na tej podstawie już tylko wywołanie onClick, onEnter
//albo co sie kompu podoba
dla ActionToolBar'a i obsluge wywołanej metody przez sprawdzenie ID akcji lub Nazwy w np. takim formacie:
var myAction : TAction; //to juz tylko
{...} //"wolna amerykanka"
procedure Form1.myActionExecute(.....)
begin
...
//tu w zaleznoscti od pobranego ID i odczytaniu z Captiona nr linii
// otwieramy plik tekstowy i przekazując przez lokalną zmienną
// wczytujemy odpowiednie linie do SynEdita
Pytanie zatem pozostaje - dla amnie - otwarte: da się wykombinować taką strukturę kodu coby zadziałała ???