Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.03.13;
Скачать: CL | DM;

Вниз

TImage слои само масштабировало в зависимости от количества слоёв   Найти похожие ветки 

 
radiokarazinec ©   (2010-12-20 20:32) [0]

Нужно сделать чтобы так: вот есть у меня в Memo данные, мне надо чтобы при нажатии на кнопку визуализация на Image рисовались слои, на них писались цифры из Memo, а сами слои зарисовывались разной штриховкой, типа bsCross и другими. т.е один слой - одно число- одна штриховка, другой слой-другая штриховка,


 
v_a_belousov   (2010-12-20 21:40) [1]

Ты хочешь получить результат вроде этого http://project-w-m.narod.ru/createpicturefromtext.JPG ?


 
KilkennyCat ©   (2010-12-20 23:27) [2]

он хочет получить готовый код, а получит бан за спам.


 
v_a_belousov   (2010-12-20 23:33) [3]

Да там кода то... я просто подумал может там сложности какие то... вот и набросал для него то что на скриншоте...


 
radiokarazinec ©   (2010-12-20 23:36) [4]

нет, мне надо чтобы вот например пять значений в мемо, при нажатии на визуализация, в Image рисовались типа прямоугольньники-слои, которые в зависимости от количества значений масштабировались по размерам Image, пять значения - пять прямоугольников на весь Image? 6 -6? ну что-то типа как у  v_a_belousov , и эти прямоугольники штриховались, а в каждом прямогольнике своё значение


 
radiokarazinec ©   (2010-12-20 23:39) [5]

KilkennyCat и кстати, я не хотел спамить. просто толком никто ничего не может ответить, а мне там то осталось доделать панты, просто очень срочно надо сдать


 
v_a_belousov   (2010-12-20 23:40) [6]


> мне надо чтобы вот например пять значений в мемо, при нажатии
> на визуализация, в Image рисовались типа прямоугольньники-
> слои, которые в зависимости от количества значений масштабировались
> по размерам Image, пять значения - пять прямоугольников
> на весь Image? 6 -6

хорошо) я понимаю на рисунке не видно... но если я введу там в мемо 6 значений будет нарисовано 6 прямоугольников с надписями, введу 7 будет нарисовано 7 и так далее.

> что-то типа как у  v_a_belousov , и эти прямоугольники штриховались,
>  а в каждом прямогольнике своё значение

Видимо я не очень хорошо понимаю что в твоем понимании значит прямоугольник...


 
radiokarazinec ©   (2010-12-20 23:45) [7]

не ну вот у тебя один прямоугольник трихуется всемя видами штриховки, а мне надо что все разными, ну или хотя бы чередовались


 
v_a_belousov   (2010-12-20 23:52) [8]

Вот обновил смотри http://project-w-m.narod.ru/createpicturefromtext.JPG


 
v_a_belousov   (2010-12-20 23:53) [9]


> у тебя один прямоугольник трихуется всемя видами штриховки,
>  а мне надо что все разными, ну или хотя бы чередовались

Может я чего то не понимаю... но у меня они чередуются...


 
radiokarazinec ©   (2010-12-20 23:58) [10]

смотри, мне надо:
в мемо заносятся числа из текстового файла, отображаюся там типа
2.111
1.432
1.344
0.883
0.333
а потом аэти числа в таком же порядке в Image при нажатии на визуализацию
рисуются там, вот 2.111 в отдельном прямоуголнике, например, штриховкой bsCross? следующий 1.432 впрямоугольнике пол прямоугольнком с 2.111 и так талее, все вертикально


 
radiokarazinec ©   (2010-12-21 00:17) [11]

ты можешь показать тот код что для той программы или хотя бы сказать как это делать, но завтра надо сдать


 
v_a_belousov   (2010-12-21 00:21) [12]

А в чем проблема?

http://project-w-m.narod.ru/createpicturefromtext.JPG

Видимо вот надо да?


 
radiokarazinec ©   (2010-12-21 00:22) [13]

так это тот же скрин


 
radiokarazinec ©   (2010-12-21 00:24) [14]

надо чтобы вертикально слои-прямоугольники были


 
v_a_belousov   (2010-12-21 00:33) [15]

Вот все обновил... http://project-w-m.narod.ru/createpicturefromtext.JPG


 
radiokarazinec ©   (2010-12-21 00:36) [16]

так как та же самая картинка, ты можешь код показать?


 
radiokarazinec ©   (2010-12-21 00:37) [17]

опять слои горизонтально и числа, надо вертикально, чтобы в мемо вертикально и на картинке, а не горизонтально


 
Германн ©   (2010-12-21 00:39) [18]


> завтра надо сдать

Увы :(


 
v_a_belousov   (2010-12-21 00:42) [19]

http://project-w-m.narod.yandex.ru/PictureBuilder.exe смотри, думаю тут все так как тебе нужно. Если нет пиши мне на почту. Я отойду минут на 20, потом отвечу.


 
KilkennyCat ©   (2010-12-21 00:43) [20]


> radiokarazinec ©   (21.12.10 00:37) [17]

ты бы хоть нарисовал что хочешь, раз объяснить не получается, пока есть желающий сделать за тебя работу...


> Германн ©   (21.12.10 00:39) [18]

поколение пепси, дважды увы :((


 
v_a_belousov   (2010-12-21 01:03) [21]


> ты бы хоть нарисовал что хочешь, раз объяснить не получается

Да вот это было бы лучше) т.к. я до сих пор не могу понять что не так ему...


 
radiokarazinec ©   (2010-12-21 01:03) [22]

http://www.imagebam.com/image/9fdfee111802193


 
radiokarazinec ©   (2010-12-21 01:03) [23]

вот ссылка, как должно как бы выглядеть


 
Ega23 ©   (2010-12-21 01:09) [24]


> вот ссылка, как должно как бы выглядеть


for
TMemo.Lines
Image.Canvas
TCanvas.Brush.Style
TCanvas.TextOut

+ F1

Вроде ничего не забыл.


 
v_a_belousov   (2010-12-21 01:11) [25]


> вот ссылка, как должно как бы выглядеть

У меня в программе 1 в 1 то что ты нарисовал) ещё раз вопрос что не так?


 
radiokarazinec ©   (2010-12-21 01:14) [26]

мне надо чтобы прямоуголники вертикально рисовались а не горизонтально, можешь прогу кинуть я попробую со своей?


 
v_a_belousov   (2010-12-21 01:17) [27]

я тебе дал ссылку http://project-w-m.narod.yandex.ru/PictureBuilder.exe
Скачай и посмотри. Я ведь сделал тут и вертикально и горизонтально и с переносом строк и без...

> мне надо чтобы прямоуголники вертикально рисовались а не
> горизонтально,

А на рисунке то у тебя горизонтально...


 
v_a_belousov   (2010-12-21 01:18) [28]

http://project-w-m.narod.ru/PictureBuilder.exe извини yandex забыл убрать...


 
radiokarazinec ©   (2010-12-21 01:21) [29]

о круто, ток вот когда по строкам делаешь, то прямоугольники не разные о один и тот же с одной штриховкой


 
KilkennyCat ©   (2010-12-21 01:22) [30]


> v_a_belousov   (21.12.10 01:18) [28]

у тебя рандом иногда подряд все три значения выдает одинаковые


 
KilkennyCat ©   (2010-12-21 01:22) [31]


>  все три значения

я три строки загнал


 
v_a_belousov   (2010-12-21 01:25) [32]

Ну да я на рандом поставил) это ж было все таки для того чтобы узнать от человека что ему требуется)


 
radiokarazinec ©   (2010-12-21 01:25) [33]

ты можешь код скинуть?


 
v_a_belousov   (2010-12-21 01:33) [34]


> ты можешь код скинуть?

А где масло?)

Тебе же уже все подсказали...

> TMemo.Lines
> Image.Canvas
> TCanvas.Brush.Style
> TCanvas.TextOut

перебирай в цикле строки в мемо. Затем рисуй заданную область в  Image и выводи текст. Используй Canvas.TextOut для вывода как тебе уже сказали. Если есть вопросы, то пиши их...

а код примерно такой

for i:=0 to Memo1.Lines.Count-1 do
begin
 ...
 // вывод текста
 Image.Canvas.TextOut(x, y, Memo1.Lines.Strings[i]);
 ...
end;


 
radiokarazinec ©   (2010-12-21 01:35) [35]

че тяжело скинуть, сегодня сдавать, ну плиз. тебе ведь не тяжело


 
radiokarazinec ©   (2010-12-21 01:37) [36]

понимаешь, у меня запара с масштабным коэффициентом и чтобы каждая цифра выводилась в отдельном прямоуголгике


 
Ega23 ©   (2010-12-21 01:37) [37]


> че тяжело скинуть, сегодня сдавать, ну плиз. тебе ведь не
> тяжело


че тяжело денег заплатить, сегодня пиво покупать, ну плиз. тебе ведь не тяжело


 
radiokarazinec ©   (2010-12-21 01:39) [38]

вот мой код, подскажи что тут изменить, я его уже подшанял метом тыка

procedure TfrmMain.BitBtn1Click(Sender: TObject);
var
SL: TStringList;
 i, h, y: Integer;
 s: String;
 Rate : Double;
 Rects : array of TRect;
 Color : TColor;
begin
 SL := TStringList.Create;
 SL.Assign (Memo1.Lines);
 Image1.Picture:=nil;
with Image1.Canvas do
begin
for i := 0 to SL.Count - 1 do begin
   s := SL[i];
   h := TextHeight("|")+3;
   y :=0;
   y:=y+h;
   Color:=ClWhite;
   //Массив прямоугольников, отображающих слои и воздух
   SetLength(Rects,SL.Count+1);

   //Закрашиваем старую картинку цветом фона
   Image1.Canvas.Brush.Color := Color;
   Image1.Canvas.Pen.Color := Color;
   Image1.Canvas.FillRect(Image1.BoundsRect);

   //Определяем цвет, которым можно рисовать на созданной картинке
   Image1.Canvas.Brush.Color := clLtGray;
   Image1.Canvas.Pen.Color := clBlack;
   
   //Определяем масштабный коэффициент для пропорционального отображения слоев
   Rate := Image1.Height/i;

   Rects[0].Left := 0;
   Rects[0].Right :=Image1.Width;
   Rects[0].Top := 0;
   Rects[0].Bottom := round(i);
   Image1.Canvas.Brush.Color := $00EEEEEE; //определяем цвет заполнения
   Image1.Canvas.Rectangle(Rects[0]);

 Image1.Canvas.Pen.Color := clBlack;
 Image1.Canvas.Brush.Color := clLtGray;
 end ;
  for i:=0 to SL.Count - 1 do
   begin
     Rects[i + 1].Left := 0;
     Rects[i + 1].Right := Image1.Width;
     Rects[i + 1].Top := Rects[i].Bottom;
     Rects[i + 1].Bottom := Rects[i + 1].Top + round(h);
     
     case i mod 6 of
       0: Image1.Canvas.Brush.Style := bsCross;
       1: Image1.Canvas.Brush.Style := bsFDiagonal;
       2: Image1.Canvas.Brush.Style := bsHorizontal;
       3: Image1.Canvas.Brush.Style := bsDiagCross;
       4: Image1.Canvas.Brush.Style := bsVertical;
       5: Image1.Canvas.Brush.Style := bsBDiagonal;
     end;

   //Рисуем прямоугольник с полученными координатами
    Image1.Canvas.Rectangle(Rects[i+ 1]);

   // TextOut(1, y+2, SL[i]);
    // MoveTo(0  , y);
    // LineTo(200, y);
     y := y + h;
   end;
  // MoveTo(0  , y);
  // LineTo(200, y);
 end;

 SL.Free;
end;


 
Ega23 ©   (2010-12-21 01:39) [39]


>  и чтобы каждая цифра выводилась в отдельном прямоуголгике

к [24] добавить функцию Length. Ну и + F1 не забываем


 
Ega23 ©   (2010-12-21 01:41) [40]


> вот мой код, подскажи что тут изменить


TBitBtn заменить на стандартный TButton. Хоть нельзя картинку отрисовывать, зато как везде будет.



Страницы: 1 2 вся ветка

Текущий архив: 2011.03.13;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.009 c
1-1244109607
Дмитрий Белькевич
2009-06-04 14:00
2011.03.13
Как лучше закрыть несколко одинаковых форм?


15-1291276726
Sergey
2010-12-02 10:58
2011.03.13
JEDI для Delphi2009


2-1292841796
JohnKorsh
2010-12-20 13:43
2011.03.13
Вызов процедуры.


15-1291114600
Kerk
2010-11-30 13:56
2011.03.13
Как по-английски называется таблица типа "шахматка"?


4-1246190749
proger_ru
2009-06-28 16:05
2011.03.13
отслеживание устройств