Zweizeilig in Celle von einem StringGrid schreiben
-
Hallo zusammen,
ich habe ein einfaches Probelm:
Wie kann ich zweizeilig in eine Celle eines StringGrids schreiben?Mit
StringGrid1->Cells[x][y] = "Das ist \n ein Test";
funktioniert das nicht.Kann mir da jemand weiter helfen?
Noch eine Frage:
Wie kann ich eine einzelne Spaltenlinie dicker machen? Mit StringGridWidth änden sich alle Zeilen- und Spaltenlinien...
Man kann natürlich eine Spalte so klein machen das ein dicker Strich entsteht aber das kann ja nicht wirklich die richtige Lösung sein...Vielen Dank
Mirko
-
Hallo
Du must den OnDrawCell-Event benutzten. Für die Ausgabe des Textes brauchst du dann im Event die WinAPI-Funktion DrawText mit dem Flag DT_WORDBREAK.
Die Gitterzellen mußt du ausschalten und im Event komplett selber zeichnen.bis bald
akari
-
Für solche Extravaganzen musst du das Zeichnen des Grids selbst übernehmen (Stichwort OnDrawCell). U.a. in der FAQ findest du dafür ein Beispiel.
-
Hallo,
vielen Dank für die schnellen Antworten.
Das OnDrawCell Event verwende ich schon um den Text der einzelnen Zellen farbig zu gestllten. Als Hilfstellung habe ich da übrigens die FAQ genutzt!OK, das mit dem Flag hilft mir schon weiter, aber ich muss dann wohl den Text nur in der Event funktion in die Celle Schreiben oder woher soll sonst das Programm wissen wo er den Text umbrechen soll?
Ach so, macht er das dann automatisch wenn die Spaltenbreite zu klein ist...?
Das wäre natürlich günstig...Vielen Dank!
Mirko
-
Hallo,
vielen Dank für die schnellen Antworten.
Das OnDrawCell Event verwende ich schon um den Text der einzelnen Zellen farbig zu gestllten. Als Hilfstellung habe ich da übrigens die FAQ genutzt!OK, das mit dem Flag hilft mir schon weiter, aber ich muss dann wohl den Text nur in der Event funktion in die Celle Schreiben oder woher soll sonst das Programm wissen wo er den Text umbrechen soll?
Ach so, macht er das dann automatisch wenn die Spaltenbreite zu klein ist...?
Das wäre natürlich günstig...Vielen Dank!
Mirko
-
Hallo
aus der Hilfe zu DT_WORDBREAK :
Breaks words. Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by the lpRect parameter. A carriage return-linefeed sequence also breaks the line
Das heißt sowohl automatischer Umbruch alsu auch manueller. Wobei manuell allerdings die Zeichenfolge "\r\n" meint, nicht nur "\n"
bis bald
akari