Autor Beitrag
der IvAn
Hält's aus hier
Beiträge: 13

WIN 2000, WIN XP

BeitragVerfasst: Do 23.01.03 21:13 
Hallo Leute,
noch ein Problem: Wie kann ich den eingegebenen TExt(z.B. ':)' ) , innerhalb einer Listbox, in einen Smilie ( :D ) umwandeln

_________________
"Die Insekten stechen nicht aus Bosheit, sondern weil sie auch leben wollen; ebenso unsere Kritiker: sie wollen unser Blut, nicht unsern Schmerz."
F. Nietzsche
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 23.01.03 21:52 
dazu brauchst du wohl eine Komponente, die sowohl Zeichen als auch Grafiken darstellen kann. Soweit ich weiß, kann das das RichEdit aus der RXLibrary oder wie die heißt.
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Do 23.01.03 21:59 
1. Gar nicht

2. Kein Problem
___

Zu 1: Eine Listbox wird mit nur einer Schrift dargestellt. Normale Schriften haben keine Smilys. Dashalb kann man auch keine Smilys anzeigen.

Zu 2: Bei Listbox kann man auch auf der Canvas zeichnen. Wenn du zeichnen kannst, dann kannst du alles zeichen, auch Smilys.

Guck dir dazu Style := lbOwnerDrawVariable an und das Ereignis OnDrawItem. In der Ereignisprozedur bekommst du ein Canvas pro Item zu verfügeung gestellt. Außerdem bekommst du auch das Item und den Text genannt. Aus den drei Sachen kannst du jetzt selbs eine Textausgabe zaubern und Smilys anzeigen.
foxy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Fr 24.01.03 09:38 
Ich hab gerade was gefunden was dir bestimmt gefällt
www.swissdelphicente...showcode.php?id=1147

schau da mal .... viel spass :P

_________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Fr 24.01.03 15:55 
Leute, ich dachte der will das für eine Listbox.
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Fr 24.01.03 21:29 
auch mit ner listbox ist das kein thema:

geh auf www.tmssoftware.com

da gibts ne kompo die nennt sich HTMListbox, da kannst du die Items der Listbox mit einer art abgesecktem HTML code formatieren !!!
du kannst auch bilder aus ner imagelist einbinden !!!

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Fr 24.01.03 22:52 
Leute, ich dachte der will das für eine List...

Ok, ich hör auf. Natürlich gibts ander Komponenten mit denen man das auch machen kann. Man kann es aber auch mit Listbox machen. Man muß nur eine wenig programmieren. Dann geht es auch mit ListBox. Es ist aber zuviel, als daß ich es so schnell programmieren würde.
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Sa 25.01.03 00:38 
Och... so dermaßen viel is das garnich zu proggen... :)

ganze 2 Canvas befehle braucht man...

"Canvas.Draw" um das Bild draufzumachen und "Canvas.TextOut" für den Text... fertig.

Au'revoir,
Aya~
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Sa 25.01.03 00:55 
Ok, ich muß zugeben, daß ich die ganze Zeit an mehrzeilige Items dachte. Klar, wenn du nur eine Zeile hast, dann ist das ganze relativ einfach. Allerdings auch nicht zu einfach. Man muß die Smilys verwalten, einfügen usw. Ein wenig programmieren muß man also immer noch.
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Sa 25.01.03 17:45 
Damit mir keiner nachsagt, daß es nicht geht, hab ich auf die Schnelle etwas programmiert. Allerdings bin ich zu faul es bis zum Schluß zu machen. Wichtig ist, das man ein Bitmap Smily hat das maximal 16 Pixel hoch ist. Für das Beispiel hab ich es auf "c:\smily.bmp" abgelegt. Dann ist noch wichtig, daß die Style Eigenschaft der Listbox auf lbOwnerDrawFixed steht.

Was noch fehlt ist der odSelected Teil. Das ist der Teil der den fukusierten Item darstellt. Das dürfte aber auch kein großes Problem sein.

ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
//WICHTIG: Style auf lbOwnerDrawFixed stellen
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
const
  SM1 = ':)';
var
  Bmp: TBitmap;
  s, t: String;
  m, z: Integer;
begin
  Bmp := TBitmap.Create;
  try with (Control as TListbox) do begin
    Bmp.Transparent := True;
    Bmp.LoadFromFile('c:\smily.bmp'); //max 16x16 wegen ItemHeight

    //odSelected in State Abfrage fehlt noch

    z := 0;
    s := Items[Index];
    Canvas.Brush.Style := bsClear; //weil ich zu Faul bin zu rechnen
    while Pos(SM1, s) > 0 do begin
      t := Copy(s, 1, Pos(SM1, s) - 1);
      m := Canvas.TextWidth(t);

      Canvas.TextRect(Rect, Rect.Left + z, Rect.Top, t);
      Canvas.Draw(Rect.Left + z + m, Rect.Top, Bmp);

      Delete(s, 1, Pos(SM1, s) - 1);
      Delete(s, 1, Length(SM1) + 1);
      z := z + m + Bmp.Width + 2;
    end;
    Canvas.TextRect(Rect, Rect.Left + z, Rect.Top, s);
  end finally Bmp.Free end;
end;


Achso, hier der Text der in Items stehen sollte (nur als Beispiel):

Hallo
Hallo :) und noch ein :) Smily
Noch ein :) Smily
Schluß mit Smilys
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: So 26.01.03 11:56 
tja... einfacher ginge es zwar mit der kompo von TMS aber dein code ist auch nicht schlecht !!! :roll:

_________________
In the beginning was the word.
And the word was content-type: text/plain.
der IvAn Threadstarter
Hält's aus hier
Beiträge: 13

WIN 2000, WIN XP

BeitragVerfasst: So 26.01.03 18:34 
Danke, vorerst reicht das, Muss ich erstmal alles kapierern :D

Danke für alles

_________________
"Die Insekten stechen nicht aus Bosheit, sondern weil sie auch leben wollen; ebenso unsere Kritiker: sie wollen unser Blut, nicht unsern Schmerz."
F. Nietzsche
der IvAn Threadstarter
Hält's aus hier
Beiträge: 13

WIN 2000, WIN XP

BeitragVerfasst: So 26.01.03 19:44 
Bei mir klappt das mit der HtmlListBox nicht.
In der Anleitung steht, man soll in Delphi eine Package Datei öffnen, aber diese existiert in dem rutergeladenen *.Zip file nicht, da sind nur tausende andere Daeien, zum Beispiel ein *.dfm datei.

_________________
"Die Insekten stechen nicht aus Bosheit, sondern weil sie auch leben wollen; ebenso unsere Kritiker: sie wollen unser Blut, nicht unsern Schmerz."
F. Nietzsche
foxy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Mo 27.01.03 09:29 
denke dann mal das du dazu ne Kaufversion brauchst?????

_________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
der IvAn Threadstarter
Hält's aus hier
Beiträge: 13

WIN 2000, WIN XP

BeitragVerfasst: Mo 27.01.03 14:48 
Schade, trotzdem danke! :)

_________________
"Die Insekten stechen nicht aus Bosheit, sondern weil sie auch leben wollen; ebenso unsere Kritiker: sie wollen unser Blut, nicht unsern Schmerz."
F. Nietzsche
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Mo 27.01.03 17:34 
nee, das ist normalerweise freeware wenn du es nicht für komm. zwecke verwendest!!

_________________
In the beginning was the word.
And the word was content-type: text/plain.