webForumDet fria alternativet

Hämta värden ifrån databas till meny!

Programmering

5 svar · 255 visningar · startad av Xepp

Medlem sedan nov. 200327 inlägg
Frågan#1

Behöver hjälp med koden för att hämta två kolumners värden ifrån en Access databas. Ska göra en meny så som favoriter i IE och ska hämta internetaddressen och namnet. Namnen ska listas under menyn Favoriter.

Man måste göra en loop tror jag men fattar inte hur jag ska göra. Det är 20 namn och 20 addresser som ska hämtas!

Nån som har lust att hjälpa mig med koden? SKulle avra oerhört tacksam!

.:: Sebbe

Medlem sedan nov. 2003310 inlägg
#2

det borde bli nåt liknande:

aQuery.SQL.Add('select * from tabell');
aQuery.Open;
while not aQuery.Eof do
begin
  aMenuItem := aMenuItem.Create(self);
  minMeny.Items.Add(aMenuItem);
  aMenuItem.Caption := aQuery.FieldByName('namn'
);  osv....
  aQuery.Next;
end;

aQuery.Close;

Du får snygga till koden. Säkerligen nåt jag har missat då jag skrev den ur minnet.

/Ante S

Medlem sedan nov. 200327 inlägg
#3

Koden ser bra ut men har några korta frågor bara! =)

Vad är aMenuItem? Är det typ Favoriter (dvs menyn) eller är det typ MainMenu1.Favortier?

minMeny antar jag är MainMenu1 lr?

Kommer denna kod även att hämta namnen som spars i kolumnen? Namn spars ju i en kolumn och addressen i en kolumn.

.:: Sebbe

Medlem sedan nov. 2003310 inlägg
#4

aMenuItem är ett objekt av classen TMenuItem. Brukar ge mina lokal objekt prefixet a. TMenuItem är en "rad" i en meny.

minMeny antar jag är MainMenu1 lr?

yepp

aQuery är mitt TQuery objekt.

aQuery.FieldByName('namn')

hämtar värdet som ligger i namn kolumnen. Om du vill hämta värdet från någon annan kolumn så är det bara att du byter ut namn mot namnet på den kolumnen.
För att hämta värdet från adresskolumnen så skriver du:

aQuery.FieldByName('adress')

/Ante S

Medlem sedan nov. 200327 inlägg
#5

Får inte ihop koden.

procedure TForm1.FormCreate(Sender: TObject);
var
  Favoriter : TMenuItem;
begin
  ADOQuery1.SQL.Add('select * from THist');
  ADOQuery1.Open;
  while not ADOQuery1.Eof do
  begin
    Favoriter := Favoriter.Create(self);
    MainMenu1.Items.Add(Favoriter);
    Favoriter.Caption := ADOQuery1.FieldByName('Address').asstring;
  ADOQuery1.Next;
  end;

  ADOQuery1.Close;

end;

Cant get this dame thing to work!!
Om jag fattar rätt så är det meningen att här ska det skapas en rubrik i MainMeny1 som heter Favoriter och där under ska alla Addresser listas upp under!? Stämmer det? Får den inte att funka iallfall.. den klagar på

[Warning] uBrowser.pas(147): Variable 'Favoriter' might not have been initialized

Vad har jag gjort fel! Låt oss säga att jag sen vill fixa så man kan klicka på namnen så kommer man till hemsidan. Hur kan koden bli då? vet nte riktigt.. det komplicerar det genom att man måste kunna klicka på den. En array med 100000 platser kanske!? hrmm.. måste fnnas ett enklare sätt..

.:: Sebbe

Medlem sedan nov. 2003310 inlägg
#6

Ändra raden

Favoriter := Favoriter.Create(self);

till

Favoriter := TMenuItem.Create(self);

Ett objekt kan inte skapa sig själv.

/Ante S

256 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)