Thursday, February 11, 2010

.Net Resourcen

einfach in ein resx file bilder usw hinzufügen (drag & drop aus dem Explorer) es wird dann in ein resource file compeliert und zum assembly dazugelinkt

Tuesday, February 09, 2010

Activity Monitor Sql 2008

Der Activity Monitor ist beim Sql 2008 durch rechtsclick auf den Server im Management Studio zu erreichen, und nciht mehr wie bei SQL2005 unter Management

.Net Color zu Crystal Reports Farbe konvertieren

.Net speichert die Farbe Color als 4Bytes: ARGB
A ... Alpha Channel (durchsichtigkeit)
R Rot
G Grün
B Blau

Crystal Report erwartet die Farben in BGR (Blau Grün Rot).
Daher muss man den Alpha Teil wegschneiden und R sowie B vertauschen - z.b. in TSQL Scalar Value Funtion:

-- Create date: 09.09.2010
-- Description: Wandelt ARGB (Alpha Channel rgb von .Net Color.ToARGB() hat 4 Byte für RGBA, wobei Rot= 00ffff Grün=ff00ff und blau=ffff00 ist ) in RGB um
-- =============================================
ALTER FUNCTION [dbo].[fnArgb2Bgr]
(
@ARGB as int
)
RETURNS int
AS
BEGIN
DECLARE @BGR as int
DECLARE @R as int = (@ARGB & 0x00FF0000)/0x10000
DECLARE @G as int = (@ARGB & 0x0000FF00) /0x100
DECLARE @B as int = (@ARGB & 0x000000FF)

SET @BGR=@B*0x10000+@G*0x100+@R
--SET @RGB=(((-@ARGB) & 0x00FFffFF) ^ 0xFFffFF)
--SET @RGB=(((-@ARGB) / 256) ^ 16777215) -- shift um 8 bits => schneide niedrigstes byte (alpha channel) weg, dann invertieren der verbleibenden unteren 3 bytes [RGB] (16777215= 0xffFFff)
RETURN @BGR

END

Tuesday, February 02, 2010

Auslesen von Resourcen

1) Assmembly öffnen
2) aus dem Manifest enthaltenen Resourcen auslesen
3) für alle Resourcen des Assemblies mittels ResourceReader die einzelnen Resourceinträge lesen

Assembly a=Assembly.LoadFrom(@"E:\Anwendung.resources.dll");
foreach (string resourceName in a.GetManifestResourceNames())
{
// Opens a resource reader and gets an enumerator from it.
IResourceReader reader = new ResourceReader(a.GetManifestResourceStream(resourceName));
IDictionaryEnumerator en = reader.GetEnumerator();

while (en.MoveNext())
{
Console.WriteLine();
Console.WriteLine("Name: {0}", );
Console.WriteLine("Value: {0}", en.Value);
}
reader.Close();
}

string Array in Windows.Forms.Datagrid anzeigen

in ASP.Net muss man einem GridView einfach nur die Datasource auf ein String Array setzen, udn dies wird angezeigt. In Windows Forms wird dann lediglich die Length Property angezeigt, nicht aber die Strings selbst.
Abhilfe: konvertieren des string Arrays in einen LinQ Anaonymen Typen:

Beispiel: anzeigen der Resources eines Assemblies:
Assembly a=Assembly.LoadFrom(@"C:\Anwendung.resources.dll");
var x=a.GetManifestResourceNames().Select(item => new { bla = item}).ToList();
dg.DataSource = x;