26. maj 2004 - 10:27Der er
7 kommentarer og 2 løsninger
Hurtig gem knap
Jeg har tit set på Delphi programmer en hurtig gem knap. Hvad er så det ? det er en knap med et "gemsymbol" på og ved klik på den gemmes det man er igang med. Er det en database ( en af flere ) ( den man nu er igang med) klikkes på knappen og knappen bliver ikke tilgængelig, før man igen begynder at skrive noget.
Som udvikler ved du hvornår, det data det arbejdes på ændres af brugeren, det er der normalt et event der kan fange. Så er det bare at lave en knap der enables / disables efter behov når der sker ændringer. Skal det være smart skal gem knappen disables når brugeren 'ctrl + z'er (fortryder) tilbage til sidste gang data blev gemt.
Du laver bare to knapper. så giver du dem en Caption hver, en kalder du Gem Som... og den anden for Gem. Så laver du en Edit. og sletter teksten i den. Du laver så Gem knappen til at være disablet. Sådan at man ikke kan trykke på den. Så laver du en SaveDialog, du gør så at når du har gemt den det rigtige sted så skal Edit1.Text := SaveDialog1.FileName; Så gør du sådan så Gem knappen bliver enabled.
procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Lines.SaveToFile(edit1.Text); Button1.Enabled := false; Memo2.Lines.LoadFromFile(Edit1.Text); end;
procedure TForm1.Button2Click(Sender: TObject); begin if SaveDialog1.Execute then begin Memo1.Lines.SaveToFile(SaveDialog1.FileName); Edit1.Text := SaveDialog1.FileName; end; Button1.Enabled := true; a := true; Memo2.Lines.LoadFromFile(Edit1.Text); end;
procedure TForm1.Memo1Change(Sender: TObject); begin if a = true then Button1.Enabled := true; end;
procedure TForm1.Timer1Timer(Sender: TObject); begin if Memo1.Text = Memo2.Text then Button1.Enabled := false; end;
I min der gør den sådan at man først kan trykke gem når man har trykket Gem Som...
Og når man trykker gem, så bliver den disapled, sådan at man ikke kan trykke på den. Så har jeg lavet en OnChange i memo'en, sådan at hvis man skriver noget nyt i memo'en så kan man igen trykke gem. Jeg har så lavet en ekstra fines, sådan at hvis der står det samme som der står i den gemte fil, så kan man ikke trykke på gem. Det er det timeren er der for.
Tak for det store arbejde du har lagt i det , men jeg skrev nu en database netop fordi det er en database, faktisk er der 2 databaser med hver sit navn. Det andet har jeg.. VH koden12
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.