Stevendall 0 Nahlásit příspěvěk Odesláno July 25, 2006 (upraveno) А зачем в винформе такой изврат? Хочется подать рядовому уживателю на его запрос для вывода на печать текст с НАВОРОТАМИ (табличками, колонками, картинками), а RichTextBox в этом отношении не такой извращённый - только цвета да канва есть. А таблички как наворотить? С RTF-файла (на то он и RичTекстFайл) даже картинки в этот Бокс загоняются, но ведь сделать такие динамично, наверное, будет ещё большим ухильством. Я даже не знаю, возможно ли такое извращение. А ещё, если динамично создать несколько HTMLов да связать их взаимными ссылками, вот это будет полный разврат! Не... Это ещё не разврат. Разврат будет, когда туда ещё и JavaScript динамично всунуть. Для такого разврата Microsoft, наверное, не так плохо воспитан. Upraveno July 25, 2006 uživatelem Stevendall Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
AgentXXX 1 Nahlásit příspěvěk Odesláno July 25, 2006 текст с НАВОРОТАМИ (табличками, колонками, картинками) Ну значится, ВАМ БАТЕНЬКА, учить матчасть. МСДН - ваш дом на ближайшее время. Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
testtest 0 Nahlásit příspěvěk Odesláno July 25, 2006 (upraveno) IMHO. Для того чтобы напечатать текст с табличками и т.д. его надо переформатировать в зависимости от принтера/бумаги/пользователя и т.п. Кто это будет делать? не проше ли эту всю красоту запихнуть в картинку и печатать только ее? или использовать готовый шаблон ( для уже известного наполнения ) а остальное дописывать? еще гдето HTMLView был. Upraveno July 25, 2006 uživatelem testtest Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
Stevendall 0 Nahlásit příspěvěk Odesláno August 1, 2006 Итак, после прохождения курса молодого бойца в Windows Forms, почти не осталось белых пятен (кроме одного, но существенного). Попоряку. Не могу провернуть алгоритм, очень легко реализовывавшийся ранее, в до.NETфреймворксовское время, - запись/чтение типизированного файла. Ещё проблема в том, что я, кроме как о текстовых и бинарных файлах, так ничего и не нашёл, поэтому довольствуюсь указаниями к бинарным файлам (ну, типа буду туда один и тот же тип запихивать). Уже это противоестественно, ну да ладно... Конкретно. Создаю поле-структуру struct TBC { public String textBtn; // T public Rectangle boundsBtn; // B public Color colorBtn; // C } Не надо искать целесообразности в этой конкретной структуре. Создана она наобум, чтоб на нёй экспериментировать. Для записи переменной типа TBC в файл делаю, как книжка пишет: void SaveTBC(TBC tbc) { FileStream potokFile = new FileStream("myFile.tbc", FileMode.Append, FileAccess.Write); BinaryWriter potokBW = new BinaryWriter(potokFile); // Белое пятно potokBW.Close(); potokFile.Close(); } На место белого пятна можно, конечно, написать: potokBW.Write(tbc.textBtn + tbc.boundsBtn.ToString() + tbc.colorBtn.ToString()); Потом, конечно, при считывании из файла, можно этот бред и расшифровать. Но это не то. Я хочу реализовать что-то типа potokBW.Write(tbc), чтоб одним махом и всё. Вот что советует по этому поводу Книжка: tbc.Write(potokBW) с оговоркой (в переводе на мою TBC): Off я понимаю, что у меня не класс(třida), а структура, но в голове такая каша, что если даже поменять класс на структуру, то всё равно ничего не понимаю. А потом, я не хочу сохранять в файле целый класс (что и невозможно). Я хочу сохранить только переменную типа TBC. EndOff Так вот, Книжка пишет: U vlastnosti tbc se ale musi zavolat obdobná metoda Write, kterou jste implementovali do třídy TBC a předa se do ní jako argument object BinaryWriter. Charles Petyold, Programming Microsoft Windows with C# (перевод на чешский), Dodatek А, str. 550 Во-первых, я ничего никуда не имплемепемилипиторововывал, так как у меня ступор, а это уже во-вторых. Короче, как по-человечески записать переменную СВОЕГО типа в типизированый файл, ну или хотя бы в его подобие? А потом, как её считать оттуда? Советы Книжки в том же духе: static TBC LoadTBC() { FileStream potokFile = new FileStream("myFile.tbc", FileMode.Open, FileAccess.Read); BinaryReader potokBR = new BinaryReader(potokFile); TBC tbc = tbc.Read(potokBR); // тоже с посылом на obdobnu staticku metodu Read potokBR.Close(); potokFile.Close(); return tbc; } Бобик сдох. Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
AgentXXX 1 Nahlásit příspěvěk Odesláno August 1, 2006 Стив, ты маньяк.Ну да ладно, это временное состояние. Тыкай мышей и иди в фак. Может ВБ-шный код будет полегче? Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim MyString As String Dim ReadString As String Dim iFr As Short iFr = FreeFile() ReadString = CurDir() & "\test.txt" FileOpen(iFr, 1, OpenMode.Binary) MyString = "new information" FilePut(MyString) FileClose(iFr) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As_ System.EventArgs) Handles Button2.Click Dim MyString As String Dim ReadString As String Dim iFr As Short iFr = FreeFile() ReadString = CurDir() & "\test.txt" FileOpen(iFr, ReadString, OpenMode.Binary) MyString = New String(" "c, 15) FileGet(iFr, MyString) FileClose(iFr) MsgBox(MyString) End Sub И ещё, Стив. File Access Functions! Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
testtest 0 Nahlásit příspěvěk Odesláno August 1, 2006 Сделайте класс ТБЦ. добавьте туда две функции Write( BinaryWriter bw ) i Read( BinaryReader br ) в этих функциях и читайте/записывайте свои данные. или посмотрите как работает Write/Read, может будет достаточно писать тбц.ToString() или переписать ToString() так, чтобы этого было достаточно. Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky