Avatar billede gozar Nybegynder
25. marts 2000 - 23:08 Der er 16 kommentarer og
1 løsning

Generalle ting

Er der nogen der kan hjælpe mig lidt, med mere generalle ting i delphi 4.

Jeg har problemer med at finde ud af hvordan fgl ting laves!!
Slet alt, og start på ny (Alsår lige som når man først starter et program op, og det indeholder ingenting

Opendialog
SaveDialog
Printialog
Printersetupdialog

Jeg er fuldstændig grøn, så håber i vil gå lidt i detalier, om hvordan hver ænkelt ting laves..

Så mangler jeg jo bare resten af programmet, he he. Men den sorg, til den tid.
Avatar billede lrj Nybegynder
26. marts 2000 - 00:38 #1
De er relativt ens at bruge, de 4 dialoger.

Men for at få dem vist (og komme i gang), sæt en OpenDialog på din form, samt en knap (Opendialog komponenten kan jo ikke ses når programmet kører). Dobbeltklik på knappen, og skriv

opendialog1.execute;

som koden for onclick på knappen. Så vises dialogen - tilsvarende med de andre.

Om brugeren har trykket ok eller cancel kan checkes med:

if opendialog1.execute then  'trykket okay, execute returnerer true
begin
  showmessage('Okay valgt');
end
else
begin
  showmessage('Anuller valgt');
end;


Håber det hjælper dig i gang. Vælg for øvrigt en komponent på din form og tryk F1 for mere info.

God fornøjelse :o)


Avatar billede gozar Nybegynder
26. marts 2000 - 00:45 #2
Det glæmte jeg, dialogerne er sat op. jeg sakl bare kave knyttet funtionerne til menu baren, som også er lavet
Avatar billede gozar Nybegynder
26. marts 2000 - 01:04 #3
Det virkede jo fint.

Nu er det bare lige sådan at jeg har brug for funktionen 2 gange. i menuen og ved et billed symbol, og det optimale er vel kun at have koden til at stå der 1 gang

Kan jeg ikke kalde den med en function på en eller anden måde??
Avatar billede gozar Nybegynder
26. marts 2000 - 01:21 #4
Mangler bare svar på første spørgesmål!!
Avatar billede picard Nybegynder
26. marts 2000 - 10:37 #5
Du knytter bare menuens onclick event til knappens/billedets onclick event
så skulle den være klaret.

Du burde overveje at give pointene til gozar

mvh. 
Picard
Avatar billede pellelil Nybegynder
26. marts 2000 - 10:41 #6
Med hensyn til at du kun vil have koden 1 gang selv om det skal aktiveres både fra et menupunkt og fra et "billed symbol" (jeg håber at vi her taler om en Speed-Button eller lign. ?) er ikke noget problem. Du skal bare lade disse 2 elemeter "kalde" samme OnClick event (Alternativt kig på Action-Lists).

Det eksempel som Lrj har lavet viser hvordan du "kalder" (bruger) den OpenDialog du har sat ind på din form. Eksemplet viser såleves hvordan du kan se om der er valgt en fil eller ej. Hvis der er valgt en fil så er dennes navn indeholdt i property'en: "FileName". Inden du kan bruge disse dialoger (til noget fornuftigt) er der en række properties der skal sættes. Eksempelvis vil det være en god ide at sætte OpenDialog'ens property "DefaultExtention" og "Filter" (sidstnævnte indeholder de filtyper brugeren kan skite mellem mens dialogen vises). Hvis denne eksempelvis sættes til: "Fax filer (*.apf)|*.APF|Alle filer (*.*)|*.*", så kan brugeren skifte mellem "*.APF (fax filer)" og "*.* (Alle filer)".
Avatar billede lrj Nybegynder
26. marts 2000 - 14:20 #7
gozar> Den pæne måde kun at skrive den slags kode på er ved at lave en ActionList (som pellelil også skrev), hvor du så lægger den kode jeg skrev ind i. På din knaps action property vælger du så den action du lige har lavet. Det samme kan du gøre i menuen - vælge den rigtige action for menupunktet.

Så er koden genbrugt og kun skrevet 1 sted, hvilket, som du skriver, er det eneste rigtige at gøre.
Avatar billede gozar Nybegynder
26. marts 2000 - 18:05 #8
Med det første spørgesmål mente jeg:

Slet alt, og start på ny (Alsår lige som når man først starter et program op, og det indeholder ingenting

Håber i forstår, ved ikke helt hvordan jeg elders skal beskrive det!!
Avatar billede lrj Nybegynder
26. marts 2000 - 21:36 #9
gozar - skulle mene mit første svar dækker over det:

sæt en Topendialog på formen, sæt en tbutton på formen, og dobbeltklik på knappen (tbutton) - skriv den første linje kode jeg skrev.

Mere er der ikke i det (til at komme i gang :)
Avatar billede gozar Nybegynder
27. marts 2000 - 10:09 #10
Jeg fandt selv ud af det.

memo1.lines.clear
Avatar billede lrj Nybegynder
27. marts 2000 - 12:05 #11
gozar> Aaah, sådan at forstå. Du kan også ændre i egenskaberne for din memo, der er en property der hedder lines - her kan du skrive hvad der skal være når programmet starter (intet i dit tilfælde).
Avatar billede gozar Nybegynder
27. marts 2000 - 12:13 #12
Ja. Det har jeg også fundet ud af.

Det tog lidt tid før jeg fant ud af at når jeg skrev
if openfiledialog1.execute then

Så aktiveres opjektet faktisk.
Tror det har løst mange af mine problemer.

Takker for hjælpen
Avatar billede pellelil Nybegynder
27. marts 2000 - 12:18 #13
Jeg skulle mene (hvis du har brug for det) at du kan læse indholdet (af den valgte filen) ind i din MEMO på flg. måde:

if opendialog1.execute then
begin
  Memo1.Lines.LoadFromFile(opendialog1.FileName);
end;

Muligvis indeholder opendialog1.FileName anførsels-tegn "omkring" filnavnet, og i såfald skal disse fjernes inden du kalder "LoadFromFile" (jeg er ikke 100% på at du har problemet, men kig hellere for en sikkerheds skyld).
Avatar billede gozar Nybegynder
27. marts 2000 - 12:29 #14
pellelil>>

Jeg har fundet ud af, både at loade filer, og billeder (Untagen Jpeg se: http://www.eksperten.dk/spm.asp?id=14094) samt gemme filer.

Men takker aligevel

Det eneste problem, jeg lige kan komme i tanke om er:

Procedure LoadFromFile (Const Afilename : string)
Tror jeg nok den hedder.

Den bliver ved med at smide den i hovedet på mig, når jeg leder i hjælpefilen. Men når jeg insætter programkoden, virker programmet ikke. Lige så snart jeg sætter // ud foran virker det fint!

Hvad er pointen med at lave den, når et progarm virker fint uden!!

Håber ikke jeg har opbrugt alt min Kredit ;-)
Avatar billede pellelil Nybegynder
27. marts 2000 - 12:32 #15
Har du husket noget "foran" LoadFromFile:

Memo1.Lines.LoadFromFile(...

Avatar billede gozar Nybegynder
27. marts 2000 - 12:56 #16
Jeg har fgl kode som ikke virker

Procedure LoadFromFile (const Afilename : String)

Procedure (Bla.Onclickevent)
begin
If opendialog1.execute then
memo1.lines.Loadfromfile(opendialog1.filename)
end;

Men det her virker

Procedure (Bla.Onclickevent)
begin
if opendialog1.execute then
memo1.lines.loadfromfile(opendialog1.filename)
end;

Ved godt at procedurene ikke er skrevet helt korekt, men jeg kan sq ikke huske det hele efter kun 2 dages programmering
Avatar billede lrj Nybegynder
27. marts 2000 - 13:11 #17
Hmm, den første kalder du LoadFromFile, ikke sandt? Det er taget ud af en sammenhæng, åbenbart, men det må være det du mener.

Procedure LoadFromFile (const Afilename : String) er, så vidt jeg kan se, definitionen på loadfromfile fra memo-hjælpen. Det er denne funktion du kalder når du bruger:
memo1.lines.loadfromfile(opendialog1.filename)

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