Avatar billede Slettet bruger
08. februar 2001 - 20:36 Der er 21 kommentarer og
2 løsninger

Komponent tilknyttet en form

Hejsa

Jeg har lavet en form med et par knapper og labels, hvordan kan man lave det om til en form??

Der er tre knapper (B1, B2, B3), en Label(label1) og en caption på en form. De skal kunne ændres i designtime i Objekt Inspectoren.

Formen hedder TestDlg.pas, TestDlg.dfm.
Komponent-filen er Test.pas, og komponentet hedder TTestDialog.

Hvordan ser komponent-pas filen ud??

Håber på Hjælp

Mikkel

Hvad
Avatar billede Slettet bruger
08. februar 2001 - 20:37 #1
Undskyld, denne sætning:

Jeg har lavet en form med et par knapper og labels, hvordan kan man lave det om til en form??

skal selvfølgelig være

Jeg har lavet en form med et par knapper og labels, hvordan kan man lave det om til en komponent??

Avatar billede microtec Nybegynder
08. februar 2001 - 23:35 #2
Det kan du ikke umiddelbart gøre.
Du kan ikke designe noget visuelt i Objekt Inspectoren og så derefter lave det om til en komponent.

Hvis du vil lave komponenter, er du nød til selv at kode det hele. Altså ingen visuel programmering :o(
Avatar billede lrj Nybegynder
08. februar 2001 - 23:51 #3
Men Delphi 5 (måske også 4) har noget der hedder Frames - prøv at kigge på det. Kan sikkert gøre det du søger..
Avatar billede Slettet bruger
09. februar 2001 - 14:16 #4
Hvordan har f. eks. Steen Hjelmstrand (Stones), så lavet den dersens HTML-farve dialog.

Når man har placeret komponentet på formen skal man kunne ændre forskellige ting i Objekt Inspectoren. Der er en artikel om det i Delphi Hjælp, Creating Custom Components|Making a DialogBox a component. Men der er ikke noget eksempel på hvordan det hele ser ud, og jeg kan ikk\' få det til at virke.
Avatar billede microtec Nybegynder
09. februar 2001 - 14:22 #5
mikkel_c >> Han og andre har skrevet koden selv, uden brug af visual programmering via Objekt Inspectoren.
I nogen af Delphi versionerne følger source-koden til Borlands komponenter med. Er du så heldig at have sådan en version, kan du jo kikke hvordan det gørers.

Hvis det er første gang du selv laver en komponent, vil jeg dog anbefale at starte med noget som er simplere.
Avatar billede microtec Nybegynder
09. februar 2001 - 14:23 #6
mikkel_c >> Han og andre har skrevet koden selv, uden brug af visual programmering via Objekt Inspectoren.
I nogen af Delphi versionerne følger source-koden til Borlands komponenter med. Er du så heldig at have sådan en version, kan du jo kikke hvordan det gørers.

Hvis det er første gang du selv laver en komponent, vil jeg dog anbefale at starte med noget som er simplere.
Avatar billede microtec Nybegynder
09. februar 2001 - 14:24 #7
mikkel_c >> Han og andre har skrevet koden selv, uden brug af visual programmering via Objekt Inspectoren.
I nogen af Delphi versionerne følger source-koden til Borlands komponenter med. Er du så heldig at have sådan en version, kan du jo kikke hvordan det gørers.

Hvis det er første gang du selv laver en komponent, vil jeg dog anbefale at starte med noget som er simplere.
Avatar billede microtec Nybegynder
09. februar 2001 - 14:31 #8
Undskyld, at det min kommentar kom 3 gange.
Jeg havde problemer med at sende beskeden til Eksperten og trykkede \"Opdater\" i browseren.
Avatar billede Slettet bruger
11. februar 2001 - 08:27 #9
Jeg er ikke helt sikker på at du har forstået mit spørgsmål, så prøv at glem det første, så omformulerer jeg det her:


Jeg har lavet en form med et par knapper og labels, hvordan kan man lave det om til en komponent??

Der er tre knapper (B1, B2, B3), en Label(label1) og en caption på en form.

Formen hedder TestDlg.pas, TestDlg.dfm.
Komponent-filen er Test.pas, og komponentet hedder TTestDialog.

Når komponenten er færdig skal man placere komponenten på formen, klikke en gang på komponenten, og så kan man ændre teksten på de labels jeg har på komponent-formen. Så kan man derefter Execute den, og en box kommer frem med komponent-formen.

Hvordan ser komponent-pas filen ud??
Avatar billede microtec Nybegynder
11. februar 2001 - 12:10 #10
Du skriver igen \"Jeg har lavet en form med et par knapper og labels, hvordan kan man lave det om til en komponent??\" rit svar er igen, at det kan man ikke :o)
Avatar billede microtec Nybegynder
11. februar 2001 - 12:11 #11
Man kan ikke sådan bare konvertere en form til en komponent. Det ville være smart hvis man kunne, men det kan man desværre ikke.
Avatar billede Slettet bruger
11. februar 2001 - 12:38 #12
Okay, jeg overgiver mig ;-)

Da jeg ikke helt har fået svaret på hvordan man kunne lave det, og kun at det kan man ikke, får du 100 af de 300 point, er det i orden med dig??
Avatar billede microtec Nybegynder
11. februar 2001 - 12:56 #13
Helt sikkert. Det syntes jeg endda er meget flot.
Held og lykke med dit projekt.
Avatar billede delphi Nybegynder
12. februar 2001 - 09:06 #14
Nu jeg lige sidder og tænker over spørgsmålet, er det så egentligt ikke mest et spørgsmål om at du ønsker at vide, hvor ledes man viser (executer) en custom designe dialogbox?
Altså: Du designer en form, med de knapper, labels etc der skal være, og når den så skal vises under runtime, skal man kalde den \'execute\' rutine, hvilket vil få den frem (øverst) indtil brugeren siger at den igen skal lukkes??

I såfald er den normale fremgangsmåden noget i retning af: 
(Bemærk Form1 er din main form, Form2 er din dialogbox).

Procedure Form1.ButtonClick1(Sender : TObject);
Begin
  Form2.Label1.Caption := \'Æsel lignende dyr.\';
  Form2.ShowModal;
End;

Skal din mainform holdes skjult men dialogboxen vises, så er det således det foregår:

Procedure Form1.ButtonClick1(Sender : TObject);
Begin
  Form2.Label1.Caption := \'Ridedyr\';
  Hide;
  Try
    Form2.ShowModal;
  Finally
    Show;
  End;
End;


Ovenstående benytter ikke en decideret \'Execute\' metode.  Kun visse dialogbokse har en sådan metode, fx. TSaveDialog, men det er nemt at tilføje en tilsvarende til en customdialog, således at man laver noget der funktionelt svarer til TSaveDialog.


Jeg ved ikke om jeg er på vildspor og har misforstået dit spørgsmål, ellers må du bare komme igen.

Peter
Avatar billede Slettet bruger
12. februar 2001 - 10:45 #15
Form2 skulle jo gerne være et komponent, så man ikke behøver at designe dialog-boxen i hvert projekt man laver, men bare kunne smide et komponent på formen fuldstændig ligesom en TSaveDialog. Jeg er villig til at 300 point for et eksempel, som jeg kan bruge. Jeg vil helst have at du uploader projektet et eller andet sted, eller sender det til min e-mail:

mt.clemmensen@vip.cybercity.dk

Mvh

Mikkel
Avatar billede microtec Nybegynder
12. februar 2001 - 10:57 #16
mikkel_c >> Du kan fint benytte f.eks. din Form2 i andre projekter selv om det ikke er en komponent.
Du kan f.eks. bare kopierer PAS- og DFM-filerne over til dit nye projekt. Derefter tilknytter du det til projektet med:

Project > Add to project
Avatar billede microtec Nybegynder
12. februar 2001 - 11:01 #17
TSaveDialog er som sagt ikke lavet som en form i Objekt Inspectoren. Den er kodet på \"god gammeldags maner\".
Prøv at se om source-koden til den ikke følger med din version af Delphi. Det gør den til nogle versioner.
Avatar billede microtec Nybegynder
12. februar 2001 - 11:05 #18
Jeg har mailet dig source-koden Dialogs.pas
Den indeholder b.la. koden til TSaveDialog.
Det er lidt på kanten af det tilladelige, men da du jo har Delphi mener jeg at det går an :o)
Avatar billede delphi Nybegynder
12. februar 2001 - 11:45 #19
Har du sendt ham samtlige tre linier :)

// Cut start
  TSaveDialog = class(TOpenDialog)
    function Execute: Boolean; override;
  end;
// Cut end.

(ku\' ik\' la\' vær\')

Peter

Avatar billede microtec Nybegynder
12. februar 2001 - 11:50 #20
delphi >> *lol*

Nej, det havde jeg ikke. Men det er rigtigt, at TSaveDialog er nøjagtig det samme som TOpenDialog :o)
Avatar billede Slettet bruger
13. februar 2001 - 14:44 #21
Tak for hjælpen, men Niels (niller.udvikleren.dk), skriver en artikel om det, som vi har talt om i dette spørgsmål. Er det okay, at vi afslutter dette spørgsmål??
Avatar billede microtec Nybegynder
13. februar 2001 - 14:49 #22
Du har jo egentlig afslutte spørgsmålet. Det sidste var bare fordi vi er så flinke ;o)

Kan du ikke lige give et link til den artikel? Den vil jeg gerne læse.
Avatar billede Slettet bruger
15. februar 2001 - 10:53 #23
Den er ikke kommet op endnu, men kig jævnligt på udvikleren.dk.
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