Dotaz. Počítáš v GG (určitě ano) se zavedením maker, které by např. dokázaly načíst filtr, uložit v nějakém formátu, uložit v jiném formátu, načíst jiný fitr … atd.? Jsem dost líný, tak bych jednou kliknul a už by to lítalo ![]()
Možná to nějak jde už teď, ale to nevím jak.
Pokud jsem to dobre pochopil, pak to co potrebujes by melo byt mozne jiz dnes, viz, nasedujici funkce v makrech:
Nacteni nastaveni filtru ze souboru:
procedure GeoFilterLoadFile(value: string)
(value je jmeno souboru *.ggf)
Naplneni seznamu podle prave platneho filtru:
function GeoFilter: boolean
Export prave naplneneho seznamu:
procedure GeoExport(exporter, filename: string)
(exporter je soubor s exportnim filtrem, filename je jmeno souboru, kam se ulozi vysledek)
Vyprazdneni aktualniho vypisu:
procedure GeoListClear
Takze ted uz jen to posladat dohromady. ![]()
Pochopil jsi to správně. Večer si toto GEGO (lego) složím. Díky.
kdyz bude problem, klidne se ptej. (tyto fnkce sjem jeste ani ja sam poradne nevyzkousel, tak snad bude vse fungovat jak ma…)
Jo, tak mám menší problém :-))) K tomu gegu mi chybí návod …
Vytvořil jsem toto jako pokus na jeden fitr a jedno uložení a uložil jako makro.gge.pas
function ExportDescription: string;
begin
result := ‘makro’;
end;
procedure GeoFilterLoadFile(trad.ggf: string);
function GeoFilter: boolean;
procedure GeoExport(wpt1.gge.pas, trad.wpt: string);
Nechci se chlubit, ale přišel jsem na to, že je to nějak špatně. Asi mi tam toho krapet chybí. Jestli mi opravíš moje zásadní chyby, budu rád, není to BASIC ![]()
predne, nechces asi delat exportni skript, ale plugin do uzivatelskeho rozhrani, takze soubor nazvi spise pokus.ggp.pas (to ggp.pas je na konci dulezite!), a uvnitr se definuji trosku jine funkce. Navic funkce v pascalu se volaji trosku jinak nez vypada jejich deklarace. ![]()
V kazdem pripade doporucuji si stahnout par prikladu: http://geoget.ararat.cz/file/geogetplugin.zip
…a nezapomenout nahlizet do dokumentace: http://geoget.ararat.cz/doku.php/doc:macro.
Zacni s takovouto kostrou:
function PluginCaption: string;
begin
Result := 'Pokus Zlicinaku';
end;
function PluginIcon: string;
begin
Result :=
DecodeBase64('Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AP//////////////////////////AA///////wD/8A////8A////D////w//8A8A///w/wAAAPD//wDwD///8P//D/D///8A//8P///w/w///wDw///wD///8A///wD/////AP/wD//////w/wD///////8A////////////////');
// to je ikonka na toolbaru...
end;
function PluginFlags: string;
begin
Result := 'toolbar';
//ze se ma zobrazovat ikonka na toolbaru...
end;
procedure PluginStart;
begin
//sem dame kod...
GeoFilterLoadFile('trad.ggf');
GeoFilter;
GeoExport('wpt1.gge.pas', 'trad.wpt');
end;
procedure PluginWork;
begin
//vola se pro kazdy vybrany bod v listu, to my ale ted nepotrebujeme
end;
procedure PluginStop;
begin
end;
Ted z hlavy nevim, jestli to nahodou nebdue chtit u tech souboru uvadet i adresarove cesty…
Dík ![]()
procedure PluginStart;
begin
//mírně upravený kód …
eoFilterLoadFile(‘C:\Documents and Settings\uzivatel\Data aplikací\geoget\trad.ggf’);
GeoFilter;
GeoExport(‘C:\Documents and Settings\uzivatel\Data aplikací\geoget\wpt1.gge.pas’, ‘C:\Documents and Settings\uzivatel\Data aplikací\geoget\trad.wpt’);
GeoExport(‘C:\Documents and Settings\uzivatel\Data aplikací\geoget\ov2.gge.pas’, ‘C:\Documents and Settings\uzivatel\Data aplikací\geoget\trad.ov2’);
end;
Tohle krásně exportuje data. Jenom to místo filtru trad.ggf bere všechny kešky, které jsou zrovna vyfiltrované "na obrazovce", takže mi tam ještě něco asi chybí. Ikonka pluginu krásně zobrazuje moji lenost, dík ![]()
Ono to ma brat kesky co mas na obrazovce, jen je pred tim na tu obrazovku ma nalit podle nahraneho filtru. Nefunguje ti to proto, ze jsem te trosku mystifikoval. ![]()
Misto ‘geofilter’ dej ‘GeoListLoad’ a melo by to byt OK.
[i]procedure PluginStart;
begin
GeoFilterLoadFile(‘C:\Documents and Settings\uzivatel\Data aplikací\geoget\trad.ggf’);
GeoListLoad;
GeoExport(‘C:\Documents and Settings\uzivatel\Data aplikací\geoget\wpt1.gge.pas’, ‘C:\Documents and Settings\uzivatel\Data aplikací\geoget\trad.wpt’);
GeoExport(‘C:\Documents and Settings\uzivatel\Data aplikací\geoget\ov2.gge.pas’, ‘C:\Documents and Settings\uzivatel\Data aplikací\geoget\trad.ov2’);
GeoListClear;
GeoFilterLoadFile(‘C:\Documents and Settings\uzivatel\Data aplikací\geoget\multi.ggf’);
GeoListLoad;
GeoExport(‘C:\Documents and Settings\uzivatel\Data aplikací\geoget\wpt1.gge.pas’, ‘C:\Documents and Settings\uzivatel\Data aplikací\geoget\multi.wpt’);
GeoExport(‘C:\Documents and Settings\uzivatel\Data aplikací\geoget\ov2.gge.pas’, ‘C:\Documents and Settings\uzivatel\Data aplikací\geoget\multi.ov2’);
end;[/i]
Funguje, díky moc.
GEGO funguje! ![]()
Ty celé cesty k souborům to evidentně potřebuje. A také jsem bádáním zjistil, že GG se odmítá bavit s makrem, ve kterém je chyba a to je dobré. GEGO. ![]()
K tem cestam - muzes misto:
‘C:\Documents and Settings\uzivatel\Data aplikací\geoget\trad.ggf’
Pouzit neco takoveho:
Geoget_Datadir + ‘\trad.ggf’
promenna Geoget_Datadir vdy v sobe obsahuje prave platny datovy adresr geogetu.
K ladeni… muzes pouzit v tools - Script debugger, ktery ti umi okontrolovat syntaktickou spravnost skriptu a pripadne ti i rekne kde presne je jaka chyba.
Tak sem dávám pro případného zájemce funkční makro (nazvěme ho třeba [color=maroon]makro.ggp.pas[/color]), které načte kešky podle zvoleného filtru a následně je exportuje jako WPT a OV2. Makro uložte do stejného adresáře, ve kterém je i databáze geoget.db3.
[color=maroon]
function PluginCaption: string;
begin
Result := ‘Export WPT a OV2’;
end;
function PluginHint: string;
begin
Result := ‘Export WPT a OV2’;
end;
function PluginIcon: string;
begin
Result :=
DecodeBase64(‘Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AP//////////////////////////AA///////wD/8A////8A////D////w//8A8A///w/wAAAPD//wDwD///8P//D/D///8A//8P///w/w///wDw///wD///8A///wD/////AP/wD//////w/wD///////8A////////////////’);
// to je ikonka na toolbaru…
end;
function PluginFlags: string;
begin
Result := ‘toolbar’;
//ze se ma zobrazovat ikonka na toolbaru…
end;
procedure PluginStart;
begin
GeoFilterLoadFile(Geoget_Datadir + ‘\trad.ggf’);
GeoListLoad;
GeoExport(Geoget_Datadir + ‘\wpt.gge.pas’, Geoget_Datadir + ‘\trad.wpt’);
GeoExport(Geoget_Datadir + ‘\ov2.gge.pas’, Geoget_Datadir + ‘\trad.ov2’);
end;
procedure PluginStop;
begin
end;
[/color]
Samozřejmě názvy filtrů (ggf), exportních maker (gge.pas) a názvy výsledných souborů (wpt, ov2) si musíte přepsat podle vlastních.
Vyskytl se malý problém. Když proběhne export pomocí ov2custom.gge.pas (to je jakási upravená verze, která na konci konvertuje pomocí gpsbabel.exe ov2i na ov2), ten gpsbabel.exe se v tomto makru nespustí a nevytvoří to tedy správný ov2 soubor.
Takže bych to popsal tak, že nevím co s tím, protože ten exportní soubor bude asi muset být napsaný jinak
Ovšem makro do wpt maká jako ďábel a to je dobře ![]()