Добрый день! Необходимо написать графический редактор следующего вида: Окно разбито на 2 части, в левой вводятся параметры фигуры, в правой она отрисовывается. Например: для начала задан прямоугольник высотой 50 и шириной 100. Указываем высоту - 25, на ней ширина 50 и фигура должна преобразоваться, приняв форму песочных часов и далее в этом духе. Надеюсь нормально объяснил...
Программу еще не начал, код писать не прошу, необходима консультация в том, какие элементы выбрать для разработки, TPaintBox или TImage и т.д. и как лучше всё это отрисовывать, может кто может дать совет?
С кодом выходят проблемки, файл создается, открывается, но дальше ничего проверить не могу, пара косячков с синтаксисом, не знаю как поправить:
procedure Tf_main.N7Click(Sender: TObject); var i1, i2, j, R: Integer; WordApp, Table: Variant; fn:string; begin if SaveDialog1.Execute then begin WordApp := CreateOleObject('Word.Application'); // А вот с эти приложением работаем WordApp.Visible := True; // Это можно отключить, я включил, чтоб наблюдать за происходящим WordApp.Documents.Add; // Новый документ WordApp.Selection.Font.Size := 8; for j := 0 to ComponentCount - 1 do if Components[j] is TEdit then with Components[j] as TEdit do begin // Saving Edits { WordApp.Selection.TypeText(Edit1.text); WordApp.Selection.TypeText(#13#10'new');} end else if Components[j] is TStringGrid then with Components[j] as TStringGrid do begin // Saving Grigs WordApp.ActiveDocument.Tables.Add(WordApp.ActiveDocument.Range, RowCount, ColCount);//Ошибка: не удаётся удалить диапазон Table := WordApp.ActiveDocument.Tables.Item(1); Table.Style := 'Сетка таблицы'; for i1:=0 to RowCount-1 do for i2:=0 to ColCount-1 do begin Table.Cell(i1+1, i2+1).Range.Text:=Cells[i2, i1]; WordApp.Visible:=True; end; WordApp.Selection.TypeText(#13#10'new'); end else if Components[j] is TChart then with Components[j] as TChart do begin // Saving Grigs { fn := ExtractFilePath(Application.ExeName) + 'tmp.bmp'; // Тут будет временная картинка Chart.SaveToBitmapFile(fn);//Delphi говорит, что нет такого свойства у TChart WordApp.Selection.InlineShapes.AddOLEObject(ClassType:='Paint.Picture', FileName:=fn, LinkToFile:=False, DisplayAsIcon:=False); DeleteFile(fn); WordApp.Selection.TypeText(#13#10'new'); end; } end; WordApp.ActiveDocument.SaveAs(SaveDialog1.FileName+'.doc'); end; end;
Вызываю процедуру, открывается ворд, начинается заполнение полей таблицы(она встречается первой), таблица полностью заполняется, в первую ячейку кроме её значения записывается какое-то new(как его убрать знаю) и вылетает ошибка: Не удается удалить диапазон. + С TChartoм не знаю что делать, помогите, пожалуйста.