![]() |
Compilieren der Standard-Packages
Hallo,
ich habe XE2 Professional und folgendes Problem: In den DB-Grid's wird bei den Boolean-feldern "Wahr" und "Falsch" angezeigt. Das möchte ich mit "Ja" und "Nein" ersetzen. Also "Data.DBConsts" geöffnet, Text geändert, und versucht das Package neu zu compilieren. Pustekuchen, dclbde160.bpl kann ich nicht neu compilieren, weil die dpk nicht gefunden wird. Ist auch nirgendwo vorhanden. In den Versions-Informationen auf den Embarcadero Seiten hab ich keinen Hinweis gefunden, ob und wenn ja in welchen Editionen der Quelltext der dpk's enthalten ist. Oder muss man die separat downloaden? Oder soll man die bpl's gar nicht neu compilieren, weil's irgendwelche Nebeneffekte geben kann... oder was auch immer? Mit allen vorherigen Versionen die ich hatte (zuletzt 2007) war's ohne Probleme möglich. |
AW: Compilieren der Standard-Packages
Es reicht, wenn die dcu gefunden wird.
|
AW: Compilieren der Standard-Packages
Hallo Markus,
vielen Dank für deine schnelle Antwort. Auf diesen Trichter wär ich ja auch schon gekommen, aber, egal was ich mache, die dcu wird nicht erstellt. Ich hab ein neues Projekt aufgemacht, ein DBGrid plaziert, Data.DBConsts bearbeitet, "Alle Projekte erzeugen"...nix passiert, nirgends eine "DBGrids.dcu" zu finden. Ich glaub, obwohl ich so lange schon mit Delphi arbeite, irgendwas hab ich noch nicht ganz kapiert :oops: |
AW: Compilieren der Standard-Packages
Hallo,
die Darstellung des boolschen Feldes kanst Du doch auch über das Property "DisplayValues" des zugehörigen Feldes lösen. Ja;Nein wäre da deine Einstellung. Ciao Frank |
AW: Compilieren der Standard-Packages
Hallo Frank,
joooo...möglich, aber es sind 90+ Tables (also ca. 1000 Displaylabels zum durchsehen) und ebenso viele Grids, und nicht zu allen Datenbanken hab ich persistente Felder, weil die Datenbankfelder teilweise vom User selber bestimmt werden können. Da war eben die bisherige Lösung mit dem Neucompilieren die eleganteste, schnellste und sicherste Variante. [Edit] Ein weiteres vielaus größeres Problem (soeben erst bemerkt) kommt hinzu: In den Formularen (List&Label) deklariere ich teilweise die Boolean-Felder als string, um in den Listen eben "Ja" und "Nein" zu bekommen. Wenn nun Anwender Listen erstellt haben mit Filtern/Abfragen zu Boolean-Feldern, dann funktionieren diese Listen nicht mehr. Field.asString gibt nämlich dann auch "Wahr" und "Falsch" zurück, und nicht den Display-Label-Wert. Es führt also kein Weg daran vorbei... [/Edit] |
AW: Compilieren der Standard-Packages
Folgende Lösung funktioniert, wenn du deine Anwendung ohne runtime Packages buildest:
Füge die geänderte DBConsts einfach explizit deinem Projekt hinzu. Am einfachsten geht das, indem du die geöffnete DBConsts.pas oben am Tab greifst und sie in dein Projekt im Projektmanager ziehst. Dann wird nämlich beim Kompilieren diese Datei neu kompiliert und nicht die dcu benutzt, die Bestandteil der Delphi Installation ist. Alternative ohne Veränderung der Delphi Sourcen: Folgende Unit in dein Projekt einbinden:
Delphi-Quellcode:
Ich gehe mal davon aus, dass du keine Lokalisierung hast, denn sonst solltest du das mit dem 'Ja'/'Nein' dort lösen.
unit DBConstsChange;
interface implementation uses DBConsts, Windows; procedure ChangeResourceString(ResString: PResStringRec; NewValue: PChar); var oldProtect: DWORD; begin if VirtualProtect(ResString, SizeOf(ResString^), PAGE_EXECUTE_READWRITE, @oldProtect) then begin ResString.Identifier := Integer(NewValue); VirtualProtect(ResString, SizeOf(ResString^), oldProtect, @oldProtect); end; end; initialization ChangeResourceString(@STextFalse, 'Nein'); ChangeResourceString(@STextTrue, 'Ja'); end. |
AW: Compilieren der Standard-Packages
Hi Stefan,
wooow....das funzt. Wieder was dazu gelernt :-D Vielen herzlichen Dank für diesen megageilen Tipp. [EDIT] Hat sich jetzt überschnitten.... uses ... Data.DBConsts in 'c:\program files (x86)\embarcadero\rad studio\9.0\source\data\DE\Data.DBConsts.pas'; ... Das meinte ich mit "es funzt" [/EDIT] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz