Fehler beim Drucken
-
/* Hallo Leute,
mein Compiler kann nix übersehen Was soll ich machen?
// Zeile drucken:
e->Graphics->DrawString(drawString,Font, Brushes::Black, rectf, sf);error C2664: 'void System::Drawing::Graphics::DrawString(System::String ^,System::Drawing::Font ^,System::Drawing::Brush ^,float,float)': Konvertierung des Parameters 4 von 'System::Drawing::RectangleF ^' in 'float' nicht möglich
Steige gerade auf vc++2005 prof um.
{ Rectangle printRec = e->MarginBounds; Font = textBox1->Font; // Umrandung drucken: Pen^ blackPen = gcnew Pen( Color::Black ); e->Graphics->DrawRectangle(blackPen, printRec); String^ drawString = textBox1->Text; // Ausgabeposition: float x = printRec.X, y = printRec.Y; // Zeilenhöhe bestimmen: float lineH = e->Graphics->MeasureString("X", Font).Height; // Layoutformat festlegen: StringFormat sf = gcnew StringFormat(StringFormatFlags::NoWrap); // deaktiviert Textumbruch während des Formatierens // Alle Zeilen durchlaufen: for (int i = 0; i < textBox1->Lines->Length; i++) { RectangleF^ rectf = gcnew RectangleF(x, y, printRec.Width, lineH); // Zeile drucken: e->Graphics->DrawString(drawString,Font, Brushes::Black, rectf, sf); y += lineH; } }
-
Hab den Code nur überflogen, aber du übergibst statt einer Rectangle Struktur
Rectangle R = Rectangle(0,0,100,100)
einen Handle (Heap)
RectangleF^ rectf = gcnew RectangleF(x, y, printRec.Width, lineH);
(Das hat dir die Fehlermeldung aber eigentlich auch schon gesagt...)
-
Du musst 5 Parameter übergeben
//Zeichenbereich RectangleF^ rectBereich = gcnew RectangleF(Convert::ToSingle(flRandLinks), Convert::ToSingle(flVertikalPos), Convert::ToSingle(flDruckbreite), Convert::ToSingle(flZeilenHoeheAktuell));
//Ausdruck der aktuellen Zeile SolidBrush^ drawBrush = gcnew SolidBrush(richTextBox1->ForeColor); e->Graphics->DrawString(strZeile, richTextBox1->Font, drawBrush, Convert::ToSingle(flRandLinks),Convert::ToSingle(flVertikalPos));
Dappeljuh schrieb:
Hab den Code nur überflogen, aber du übergibst statt einer Rectangle Struktur
Rectangle R = Rectangle(0,0,100,100)
einen Handle (Heap)
RectangleF^ rectf = gcnew RectangleF(x, y, printRec.Width, lineH);
(Das hat dir die Fehlermeldung aber eigentlich auch schon gesagt...)
Blödsinn.
Die Fehlermeldung sagt, dass sie zwei float Parameter am Ende haben will.
-
Blödsinn.
Die Fehlermeldung sagt, dass sie zwei float Parameter am Ende haben will.
Da er ein RectangleF und ein StringFormat übergibt, gehe ich doch stark davon aus das er folgende Überladung nutzen möchte:
Graphics.DrawString-Methode (String, Font, Brush, RectangleF, StringFormat)
Darum ist meine Antwort korrekt und deine Blödsinn!
Noch was?
-
PS:
Er hat 5 Parameter übergeben:
// Zeile drucken: e->Graphics->DrawString(drawString,Font, Brushes::Black, rectf, sf);
-
Sind das float?
Nein, also.
Kerl...
Lies doch mal richtig.
-
Willst du mich verarschen?
Du hast geschrieben:
e->Graphics->DrawString(strZeile, richTextBox1->Font, drawBrush, Convert::ToSingle(flRandLinks),Convert::ToSingle(flVertikalPos));
Das ist doch definitiv ne andere Überladung als:
Graphics.DrawString-Methode (String, Font, Brush, RectangleF, StringFormat)
Worauf bezieht sich denn:
Sind das float? Nein, also. Kerl... Lies doch mal richtig.
-