Avatar billede forcedesigner Nybegynder
30. april 2002 - 16:30 Der er 8 kommentarer og
2 løsninger

Ekstra til Ny og Luk

Jeg er i gang med en Editor der kan åbne gange vinduer.

1. Når jeg åbner et vindue og skriver på den også trykker på et nyt vindue igen skal der komme en MessageDlg som spørger om jeg skal gemme det der stå i vindue et.

2. Hvis der stå noget på vinduet og jeg vil lukke skal der komme den sammen MessageDlg?


Ny vindue kode:
CreateMDIChild('Dokument' + IntToStr(MDIChildCount + 1));

Luk kode:
close;

Hjælp mig lig!
Avatar billede hreiff Nybegynder
30. april 2002 - 17:08 #1
Opret en variabel (boolean) som nulstilles ved oprettelse af nyt dokument og ændres når der rettes / skrives.

Før luk/skift checker du om din boolean er sat eller ej.
Avatar billede forcedesigner Nybegynder
30. april 2002 - 17:27 #2
Det har jeg prøvet men kunne ikke rigtig få det til at spille sammen.

Der kommer Fejl hele tiden. Kan I hjælpe?
Avatar billede hermandsen Juniormester
30. april 2002 - 21:14 #3
Det kan da kun være fordi du ikke kan holde styr på den! :)
Jeg mener der er en property i en memo (sikkert også i en RichEdit) der hedder Modified... Den skulle vist holde styr på om der er sket forandringer i den... Den kan du så bare sætte til False når du har gemt! :)
Avatar billede easysoft_studios Nybegynder
30. april 2002 - 22:34 #4
Har noget stort liggende, der ikke bruger MDI, men alligevel fungere som sådan. Og det er faktisk lavet som en Editor, men så er der jo ikke meget sjov ved det?
Avatar billede forcedesigner Nybegynder
30. april 2002 - 22:56 #5
Ja, jeg ved det er Modified jeg skal bruge, men ved ik' helt hvordan?

Hjælp dog!
Avatar billede easysoft_studios Nybegynder
30. april 2002 - 22:59 #6
hvis Editor er din RichEdit så gør følgende:
if Editor.Modified then
  //begynd at sige "hovhov ikke gemt"

Kan med god vilje bruges på en OnCloseQuery (fra hukomelsen, så ved ikke om det er det den hedder)
Avatar billede forcedesigner Nybegynder
01. maj 2002 - 12:27 #7
Jamen ved ikke hvordan man gøre det.Har I en link fx.
Avatar billede hermandsen Juniormester
01. maj 2002 - 17:18 #8
Er du newbee? ;) Ej, sorry...

Når du gemmer din fil, så sætter du Modified til False. Det betyder så at den ikke er redigeret!

Når du så skriver i teksten, så bliver den ændret, modified, og den værdi sætter programmet så automatisk til True.

Når du så skal til at lukke dit program:

procedure TChildForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if Editor.Modified then
    if Application.MessageBox('Du har ikke gemt dokumentet, vil du gemme det nu?', 'Dokument ikke gemt', [MB_YESNO]) = IDYES then
  if SaveDialog.Execute then
    Editor.Lines.SaveToFile(SaveDialog.FileName);
end;

Jeg har altså ikke testet koden, bare skrevet det løst, så hvis der er fejl, please don't kill me!!! :)

//hermandsen
Avatar billede forcedesigner Nybegynder
02. maj 2002 - 12:35 #9
Virker ikke, såååå jeg giver 10 point til hermandsen, fordi han prøvede at hjælpe.
Avatar billede forcedesigner Nybegynder
02. maj 2002 - 12:38 #10
Jeg fandt ud af det, juhuuuuu!!!!!!!!!
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