Access 2007 - Whats good and bad

very interesting info.... sorry forgot the link.... http://allenbrowne.com/access2007.html

Weird AutoSize Label

I like User Interfaces where the label with the description is beneath the textbox where you input the data...

Like this:


The Labels have 2 important properties set:


this.label1.AutoSize = true;
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;


BUT!!!!!!

When i change the text of the label in my code
(maybe localize it?)

It looks like this!



Grrr!!!
I have expected that it would be aligned right....


SOLUTION:
Dont use the AutoSize property, set it to false.
Set the width (Size) large enough...


this.label1.AutoSize = false;
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.label1.Size = new System.Drawing.Size(100, 13);

Next step on my certification path...






I have completed the Upgrade MCAD Skills to MCPD Windows Developer by Using the Microsoft .NET Framework Exam with success...

MCPD Windows Developer and
MCTS .Net Framework Windows Applications

Garbage Collector Artikel Zusammenfassung in Deutsch

Interessanter Artikel über:
Garbage Collection Automatic Memory Management in the Microsoft .NET Framework

Zusammenfassung:
- GC nimmt dem Entwickler gesamte Speichermanagement ab


- Bei Prozess Start wird von der Runtime ein zusammenhängender Speicher (Managed Heap) reserviert


-NextObjPtr zeigt auf den nächsten freien Speicherbereich im Managed Head

- Wird ein Objekt erzeugt wird einfach das Objekt im Managed Head abgelegt und zum NextObjPtr die Grösse des Objekts dazugezählt

- Sehr schnell diese Speicherzuweisung (Memory allocation), sogar schneller als C Speicherzuweisung

- Aber das beruht auf Annahme dass Speicher unendlich ist

- Daher, wenn Speicher voll ist, wird Speicher vom GC (Garbage Collector) aufgeräumt; Das braucht Zeit --> Performance leidet

- Der GC haut alle Objekte raus auf die keine Referenz mehr existiert und packt die restliche Objekte im Managed Heap zusammen Danach wird der NextObjPtr wieder richtig gesetzt

- Es gibt die Finalize Methode die von einem Objekt implementiert werden kann, wenn Dinge erledigt werden müssen, die beim Entfernen des Objekts aus dem Speicher gemacht wird
protected override void Finalize()
{
}

- Destruktor Methode wird mit Welle und Objektnamen angegeben; Diese Methode wird beim Zerstören des Objekts aufgerufen, und ersetzt eigentlich die Finalize Methode

~TestObject()
{
}

- Finalize sollte nicht verwendet werden

- Es gibt eine Finalization Queue, die dazu dient Object Pointer zu halten die eine Finalization Methode haben

- Es gibt eine F-Reachable Queue (Freachable), die dazu dient Object Pointer zu halten deren Finalization Methode aufgerufen werden sollte

- Special Runtime Thread ruft Finalization Methode der Objekte in der F-Reachable Queue auf

- Close oder Dispose Methode sind Standard für die Durchführung eines händischen Aufräumens (Clean Ups), und diese sollten implementiert werden

- SuppressFinalize(object obj) bewirkt dass der GC die Finalize Methode des Objekts obj nicht aufruft

Roaming User Config File - IMPORTANT on Terminal Server

Problem:
On Terminal Server all User Settings for a Winforms Application get lost on logout (logoff)

The Settings are written to:

\Documents and Settings\"username"\Local Settings\Application Data\...


but this folder is not saved in the Active Directory like the folder:
\Documents and Settings\"username"\Application Data\...


But in the Settings Designer we can change a flag IsRoaming that says where the .net Configuration System should save the settings!
(click picture)



Solution from
Client Settings FAQ

Cool Coding Tasks and Tests

SPOJ - Sphere Online Judge Ähnlich wie beim Google Code Jam, können (sollen und müssen) hier Algorithmen-Probleme gelöst werden. c# ist auch möglich juhu! Input kommt über Console.Readline() und Output muss über Console.Writeline geschrieben werden. Lösung für TEST

public class Test
{
   public static void Main()
   {
       int i;
       while (  (i = int.Parse(System.Console.ReadLine())) !=42 )
           System.Console.WriteLine(i);
   }
}

Latest Posts

Popular Posts