Avatar billede lamaduck Nybegynder
01. marts 2005 - 17:48 Der er 23 kommentarer og
1 løsning

combobox tixt til edit

er ved at lave noget for en men er ikke alt for god til programmering så hvordan får jeg det til at virke

Edit1.Text := Combobox1.Items.Strings;
Avatar billede stoney Nybegynder
01. marts 2005 - 18:01 #1
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
begin
edit1.Clear;
for i := 0 to combobox1.Items.Count - 1
do
edit1.Text := edit1.Text +combobox1.Items[i] +' '; // mellemrum for et syns skyld

end;

Stoney
Avatar billede lamaduck Nybegynder
01. marts 2005 - 18:06 #2
doh skrev det forkert skulle være hvis jeg valgte noget i combobox så skulle edit1 ha en text som

hvis jeg vælger i combobox 865Kroner så skulle jeg kunne gi en text til edit 865,- eller hvad jeg nu vil ha texyen til at være
Avatar billede stoney Nybegynder
01. marts 2005 - 18:19 #3
edit1.text := combobox1.text

Stoney
Avatar billede lamaduck Nybegynder
01. marts 2005 - 18:28 #4
det giver jo bare hvis jeg vælger fx 865Kroner så vil edit1.text være 865Kroner men vil gerne selv bestemme hvad der skal stå
Avatar billede hrc Mester
01. marts 2005 - 19:39 #5
Det kan altså ikke passe at så mange er ordblinde på Eksperten. Der må være nogen der også bare er sjuskede og ikke gør sig umage med at skrive i et klart og forståeligt sprog. Det vil også gøre vores, os der prøver at svare, arbejde noget lettere.

  LamaDuck du er én af dem.

... og jeg beklager hugget, men kan ikke forstå, at der er så mange der kun kan skrive SMS-dansk. Det er frustrerende at se fremtidens voksne have så dårlige kort på hånden. Forestil dig en jobansøgning i ovenstående kvalitet - jeg ville få et føl (på tværs denne gang) og dumpe den med det samme.

Tilbage til spørgsmålet:

En TComboBox har en style-property som du kan sætte til følgende:
  csDropDown: En Combo hvor du kan skrive i feltet
  csDropDownList: En Combo hvor du kun kan vælge fra listen
  csOwnerDrawFixed: En Combo hvor man selv tegner indholdet i comboen - med fast højde
  csOwnerDrawVariable: En Combo hvor man selv kan bestemme højden på hver linie i listen
  csSimple: Nærmest TEdit med en fast liste af valgmuligheder. Bruges ved f.eks. auto-complete indtastning. Indeholder listen "quick" og du skriver "q" så foreslår den resten

Antager at du ikke har ændret den, så den er csDropDown. Hvis det du skriver i comboen (i csDropDown) skal føres over i TEdit'en, så skal du bruge TComboBox-eventen OnChange-event og skrive følgende:

  Edit1.Text := ComboBox1.Text

eller lidt mere elegant:

  Edit1.Text := (Sender as TComboBox).Text; // Idet sender er TComboBox'en

Håber det kan hjælpe.

Som sagt, beklager huggene, men det er rædderligt at læse og jeg tror mange kan gøre det bedre. Nu jeg er i gang, så kunne stony godt lave lidt indryk på sit kode:

procedure TForm1.Button1Click(Sender: TObject);
var
  i : integer;
begin
  Edit1.Clear;
  for i := 0 to ComboBox1.Items.Count - 1 do
    Edit1.Text := Edit1.Text + ComboBox1.Items[i] + ' '; // mellemrum for syns skyld
end;

Det er da lettere at læse, ikke?

mvh. hrc (selvbestaltet moralsk opstød)
Avatar billede lamaduck Nybegynder
01. marts 2005 - 19:45 #6
hrc>

1: har aldrig været på nogle gode skoler hvor jeg har kunne lære det (aldrig lært om , og . osv og det samme med matematik hvor jeg ikke har lært meget om at divider osv)

2: tror ikke det er sms sprog jeg har da jeg aldrig bruger sms eller får nogle

3: kan da heller ikke passe andre skal hakke ned på andre (som du gør) bare forde du åbenbart har være nogle stædre hvor du kunne lære det
Avatar billede lamaduck Nybegynder
01. marts 2005 - 19:52 #7
fatter hat af det du skriver med combobox men kan man ikke gøre noget med

if
combobox1.Items.Strings[0]
then
edit1.Text := '839';

ved godt overståne ikke virker men giver et eksempel på hvad jeg vil
Avatar billede stoney Nybegynder
01. marts 2005 - 20:01 #8
så skal du til at kigge på objecter og/eller pointere.
Det er lidt mere komliceret, jeg kan lave et eks. senere.
Har ikke tid lige nu.
Ellers kig selv i hjælpen

hrc> op med humøret, vi skal alle starte et sted

Stoney
Avatar billede lamaduck Nybegynder
01. marts 2005 - 20:15 #9
stoney> venter lige på et eks. så og så får du 30point
Avatar billede hrc Mester
01. marts 2005 - 20:16 #10
Du må forstå, at jeg ikke hakker på dig i almindelighed - det er ikke et personligt angreb. Synes bare jeg ser alt for megen dårlig formulering på Eksperten og det er sgu ikke let at se hvad der menes.

Du skal lige prøve at læse teksten igen. Jeg skriver, at du skal bruge comboens OnChange-event. Det er en klump kode som kaldes hver gang noget ændres i teksten. Vælg comboboksen og klik på fanebladet "Events" i "Object Inspector" (F11) og dér dobbeltklik i OnChange-feltet.

I den kode der kommer frem skriver du

  Edit1.Text := (Sender as TComboBox).Text;

Kør programmet (F9) og prøv at skrive i comboen eller vælg fra listen. Alt du gør bliver skrevet i TEdit'en.

Er problemet at du skal have ting ind i listen? I førnævnte "Object inspector" klikker du nu på "Properties" og finder linien "Lines". Klik på den og klik på den "..." knap der kommer frem.

Ole Monrad har skrevet en dansk Delphi-bog som let kan findes på biblioteket. Den starter fra bunden og kan sikkert hjælpe dig.
Avatar billede hrc Mester
01. marts 2005 - 20:18 #11
stoney: Måske var jeg lige en tand for mavesur, men jeg forstod ikke en dyt af det der burde være et meget let spørgsmål (5 point) - og det er tit det er sådan på Eksperten.
Avatar billede hrc Mester
01. marts 2005 - 20:37 #12
stoney: Desuden - og det er i samme ånd som Borrisholt's afskedssalut - hvis man vil lære noget, så starter det med at man søger oplysninger, såsom at låne en bog på biblioteket og efterfølgende læse den. Man skal kravle før man kan gå og LamaDuck bør lave sin første "Hello World", ligesom vi gjorde det 6-7 Delphi versioner siden.

Eksperten er ingen genvej til kundskaber, dem skal der arbejdes for.
Avatar billede lamaduck Nybegynder
01. marts 2005 - 20:45 #13
så sker der jo bare det at hvad jeg skriver i combo bliver sendt til edit og er ikke meningen man skal skrive noget i combo når programnmet køre
Avatar billede roz Nybegynder
01. marts 2005 - 22:06 #14
Altså hvis du vil definere de items (valgmuligheder) der skal være i din ComboBox inden programmet startes skal du kigge på Lines i Object Inspectoren. Der kan du tilføje linjer med tekst ved at trykke på '...'.
Hvis du ikke vil at man skal kunne skrive i Comboboxen skal du, som hrc siger, sætte Comboboxenx's Style-property i Object Inspectoren til csDropDownList.
Avatar billede stoney Nybegynder
01. marts 2005 - 22:38 #15
Det er det mest simple jeg kan flække sammen uden brug af addobject og pointere

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    ComboBox1: TComboBox;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ComboBox1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  s : TStringList;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
i : integer;
begin
combobox1.Clear;
s := TStringList.Create;

  s.Values['Vare1'] := '865';
  s.Values['Vare2'] := '444';

for i := 0 to s.Count - 1 do
  combobox1.Items.Add(s.Names[i]);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  s.Free;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
edit1.Text := s.Values[ComboBox1.Items[ComboBox1.ItemIndex]];
end;

Stoney
Avatar billede stoney Nybegynder
01. marts 2005 - 22:49 #16
hrc> jeg forstår godt hvad du mener. Men hvis lamaduck er "grøn" i Delphi kan det være svært at vide hvad man skal søge efter i hjælpen.
Omkring stavning kan du jo skrive et ISAPI plugin/stavekontrol til Eksperten :-)
Forudsat de kører IIS

Stoney
Avatar billede lamaduck Nybegynder
02. marts 2005 - 02:21 #17
hmm hvis jeg bruger det kommer der en fejl (står at programmet køre) som jeg ikke fatter men hvorfor kan man ikke bare gøre noget nemt som

if
combobox1.Items.Strings[0]
then
edit1.Text := '839';
Avatar billede lamaduck Nybegynder
02. marts 2005 - 02:34 #18
fandt frem til

if (Sender as TComboBox).Text = 'ti' then begin
  edit1.text := '10,-'
  end;
Avatar billede stoney Nybegynder
02. marts 2005 - 10:23 #19
Det virker, du må have lavet noget forkert.
Din sidste løsning vil kaste dig ud xxxxx  antal if ... then plus
du ikke kan gøre det dynamisk.

Stoney
Avatar billede lamaduck Nybegynder
02. marts 2005 - 16:17 #20
ingen ide om hvad det betyder men ved at det ikke virker 100%
02. marts 2005 - 21:10 #21
Jeg er tilbøjelig til at give HRC ret. Jeg sidder selv tit og krummer tæer over de, til tider, hjælpeløse stavemåder der bruges her på sitet. Det giver mig fornemmelsen af at det er nogle halve analfabeter, der ønsker at være programerings eksperter. Det hænger tit meget godt sammen, hvis man vil være god til at programmere, så skal indersiden af hovedet være tip top iorden, man skal være systematisk og have øje for detaljer, ellers får man aldrig noget til at fungere. Og som der står i vejledningen til sitet her, så skal man formulere sine spørgsmål klare og præcise.
02. marts 2005 - 21:16 #22
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  Edit1.Text := ComboBox1.Items[ComboBox1.ItemIndex];
end;
02. marts 2005 - 23:16 #23
Eller:

procedure TForm1.ComboBox1Change(Sender: TObject);
var
  Txt: String
begin
  Txt := ComboBox1.Items[ComboBox1.ItemIndex];
  ...
  // Foretag nogle beregninger på Txt.
  // F.eks klippe noget af, eller klistre noget på.
  ...
  Edit1.Text := Txt;
end;
Avatar billede lamaduck Nybegynder
19. juni 2005 - 15:26 #24
lukket
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