Article View: pl.comp.lang.delphi
Article #345539Re: Undo/Redo
From: zpksoft
Date: Fri, 13 Jan 2017 21:59
Date: Fri, 13 Jan 2017 21:59
52 lines
3768 bytes
3768 bytes
W dniu piątek, 13 stycznia 2017 19:04:08 UTC+1 użytkownik JS napisał: > W dniu 2017-01-12 o 21:53, J-23 pisze: > > W dniu 12.01.2017 o 18:17, Roman Tyczka pisze: > >> On Thu, 12 Jan 2017 07:57:14 -0800 (PST), zpksoft wrote: > >> > >>> Poza tym pytający nie pisał o organizacji kodu tylko pytał > >>> o pomysł realizacji undo-redo na bazie danych. > >> > >> Ani słowa nie ma o bazie danych, co palisz, że masz takie omamy? > >> > > > > Są słowa o tablicach i danych: > > > > cytuje : "Poradźcie jak zrobić funkcję Undo/Redo w programie, który > > operuje na kilkunastu (całkiem niemałych) tablicach rekordów?" > > > > Można wysnuć wniosek, że chodzi o tabele w bazie danych (Na upartego też > > można przykleić że mogą być to rekordy w pamięci) ale autor idze na > > skróty myślowe bo zastanawia się "jak zapisać poszczególne kroki w bazie > > danych" a nie jak "zorganizować strukturę pozwalającą zapisać do bazy > > danych." a problem przywracania to tak naprawdę jest problemem > > organizacji zapisu poszczególnych kroków > > > > Nie ma moim zdaniem co wymyślać koła na nowo i szukać rozwiązań > > partyzanckich. No chyba że w kodzie jest brak jakiejkolwiek organizacji > > wtedy operacja "Undo/Redo" będzie wyglądała na karkołomną. > > > > Pozdrawiam > > J-23 > Nie robię żadnej bazy danych, jest po prostu kilkanaście tablic: > aaa: array [1..xxxx] of "jakiś tam rekord"; > > Na razie rzeźbię dodatkowe tablice z historią, ale myślałem, że jest > jakiś sprytniejszy sposób. > W każdym razie dzięki za porady. > > Pozdrawiam > JS Myślałem, że to baza danych :) U mnie w bazach odpowiednie triggery załatwiają kwestię historii. Dla Twojego przypadku utworzył bym listę zawierającą elementy. Każdy z nich byłby rekordem złożonym z: - nazwy tablicy którego dotyczy wpis - numeru rekordu tablicy - bloba (paczki binarnej zawierającej historyczną zawartość rekordu tablicy) I teraz wystarczy poruszanie się po tej liście. W bazie danych mają sens tablice historyczne, tutaj myślę, że takie rozwiązanie będzie właściwsze. Paweł
Technical Details
Message-ID:
<4904aef7-6114-41c7-9b01-2897cb62af20@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder1.iad1.usenetexpress.com!216.166.98.84.MISMATCH!border1.nntp.dca1.giganews.com!nntp.giganews.com!i7no598055qta.1!news-out.google.com!78ni2791itm.0!nntp.google.com!r185no959776ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<o55p4k$3kj$1@node1.news.atman.pl> <8795c6df-e079-4b62-8285-cb2a858597ab@googlegroups.com> <587791cd$0$658$65785112@news.neostrada.pl> <75f40add-7cbd-4249-897f-8d115407a75b@googlegroups.com> <4cwg94fh2bdy.dlg@tyczka.com> <5877ecb2$0$5146$65785112@news.neostrada.pl> <o5b4qn$ehf$1@node2.news.atman.pl>Show Full Headers
Complete Article Headers
X-Received: by 10.129.57.84 with SMTP id g81mr7049323ywa.127.1484344797546; Fri, 13 Jan 2017 13:59:57 -0800 (PST) X-Received: by 10.157.4.105 with SMTP id 96mr829243otc.17.1484344797504; Fri, 13 Jan 2017 13:59:57 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder1.iad1.usenetexpress.com!216.166.98.84.MISMATCH!border1.nntp.dca1.giganews.com!nntp.giganews.com!i7no598055qta.1!news-out.google.com!78ni2791itm.0!nntp.google.com!r185no959776ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.delphi Date: Fri, 13 Jan 2017 13:59:57 -0800 (PST) In-Reply-To: <o5b4qn$ehf$1@node2.news.atman.pl> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=83.27.194.72; posting-account=8ND_mgoAAAD5J9y9fnaTB1Kcu7xKWk7Q NNTP-Posting-Host: 83.27.194.72 References: <o55p4k$3kj$1@node1.news.atman.pl> <8795c6df-e079-4b62-8285-cb2a858597ab@googlegroups.com> <587791cd$0$658$65785112@news.neostrada.pl> <75f40add-7cbd-4249-897f-8d115407a75b@googlegroups.com> <4cwg94fh2bdy.dlg@tyczka.com> <5877ecb2$0$5146$65785112@news.neostrada.pl> <o5b4qn$ehf$1@node2.news.atman.pl> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <4904aef7-6114-41c7-9b01-2897cb62af20@googlegroups.com> Subject: Re: Undo/Redo From: zpksoft <zpksoft@op.pl> Injection-Date: Fri, 13 Jan 2017 21:59:57 +0000 Lines: 69 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit