Avatar billede mads-j Nybegynder
30. december 2001 - 20:25 Der er 23 kommentarer og
1 løsning

combobox?

Jeg skal lige bruge lidt hjælp til en combobox

Jeg skal have nogle værdier i en kombobox der når man trykker på dem, indsætter noget på en richedit..

f.eks. skal jeg have indsat følgende kode i en af værdierene
RichEdit1.Text := RichEdit1.Text + \'<Mailto:navn@navn.dk>\';

Hvordan får jeg comboboxen til at indsætte disse værdier, der er 5 forskellige ting der skal være i comboboxen-..

help please

mads/

Avatar billede light Praktikant
30. december 2001 - 20:27 #1
Jeg ved det ikke Mads-j men har du en Delphi reference (.hlp) som jeg kan få ???
Avatar billede morten_s Nybegynder
30. december 2001 - 20:31 #2
  ComboBox1.Items.Add(\'Hest@HesteServer.dk\');
Avatar billede morten_s Nybegynder
30. december 2001 - 20:32 #3
Eller

procedure TForm1.Button1Click(Sender: TObject);
begin
  ComboBox1.Items.Add(RichEdit1.Text + \'<Mailto:navn@navn.dk>\');
end;
Avatar billede cyberlsn Nybegynder
30. december 2001 - 20:48 #4
Sådan:


begin
  Combobox1.items.add(\'Ting nr. 1\');
  Combobox1.items.add(\'Ting nr. 2\');
  Combobox1.items.add(\'Ting nr. 3\');
  Combobox1.items.add(\'Ting nr. 4\');
  Combobox1.items.add(\'Ting nr. 5\');

  RichEdit1.text := RichEdit1.text + Combobox1.text;

end;
Avatar billede morten_s Nybegynder
30. december 2001 - 20:55 #5
Jeg tror du må forklare lidt nærmere er det 5 punkter som ligger efter hinanden du skal have over i RichEdit1.Text ?

Hvis så kan du gøre følgende:


procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer;
begin
  for i := 1 to 5 do
  begin
    ComboBox1.ItemIndex := i-1;
    RichEdit1.Text := RichEdit1.Text + ComboBox1.Text;
  end;
end;
Avatar billede mads-j Nybegynder
30. december 2001 - 21:01 #6
bruger skal kunne gøre følgende:

Trykke på combobox, og så vælge f.eks.
indsæt mail
indsæt http
indsæt etellerandet
osv

det brugeren trykker på skal sende koden til richedit, f.eks.
nr 1
indsæt mail= (på richedit) mailto:

fik i den?
Avatar billede mads-j Nybegynder
30. december 2001 - 21:02 #7
altså denne her funktion skal indsætte en html kode på richedit formen

Avatar billede morten_s Nybegynder
30. december 2001 - 21:10 #8
Ja men så opret de ting du skal kunne under ComboBoxen\'s Items

På Comboboxens OnClick Event indsætter du nedenstående :


procedure TForm1.ComboBox1Click(Sender: TObject);
begin
  Case ComboBox1.ItemIndex of
    1 : RichEdit1.Text := \'<Mailto:navn@navn.dk>\';
    2 : RichEdit1.Text := \'Min HTML Kode \';
    3 : RichEdit1.Text := \'Det som skal gøres på pkt 3\';
    4 : RichEdit1.Text := \'Det som skal gøres på pkt 4\';
    5 : RichEdit1.Text := \'Det som skal gøres på pkt 5\';
  end; //Case ComboBox1.ItemIndex of
end;
Avatar billede morten_s Nybegynder
30. december 2001 - 21:12 #9
Du skal forresten starte med 0 sådan her

procedure TForm1.ComboBox1Click(Sender: TObject);
begin
  Case ComboBox1.ItemIndex of
    0 : RichEdit1.Text := \'<Mailto:navn@navn.dk>\';
    1 : RichEdit1.Text := \'Min HTML Kode \';
    2 : RichEdit1.Text := \'Det som skal gøres på pkt 3\';
    3 : RichEdit1.Text := \'Det som skal gøres på pkt 4\';
    4 : RichEdit1.Text := \'Det som skal gøres på pkt 5\';
  end; //Case ComboBox1.ItemIndex of
end;
Avatar billede cyberlsn Nybegynder
30. december 2001 - 21:20 #10
Morten_s Hvorfor f..... bruger du CASE-sætninger?
Det gør kun koden længere!
Avatar billede morten_s Nybegynder
30. december 2001 - 21:22 #11
cyberlsn> Fordi det er det som skal til for at løse den givne opgave
Avatar billede cyberlsn Nybegynder
30. december 2001 - 21:28 #12
Hmmm... Okay, det skal bare være en beskrivelse over det, som indsættes..
Så kan de gøres på følgende måde:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    ComboBox1: TComboBox;
    procedure Button1Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
    a,b,c : string;

implementation

{$R *.DFM}



procedure TForm1.ComboBox1Change(Sender: TObject);
begin

  a := \'Indsæt Mail\';
  b := \'Indsæt HTML\';
  c := \'Indsæt et eller andet\';

  if combobox1.text = a then
  richedit1.text := richedit1.text + \'en_eller_anden_kode\';

  if combobox1.text = a then
  richedit1.text := richedit1.text + \'en_eller_anden_kode\';

  if combobox1.text = a then
  richedit1.text := richedit1.text + \'en_eller_anden_kode\';


end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  a := \'Indsæt Mail\';
  b := \'Indsæt HTML\';
  c := \'Indsæt et eller andet\';

  Combobox1.items.add(a);
  Combobox1.items.add(b);
  Combobox1.items.add(c);
  end;

end.
Avatar billede morten_s Nybegynder
30. december 2001 - 21:31 #13
Og hvad er kortest (tæl selv efter) og hvad ser mest overskueligt ud (kig selv efter)

if combobox1.text = a then
  richedit1.text := richedit1.text + \'en_eller_anden_kode\';
if combobox1.text = b then
  richedit1.text := richedit1.text + \'en_eller_anden_kode\';
if combobox1.text = c then
  richedit1.text := richedit1.text + \'en_eller_anden_kode\';
if combobox1.text = d then
  richedit1.text := richedit1.text + \'en_eller_anden_kode\';
if combobox1.text = e then
  richedit1.text := richedit1.text + \'en_eller_anden_kode\';


Case ComboBox1.ItemIndex of
    0 : RichEdit1.Text := \'<Mailto:navn@navn.dk>\';
    1 : RichEdit1.Text := \'Min HTML Kode \';
    2 : RichEdit1.Text := \'Det som skal gøres på pkt 3\';
    3 : RichEdit1.Text := \'Det som skal gøres på pkt 4\';
    4 : RichEdit1.Text := \'Det som skal gøres på pkt 5\';
  end; //Case ComboBox1.ItemIndex of
Avatar billede cyberlsn Nybegynder
30. december 2001 - 21:31 #14
Nu er indholdet i Combobox1 kun en beskrivelse af det, som indsættes i RichEdit1.
Den tekst, som indsættes, vises nu ikke længere i Combobox1.
Avatar billede cyberlsn Nybegynder
30. december 2001 - 21:33 #15
Du kunne nu også bare gøre det sådan:

If Combobox1.text = \'En Tekst\' then
RichEdit1.text := RichEdit1.text + \'En_eller_anden_kode\';
Avatar billede morten_s Nybegynder
30. december 2001 - 21:34 #16
cyberlsn>  GAB :0
Avatar billede hatecaps Nybegynder
30. december 2001 - 22:48 #17
cyberlsn, prøver du at lære folk hvordan de belaster resourcer med deres programmering !?!?!

med en case sætning sammenligner du kun værdien én gang, hvorimod du skal igennem alle sammenligninger når du bruger IF. Med mindre selvfølgelig du bruge ELSE, men så er vi ude en kode der er lige børnehaven.

I øvrigt har morten\'s forslag den dtore fordel at du kan ændre på teksterne i comboboxen, uden at skulle ændre i koden :-)

ha\' det godt
hatecaps
Avatar billede mads-j Nybegynder
31. december 2001 - 02:53 #18
morten>
denne her kode virker fint men hvis jeg trykker på første item i comboboksen, så indsætter den koden, og hvis jeg så trykker på nummer 2, indsætter den koden oven i, så den gamle bliver slettet..
hvordan laver jeg det om?

koden er her:Case ComboBox1.ItemIndex of
    0 : RichEdit1.Text := \'<Mailto:navn@navn.dk>\';
    1 : RichEdit1.Text := \'Min HTML Kode \';
    2 : RichEdit1.Text := \'Det som skal gøres på pkt 3\';
    3 : RichEdit1.Text := \'Det som skal gøres på pkt 4\';
    4 : RichEdit1.Text := \'Det som skal gøres på pkt 5\';
  end; //Case ComboBox1.ItemIndex of

Avatar billede cyberlsn Nybegynder
31. december 2001 - 10:12 #19
Mads-j > Jeg vil foreslå dig, at bruge denne kode:

if Combobox1.text = \'Indsæt Mail\' then
RichEdit1.text := RichEdit1.text + \'<Mailto:navn@navn.dk>\';

Og for at lade brugeren selv bestemme, hvad der skal stå i Combobox1 via en TMemo, kan du bare gøre sådan her:
Combobox1.text := Combobox1.text + Memo1.text;

Avatar billede morten_s Nybegynder
31. december 2001 - 11:07 #20


Sådan her:

Case ComboBox1.ItemIndex of
    0 : RichEdit1.Text := RichEdit1.Text + \'<Mailto:navn@navn.dk>\';
    1 : RichEdit1.Text := RichEdit1.Text + \'Min HTML Kode \';
    2 : RichEdit1.Text := RichEdit1.Text + \'Det som skal gøres på pkt 3\';
    3 : RichEdit1.Text := RichEdit1.Text + \'Det som skal gøres på pkt 4\';
    4 : RichEdit1.Text := RichEdit1.Text + \'Det som skal gøres på pkt 5\';
  end; //Case ComboBox1.ItemIndex of

Avatar billede mads-j Nybegynder
31. december 2001 - 13:28 #21
morten får points,som tak for hans hjælp:-)
mange tak du

godt nytår:-)

mads/
Avatar billede cyberlsn Nybegynder
31. december 2001 - 23:46 #22
Mads-j > Har jeg ikke også hjulpet? Mine eksempler virkede da også!
Avatar billede mads-j Nybegynder
01. januar 2002 - 03:47 #23
cyberlsn> jeg har ikke brugt dine, derfor ingen points..

brugte kun de koder morten kom med
Avatar billede cyberlsn Nybegynder
01. januar 2002 - 14:11 #24
Hmmm... Jeg ved godt det ikke kommer mig ved, men hvorfor prøvede du kun Mortens koder og ikke mine?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester