Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2009, 09:11   #1
Serious
Пользователь
 
Регистрация: 09.02.2009
Сообщений: 29
По умолчанию 2 компонента

народ мне нужно два почти похожих компонента.
1) принцип работы как у мемо, только что бы возможно было помимо текста аниммированые картинки совмещать с текстом.
И если можно то опишите маленький алгоритм, что бы типа была замена ": )"(без пробела) на

2) типа первого только принцип как у лист бокс.
и ещё для второго дополнение, если жмёшь на одну из линий то выпадающие меню что бы можно было
Serious вне форума Ответить с цитированием
Старый 03.09.2009, 09:22   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
типа первого только принцип как у лист бокс.
и ещё для второго дополнение, если жмёшь на одну из линий то выпадающие меню что бы можно было
Это можно сделать с помошью обычного ЛистБокса. просто описав обработчик отрисовки OnDrawItem. Это как раз не сложно, просто нужно найти позицию смайла, запробелить его и в той позиции нарисовать картинку

Вот пример:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, DBCtrls, ImgList, StdCtrls;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    ImageList1: TImageList;
    procedure FormCreate(Sender: TObject);
    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer;
      Rect: TRect; State: TOwnerDrawState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
ListBox1.Style:=lbOwnerDrawFixed;
end;

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var x,i:integer;s:string;
begin         x:=0;
 s:=ListBox1.Items[index];
 i:=1; while i<=length(s) do begin
  if copy(s,i,2)=':)' then begin
  i:=i+2;
  ImageList1.Draw(ListBox1.Canvas,rect.left+x,rect.top,0);
  x:=x+ImageList1.Width;
  end else begin
   ListBox1.Canvas.TextOut(Rect.Left+x,Rect.Top,s[i]);
  end;
  x:=x+ListBox1.Canvas.TextWidth(s[i]);
  inc(i);
 end;
end;

end.
Здесь смайлы помещаются в ImageList и отрисовываются в Листбоксе (правда пока только один смайл, но остальное сам домудри)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.09.2009, 10:26   #3
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Цитата:
1) принцип работы как у мемо, только что бы возможно было помимо текста аниммированые картинки совмещать с текстом.
И если можно то опишите маленький алгоритм, что бы типа была замена ": )"(без пробела) на
RichViewEdit тебе в помощь. Из набора RichView.
На счет алгоритма : там в составе компонентов есть демки.
Одну, ту именно которая тебе понадобится прикрепляю. Спрашивай если что.
Вложения
Тип файла: zip Chat.zip (25.5 Кб, 21 просмотров)
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 05.09.2009, 15:31   #4
Serious
Пользователь
 
Регистрация: 09.02.2009
Сообщений: 29
По умолчанию

Kotofff
всё бы хорошо, но. этот набор платный, других вариантов нет?
Serious вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Установка компонента SERG1980 Компоненты Delphi 9 09.09.2009 20:32
Установка компонента __@cmd@__ Общие вопросы Delphi 4 27.02.2009 20:19
Установка компонента xakkkkker Компоненты Delphi 3 01.04.2008 08:50
Регистрация компонента Zonder Компоненты Delphi 0 06.12.2006 18:17