Avatar billede elohim Nybegynder
09. februar 2002 - 12:22 Der er 14 kommentarer og
1 løsning

If sætning

procedure TfrmVareKartotek.VareKDBGridDblClick(Sender: TObject);
begin
  if  ??????hvad skal der stå her????? then
  begin
  frmSalg.DBSalg.FieldByName('Varenr').Value := frmVareKartotek.DBVareKartotek.fieldbyname('Varenr').Value;
  end
  else
  begin
  frmSalg.DBKoeb.FieldByName('Varenr').Value := frmVareKartotek.DBVareKartotek.fieldbyname('Varenr').Value;
  end;
Avatar billede stoney Nybegynder
09. februar 2002 - 12:29 #1
procedure TfrmVareKartotek.VareKDBGridDblClick(Sender: TObject);
begin
  if  ((frmSalg.DBKoeb.FieldByName('Varenr').Value)=(frmVareKartotek.DBVareKartotek.fieldbyname('Varenr').Value)) then
  begin
  frmSalg.DBSalg.FieldByName('Varenr').Value := frmVareKartotek.DBVareKartotek.fieldbyname('Varenr').Value;
  end
  else
  begin
  frmSalg.DBKoeb.FieldByName('Varenr').Value := frmVareKartotek.DBVareKartotek.fieldbyname('Varenr').Value;
  end;

Stoney
Avatar billede stoney Nybegynder
09. februar 2002 - 12:31 #2
Det gik lidt for stærkt.

Hvad skal din if sætning checke for ?

Stoney
Avatar billede elohim Nybegynder
09. februar 2002 - 13:05 #3
Om jeg kommer fra Salg eller Køb formen
Avatar billede stoney Nybegynder
09. februar 2002 - 13:43 #4
Det nemmeste er at lave en public variabel
indsæt følgende under public på din "hovedform" formnavn : string;

Hvergang du åbner en ny form siger du bare under onactivate

formnavn := navnet_på_din_form.name;

herefter kan du checke

if (formnavn = frmSalg) then
din kode
if (formnavn = frmVareKartotek) then
din kode

stoney
Avatar billede stoney Nybegynder
09. februar 2002 - 13:55 #5
aarrrh

Jeg glemte følgende:

Lad os sige du står på frmVareKartotek og og vil vise frmSalg

skal du sige 

formnavn:= frmVareKartotek;
frmsalg.show;

Stoney
Avatar billede elohim Nybegynder
09. februar 2002 - 15:10 #6
Nej
Jeg har en frmSalg og en frmKoeb
I disse har jeg lavet den knap indeni griden som i editmode kan trykkes på.

Begge disse kan indsætte fra frmVareKartotek,
så når jeg dobbeltklikker på en vare i frmVareKartotek indsætter den varenr
i hhv. (det er her If sætningen kommer ind) frmSalg eller frmKoeb alt efter hvor jeg kommer fra
Avatar billede elohim Nybegynder
09. februar 2002 - 15:25 #7
Her er koden

procedure TfrmVareKartotek.VareKDBGridDblClick(Sender: TObject);
var
  formnavn : String;
begin
  begin
    if  (formnavn = IntToStr(frmSalg)) then
      begin
      frmSalg.DBSalg.FieldByName('Varenr').Value := frmVareKartotek.DBVareKartotek.fieldbyname('Varenr').Value;
      frmSalg.DBSalg.FieldByName('VareNavn').Value := frmVareKartotek.DBVareKartotek.fieldbyname('VareNavn').Value;
      frmSalg.DBSalg.FieldByName('APris').Value := frmVareKartotek.DBVareKartotek.fieldbyname('APris').Value;
    {  frmSalg.DBSalg.FieldByName('Antal')Setfocus;}
      end
      else
      begin
      frmKoeb.DBKoeb.FieldByName('Varenr').Value := frmVareKartotek.DBVareKartotek.fieldbyname('Varenr').Value;
      frmKoeb.DBKoeb.FieldByName('VareNavn').Value := frmVareKartotek.DBVareKartotek.fieldbyname('VareNavn').Value;
      frmKoeb.DBKoeb.FieldByName('APris').Value := frmVareKartotek.DBVareKartotek.fieldbyname('APris').Value;
    {  frmSalg.DBSalg.FieldByName('Antal')Setfocus;}
    end;
  end;
close;
end;
Avatar billede stoney Nybegynder
09. februar 2002 - 16:08 #8
//her står du på frmsalg og "hopper" til frmVareKartotek
// udfør nedenstående lige inden du hopper til frmVareKartotek

formnavn := 'frmSalg';
-------------------------------------------------------
// her står du på frmkoeb og "hopper" til frmVareKartotek
udfør nedenstående lige inden du hopper til frmVareKartotek

formnavn := 'frmKoeb';

-----------------------------------------------------------

procedure TfrmVareKartotek.VareKDBGridDblClick(Sender: TObject);

begin
  begin
    if  (formnavn = 'frmSalg') then
      begin
      frmSalg.DBSalg.FieldByName('Varenr').Value := frmVareKartotek.DBVareKartotek.fieldbyname('Varenr').Value;
      frmSalg.DBSalg.FieldByName('VareNavn').Value := frmVareKartotek.DBVareKartotek.fieldbyname('VareNavn').Value;
      frmSalg.DBSalg.FieldByName('APris').Value := frmVareKartotek.DBVareKartotek.fieldbyname('APris').Value;
    {  frmSalg.DBSalg.FieldByName('Antal')Setfocus;}
      end
      else
      begin
      frmKoeb.DBKoeb.FieldByName('Varenr').Value := frmVareKartotek.DBVareKartotek.fieldbyname('Varenr').Value;
      frmKoeb.DBKoeb.FieldByName('VareNavn').Value := frmVareKartotek.DBVareKartotek.fieldbyname('VareNavn').Value;
      frmKoeb.DBKoeb.FieldByName('APris').Value := frmVareKartotek.DBVareKartotek.fieldbyname('APris').Value;
    {  frmSalg.DBSalg.FieldByName('Antal')Setfocus;}
    end;
  end;
if  (formnavn = 'frmSalg') then
frmSalg.show;
else
frmkoeb.show;
close;
end;
---------------------------------------
Jeg går ud fra du har oprettet variablen formnavn under public

Stoney
Avatar billede elohim Nybegynder
09. februar 2002 - 18:13 #9
Når jeg gør sådan virker det
begin
  begin
      frmSalg.DBSalg.FieldByName('Varenr').Value := frmVareKartotek.DBVareKartotek.fieldbyname('Varenr').Value;
  end;
close;
end;

Når jeg gør sådan virker det ikke

begin
  begin
    if  (formnavn = 'frmSalg') then
      begin
      frmSalg.DBSalg.FieldByName('Varenr').Value := frmVareKartotek.DBVareKartotek.fieldbyname('Varenr').Value;
      frmSalg.DBSalg.FieldByName('VareNavn').Value := frmVareKartotek.DBVareKartotek.fieldbyname('VareNavn').Value;
      frmSalg.DBSalg.FieldByName('APris').Value := frmVareKartotek.DBVareKartotek.fieldbyname('APris').Value;
    {  frmSalg.DBSalg.FieldByName('Antal')Setfocus;}
      end;
  if  (formnavn = 'frmKoeb') then
      begin
      frmKoeb.DBKoeb.FieldByName('Varenr').Value := frmVareKartotek.DBVareKartotek.fieldbyname('Varenr').Value;
      frmKoeb.DBKoeb.FieldByName('VareNavn').Value := frmVareKartotek.DBVareKartotek.fieldbyname('VareNavn').Value;
      frmKoeb.DBKoeb.FieldByName('APris').Value := frmVareKartotek.DBVareKartotek.fieldbyname('APris').Value;
    end;
  end;
close;
end;

Jeg ved godt at jeg ikke behøves 2 if sætninger og jeg har sat
formnavn = 'frmKoeb'; lige før jeg går videre til "Vare"

det ser såden ud
procedure TfrmKoeb.DBGrid1EditButtonClick(Sender: TObject);
begin
  formnavn := 'frmKoeb';
  frmVareKartotek.DBVareKartotek.edit;
  frmVareKartotek.show;
end;

Håber det hjælper, jeg får ingen fejl men jeg får heller ikke noget med tilbage til hhv. salg og koeb når jeg dobbeltklikker på en vare.
den håbefulde
Avatar billede elohim Nybegynder
09. februar 2002 - 18:18 #10
fra hovedformen

public
    { Public declarations }
    Formnavn : String;
  end;

Men jeg får afligevel "undeclared" hvis jeg ikke sætter det ind i alle forms altså salg, koeb og vare. Det kan være det er derfor at der ikke kommer noget ud
Avatar billede elohim Nybegynder
09. februar 2002 - 18:19 #11
Her fra Salg

procedure TfrmSalg.SalgDBGridEditButtonClick(Sender: TObject);
begin
  formnavn := 'frmSalg';
  frmVareKartotek.DBVareKartotek.edit;
  frmVareKartotek.show;
end;
Avatar billede stoney Nybegynder
09. februar 2002 - 18:21 #12
prøv lige at sætte hovedform navnet foran

altså
if  (hovedformnavn.formnavn = 'frmSalg') then
      begin

 
Stoney
Avatar billede stoney Nybegynder
09. februar 2002 - 18:31 #13
Du skal selvfølgelig gøre det samme her

//her står du på frmsalg og "hopper" til frmVareKartotek
// udfør nedenstående lige inden du hopper til frmVareKartotek

hovedformnavn.formnavn := 'frmSalg';
-------------------------------------------------------
// her står du på frmkoeb og "hopper" til frmVareKartotek
udfør nedenstående lige inden du hopper til frmVareKartotek

hovedformnavn.formnavn := 'frmKoeb';

Stoney
Avatar billede elohim Nybegynder
09. februar 2002 - 18:33 #14
YYYYYYYYYUUUUUUUUUUUUUUUUUHHHHHHHHHHHHHHHH
Det virker jappe dappe duuuuuuuuuuu

Det må være fordi de forskellige ikke kunne se hinanden
Avatar billede stoney Nybegynder
09. februar 2002 - 18:39 #15
Tillykke

Delphi rules

Stoney
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