01. marts 2007 - 10:42Der er
13 kommentarer og 1 løsning
DataSource-link forsvinder umotiveret
I det program jeg arbejder med - og det har en historie tilbage til D1. Delphi 7 er platformen. Komponentpakken InfoPower (egentlig noget skrammelsoftware) er et centralt element.
Mainformen, en tung grim sag på 17000 linjer, indeholder et væld af TwwTable-, TwwQuery- og TwwDataSource-komponenter som de omkringliggende forme refererer til. Det er grimt, dumt og noget der hører fortiden til - men lad det ligge.
Problemet er at jeg flere gange har oplevet at disse referencer umotiveret forsvinder:
- Går ind i en subform, retter nogle ting i koden, gemmer og oversætter. Trykker <F9> og kører programmet. Pludselig fejler formen da datasourcen i TwwDBGrid m.fl. er blevet nulstillet.
- Stopper programmet, sætter datasource'rne op igen, gemmer, kører og alt er fint.
- Stopper programmet, arbejder videre, oversætter, kører programmet og pludselig er den gal med formen igen.
Er det Delphi, mig eller InfoPower der driller?
Jeg har oplevet det 2-3 gange i den sidste måneds tid. Er der nogen der har lignende oplevelser - og eventuelt en forklaring på hvad der sker?
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Jeg har oplevet det engang, jeg lavede noget kode i create proceduren der satte dem rigtigt, så jeg ikke skulle cheke det hver gang.
Du kan prøve at checke din dfm fil og se om ref. stadig står i den, det kan jo ligge mange stedder men mon ikke det er et resource problem, når du har alle de comp.
Hej Martin. Jeg kan desværre ikke bruge rådet da der er en halv zillion (400+) forme der gør kan finde på at gøre det sådan. Da jeg ikke ved hvad udløser handlingen er det nærmest umuligt at teste.
Fik lige en idé. Nu jeg har taget arbejdet med at konvertere alle DFM-filerne til tekstfiler, lave et program der høvler gennem dem og tjekker de komponenter der ikke kan virke uden en DataSource. Kan vel bruge Delphi's egne klasser til at læse komponenternes attributter. Måske skal jeg prøve det i aften - mellem bleskift, vasketure, indkøb, reparation af cykler/legetøj, madlavning, oprydning, opvask og historielæsning... Med børn forsvinder der altså et stort element i en nørds liv: Det at kunne nørde og derved slippe lidt væk fra kæresten :-) Håber børnene vil passe mig når jeg bliver gammel!!
Det kan jo godt ligge i dine InfoPower comp. hvis de i nogle situationer fuker delphi component load op, så for de ikke loadet form/component props rigtigt ind. Derfor kunne det være meget interessant at vide om der rent faktisk står det der skal i dfm filen.
Den brugte jeg skam også. Noget med "for %%v in (*.dfm) do convert %%v %%v -o" i en bat-fil - men der var alligevel en del arbejde bagefter for programmet kunne ikke oversættes bagefter (og hvor var backuppen?).
Kiggede i DFM-filen og datasource'ne står fint. De forsvandt igen for en time side, så nu har jeg faktisk proppet en OutputDebugString, samt manuel indsættelse af datasource'ne ind i min OnCreate.
Spekulerer på om det har noget at gøre med, at førnævnte mange tabeller på mainformen også findes med identiske navne på et TDataModule der også er synlig fra formen.
Jeg endte med at gøre som du anbefalede: At hårdkode det i OnCreate - men pønser på at lave et program der kigger efter manglende DataSource properties ved udvalgte klasser. Et "Check før jeg frigiver"-program. Har lige måtte gøre det ved en dialog i dag; mistænker WPTools komponenterne for at være dårligt kodede.
Hvis jeg ikke husker helt forkert er det noget jeg har oplevet "med dårlige componenter" installeret :), så det kunne godt være du skulle bore lidt i den mistanke...
En opfølgning: Har nu gjort det til praksis at åbne main-formen som det første. Hvis den er der (det er der tabellerne er anbragt (af en programmør, der burde sættes på hjul og stejle (http://da.wikipedia.org/wiki/Hjul_og_stejle)), bliver linksene ikke revet over - ellers gør de det ganske konsekvent.
Indrømmet. Hjul og stejle er måske lige rabiat nok, men mainformen fylder næsten en halv Mb og er ret svær at finde rundt i.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.