Laden...
K
KenshinX myCSharp.de - Member
F&E Systemprogrammierung Österreich Dabei seit 19.07.2006
Benutzerbeschreibung

Forenbeiträge von KenshinX Ingesamt 97 Beiträge

24.06.2009 - 11:47 Uhr

Ok habs rausgefunden... einfach per pinvoke einen CompatibleDC baun, darauf dann ein CompatibleBitmap von dem ursprünglichen mit SelectObject auswählen, auf den zuvor erstellten CompatibleDC zeichnen. Also so wie früher in C++ 😉

24.06.2009 - 09:02 Uhr

Hi 😉

Hab mal ne Frage... ich hol mir von ner Bitmap die Graphics... also Graphics.FromImage(bmp) ... auf dieses graphics objekt zeichne ich nun einen normalen text mit dem TextRenderer (ich muss GDI verwenden, ist ne lange geschichte) schreib - alles ok... wenn ich nen fetten (also Bold) text schreibe, is der voll hässlich, wenn ich den modus auf transparent stelle (mit SetBkMode -> pinvoke)

wieso?

danke

28.05.2009 - 15:53 Uhr

Hi 😉

Ich würde dir empfehlen ein Framework dafür zu verwenden... hab jetzt nicht unbedingt viel Erfahrung damit, aber XNA soll recht gut sein, wenn du mit .Net Sprachen programmieren willst.

[http://msdn.microsoft.com/en-us/xna/default.aspx]MSDN: XNA]()

21.10.2008 - 22:38 Uhr

Ah genau, auf das hab ich gar nicht gedacht danke 😉

21.10.2008 - 14:43 Uhr

Wie funktioniert das? Das wird ja automatisch ausgelesen oder?

Nein, steht doch da, ein string[], also nichts komplexes. wie kann man da drauf ein split loslassen? ist doch im xml...?

21.10.2008 - 12:06 Uhr

post mal dein css bzw versuch mal display:block

21.10.2008 - 12:03 Uhr

Mach doch anstelle des asp:Hyperlinks einen asp:LinkButton
Da kannst dann ein OnClick event zuweisen

21.10.2008 - 11:37 Uhr

Hi 😉

Wie jedem hier bekannt ist, kann man bei Usercontrols natürlich auch Properties deklarieren zb

public string MyProperty { get; set; }

und diese dann im Asp Xml setzen:

<uc1:MyUserCtrl runat="server" ID="aId" MyProperty="hallo" />

gut, ich weiß allerdings nicht, wie das mit einem string[] Property funktioniert 😉
kann mir da jemand helfen? müsste also mein Property

public string MyArrayProp { get; set; }

befüllen 🙂

danke
KenshinX

18.09.2008 - 15:43 Uhr

Schau dir mal AJAX an 😉
ScriptController oder so heißt der und ein UpdatePanel (sind 2 Controls im VS)... wo jetzt genau dein Problem ist, versteh ich zwar nicht so ganz, aber mit AJAX kannst du, ohne dass die ganze Seite neu ladet infos zum Server zurückschicken und dann darauf antworten... aktuallisiert wird alles innerhalb der UpdatePanel(s).

greets
kenshin

18.09.2008 - 14:16 Uhr

Thx hab mich schon zurecht gefunden... hab nen c# wrapper um den SHFolderBrowser gebaut 😉

18.09.2008 - 12:29 Uhr

Hi 😉

danke für deine Antwort! Werd mir das mal anschaun.
Ja auf codeproject hab ich auch schon gesucht, aber nicht viel gefunden.

17.09.2008 - 15:35 Uhr

hi 😉

ich würde gerne beim FolderBrowseDialog einen pfad eingeben... zb. \anyserver\afolder ... ja, aber da is nichts zum eingeben 😉

wenn ihr VS habt geht mal auf Procject Settings -> Reference Paths -> ... (browse for folder) ... so sollte er aussehen (sieht komplett gleich aus, nur halt noch ein input field)

thx!
Kenshin

17.09.2008 - 12:56 Uhr

Ok, werd ich mir mal anschaun, danke euch beiden!

16.09.2008 - 19:21 Uhr

Danke für die antwort, hat aber leider nichts mit den SpecialFolders zu tun 😉 die drei links betreffen nur file extensions

16.09.2008 - 13:56 Uhr

zb es gibt ja ein icon für die extension .txt... und die SpecialFolder in Environment.SpecialFolder haben ja auch alle eigene icons wie zb. my documents, my music, etc.

und von denen brauch ich das image 😉

16.09.2008 - 13:23 Uhr

Hi 😉

weiß jemand wie man von den Environment.SpecialFolder die images dazu bekommt?

thx
Kenshin

15.07.2008 - 09:21 Uhr

Thx is aber leider nicht das was ich suche 😉
Möchte den PrintDialog von .net verwenden. Andere Applikationen verwenden den ja auch und da ist kein Apply Button zu sehen. Kann man da vielleicht irgendwas mit dem DEVMODE oder so einstellen?

15.07.2008 - 08:22 Uhr

Hi 😉

Da es um ein Form geht, bin ich hier glaub ich richtig.

Und zwar rufe ich folgendermaßen meinen PrintDialog auf:

using (PrintDialog pd=new PrintDialog())
{
  pd.ShowDialog();
  // ....................
}

Das funktioniert auch gut, nur beim PrintDialog ist ein Apply bzw. Übernehmen Button ... und der gehört normal nicht hier hin... Jemand eine Ahnung wie man den wegbekommt?

Thx!

11.07.2008 - 09:24 Uhr

Ok konnte das Problem endlich loesen... beim PrintPage Event waren die PageUnits nicht auf Pixel gestellt... also sollte jemand auch so ein problem haben unbedingt kontrollieren, ob die PageUnits auf das gesetzt sind, was ihr braucht 😉

10.07.2008 - 10:16 Uhr

hi 😉

Ne Frage... Ich drucke mit Hilfe des PrintDialogs und PrintDocument mit dem Aufruf der Methode Print(). Was gedruckt wird, mach ich in der Methode PrintPage (event was bei Print() augerufen wird).

Meine Frage ist, wie kann ich erkennen, dass der User den Druckauftrag abgebrochen, neu gestartet oder pausiert hat?

Danke!

09.07.2008 - 11:45 Uhr

Hi! Ich drucke mit C# mit dem PrintDocument (rufe die Print() Methode auf und hab als Event beim PrintPage eine Methode gemacht).
Dann hol ich mir vom PrintEventArgs e die Graphics und zwar so:

SimpleDraw(e.Graphics, 1 /*page*/);

Die Simple Draw Methode zeichnet einfach auf das Graphics objekt rauf.
Bei den PrinterSettings wird mir gesagt, dass 600 DPI verwendet werden... dem ist jedoch nicht so... der Output sieht dann dementsprechend aus (das Graphics objekt kann maximal 72 dpi bei dem Output).

Hab als Test eine bmp datei erstellt in der größe einer A4 Seite mit 600dpi... ruf es auch mit der Methode auf und speichere das Bitmap wieder ab... da ist der Output dann richtig!

Wo könnte da der Fehler sein?

Vielen Dank für die Hilfe!!!

edit: 76 dpi -> 72 dpi

edit2: was vielleicht noch anzumerken ist:
Bei Graphics vom Bild: VisibleClipBounds 4961 x 7016
Bei Grahpics vom Printer: VCB: 850 x 1100 (das ist etwas komisch bei 600 dpi)

04.07.2008 - 11:58 Uhr

Super danke, werd ich mir anschaun! 😉

04.07.2008 - 10:27 Uhr

*g* das macht nichts! Grayscale brauch ich auch, hab grad gemerkt, dass ich ne Out of Memory Exception bekomm wenn ich ein image mit Grayscale hab und die Graphics davon hole... also danke 😜

04.07.2008 - 10:16 Uhr

Ah cool danke 😉

Jetzt dann nur noch eine Frage: von indexed images kann man kein Graphics object holen... gibts die Möglichkeit einfach ein 32bit Image zu machen und das dann in dieses PixelFormat zu konvertieren oder so was?

04.07.2008 - 10:05 Uhr

hi 😉

Ist es möglich ein Image Schwarz Weis (nicht grayscale) zu machen? Gibt es da ein PixelFormat dafür?

Danke!

03.07.2008 - 14:54 Uhr

Na dann mal vielen Dank für die große Hilfe 😉

03.07.2008 - 11:38 Uhr

Ah ok g danke! Werd mir das dann mal anschaun ^^

03.07.2008 - 10:32 Uhr

@s-sharp
danke für den link zum openBook 😉

Wie könnte man hier mit Pinvoke oder so die daten an den drucker senden?

@Xynratron
Ah ok g und was genau sind jetzt plottdateien? ^^
So ganz versteh ich das jetzt nicht mit dem PostScript... das sind ja nur zusatzliche befehle oder?

03.07.2008 - 09:26 Uhr

Dank 😉 habs in der zwischenzeit geschafft das aus dem IntPtr rauszubekommen mit diversen Marshal aufrufen, aber ich würds jetzt doch gern mal mit .net versuchen... aber da hab ich leider gar keine Ahnung wie das Drucken und vor allem wie man PostScript dort reinbekommt.

03.07.2008 - 09:02 Uhr

Hi 😉 In der Suche hab ich leider keine passenden Threads gefunden...
Gibt es unter C# eine Möglichkeit PostScript an den Drucker zu schicken? Ich hab leider gar keine Ahnung wie das mit PostScript funktioniert, aber das sind ja so Befehle, die man dem Drucker gibt zb. welche Papierart zu verwenden ist etc. (wenn es ein PostScript Drucker ist) oder?

Im alten C++ programm (was ich übersetz) wird die Funktion Escape bzw ExtEscape aufgerufen.

Jemand eine Idee?

03.07.2008 - 08:44 Uhr

Ok hat sich erledigt werds wohl eh mit .net machen 😉

02.07.2008 - 20:22 Uhr

Aso, wie sieht es .net denn vor? Hab mit drucken leider noch keine Erfahrung.
Wäre nett, wenn du mir einen Beispielcode posten könntest!

02.07.2008 - 15:39 Uhr

Hi 😉

Eine Frage... kann man mit C# so drucken, dass ich in einer Schleife alle meine Seiten (eine eigene Struktur) durchgeh und dem Drucker dann immer Sag, dass jetzt eine neue Seite beginnt.. mir dann das Graphics object dieser Seite hol, drauf zeichne, dann sag, dass die Seite aus ist, die nächste anforder usw? Ist das mit .net möglich?

02.07.2008 - 15:10 Uhr

Danke, google hab ich schon probiert 😉

Ich brauch die Informationen aber... ich verwende PInvoke, da ich ein 15 Jahre altes Programm portier. Sonst noch jemand nen Vorschlag wie ich an die Infos komme? Hab die Structur DEVNAMES definiert und bekomm da eben die Werte rein, die jeweils das Offset im Pointer speichern... nur auch im unsafe code komm ich da nicht weiter, da meine Structur DEVNAMES Managed ist und somit nicht auf char* gecastet werden.
Ich übergebe die DEVNAMES and PrinterSettings... da bekomm ich dann aber Leider nur den DruckerNamen raus 😕

02.07.2008 - 14:14 Uhr

Hi 😉

Hat jemand eine Ahnung wie ich in C# 3.0 an die den DriverName und an den Port des ausgewählten Druckers komme? Bzw. über die DEVNAMES die ich gesetzt habe?

Danke im Voraus!

02.07.2008 - 11:37 Uhr

Ah danke, aber ich machs eh so g Kenn das IDisposable Interface wohl, wusste nur nicht, dass ich das Graphics objekt auch disposen muss. Trotzdem danke!

02.07.2008 - 10:27 Uhr

Ma super danke!
Auf das wär ich nie gekommen, dass es an dem liegen könnte!

Danke 😉

02.07.2008 - 08:42 Uhr

Hi 😉

Hab ne Frage... wenn ich zb. folgendes mache:

IntPtr ptr=myGraphic.GetHdc();

muss ich danach wieder

myGraphic.ReleaseHdc();

aufrufen.

Wenn ich es umgekehrt mache, also

Graphics myGraph=Graphics.FromHdc(myPtrFromPrinter);

funktioniert es, aber sobald der gleiche call in der Schleife das zweite mal gemacht wird, bekomm ich folgende Exception: OutOfMemoryException

Kann es sein, dass ich das Teil auch irgendwie Releasen muss nachdem ich die operationen damit gemacht hab? Sprich darauf gezeichnet.

Danke für eure Hilfe!

22.06.2008 - 22:03 Uhr

Danke für die Antwort ;o)

22.06.2008 - 21:33 Uhr

Ja das ist es ja, aber die alten Schriftarten müssen unterstützt werden 😉

Das heißt die Möglichkeit besteht nur über pinvoke?

20.06.2008 - 08:45 Uhr

So nach kurzer Suche hab ich keinen Beitrag gefunden der das behandelt 😉

Und zwar ich lese eine Datei aus und auch die Information welche Schriftart verwendet wird. Es kann auch sein, dass Nicht-TrueType Schriftarten (wie auch immer die heißen) verwendet werden... die kann ich aber in der Klasse Font nicht verwenden. Das brauch ich aber, da ich den Inhalt der Datei auf einen DeviceContext zeichne... dazu verwende ich die in GDI+ definierte Graphics Klasse.

Nur mit einem Objekt der Klasse Graphics muss ich einen Font angeben... ja, aber ich kann leider keinen Nicht-TrueType font erstellen 😮(

Oder ist es über Umwege möglich, dass man zb. die Schriftart convertiert oder sonst was?

Danke für die Hilfe!

Thx fürs verschieben, hab ganz vergessen, dass es diese Kat. auch gibt ^^

12.06.2008 - 13:09 Uhr

Kennt sich vl jemand mit dem VisualStyleRenderer aus?

12.06.2008 - 13:04 Uhr

@herbivore
super danke für deine Antwort 😉 Ich glaub ich werds so machen...

@zommi
auch dir vielen dank für deine Mühe aber ich glaub darunter würd die performance zu sehr leiden 🙂

12.06.2008 - 00:33 Uhr

Gnah ich weiß, sorry aber hier hat einfach niemand mehr was geschrieben... aber anscheinend kennt sich damit leider niemand aus 😦

11.06.2008 - 12:55 Uhr

Hi an alle!

Ich weiß es gibt schon einen Thread der das Thema behandelt (hat anfangs um etwas anderes gehandelt). Ich starte mit Absicht diesen neuen Thread und bitte um Hilfe:

Ich portiere eine Class-Library von C++ nach C# ... in C++ wurde die Methode GetTextMetrics aufgerufen und von einem Font den Ascent und Descent zu bekommen. Ich möchte es vermeiden pinvoke zu benutzen, daher frage ich ob jemand eine Managed variante kennt?

Habs schon mit den Methoden GetCellAscent bzw. GetCellDescent der Klasse FontFamily versucht, jedoch sind die Ergebnisse zu ungenau 😕

Vielen Dank im Voraus!
KenshinX

11.06.2008 - 12:48 Uhr

Jetzt nicht direkt zu deiner Frage, aber

/PS
++i ist nur nen dreher, warum ich das manchmal so tippsle weis ich nicht

Du solltest schon wissen, wann du i und wann i schreibst 😉
bei i++ wird zuerst der aktuelle Wert von i verwendet, dann erhöht
bei ++i wird zuerst erhöht und dann der erhöhte Wert verwendet

Bei deiner for-Schleife ists egal, aber wenn du das zb bei einem Array machst wie

int i=0;
string[] testArray=new string[] { "text1", "text2" };

bekommst du bei

testArray[i++] -> text1

und bei

testArray[++i] -> text2

raus

09.06.2008 - 12:53 Uhr

Hat niemand eine Idee wie man das richtig macht? 😕

06.06.2008 - 09:12 Uhr

Du wirst lachen, aber ich bin schon fast fertig 😉 Sind nur noch so Kleinigkeiten... unter anderem eben die genaue Berechnung des blöden Ascent und Descent (External Leading hab ich schon g) ...

Also wenn jemand einen Vorschlag hat, ich bin für alles offen 😉
Sollte ganz genau sein... also der Font Ascent und Descent

Danke im Voraus!

06.06.2008 - 00:22 Uhr

Danke für das Beispiel 😉
Es geht einfach darum, dass ein 13 Jahre altes Programm nach C# portiert werden soll und der Code an sich nicht verändert... und da werden eigene Strukturen verwendet... es wird eine word datei ausgelesen (aufbau ist wie ein stack) ... und da muss ich das dynamisch aus den fonts generieren, also die abstände (nicht nur für die tables, auch für den normalen text). Das ist der genaue Grund ;o)

Trotzdem danke für die viele Mühe

05.06.2008 - 14:13 Uhr

Nene schau... ich brauch die werte, da ich tables usw alles selbst zeichne

und da brauch ich cellAscent, cellDescent, ExternalLeading ...

ExternalLeading hab ich schon

nur cellAscent und cellDescent sind leider noch zu ungenau beim Ascent ists oft +-1, beim Descent jedoch oft mal bis zu 4 Unterschied... und das haut halt rein bei den Berechnungen.

Also, irgendwelche Vorschläge? 😉