AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Gesture - ein lernfähiges Mausgesten-Erkennungssystem
Thema durchsuchen
Ansicht
Themen-Optionen

Gesture - ein lernfähiges Mausgesten-Erkennungssystem

Ein Thema von OrallY · begonnen am 28. Jul 2004 · letzter Beitrag vom 2. Aug 2004
Antwort Antwort
Seite 4 von 4   « Erste     234   
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#1

Re: Gesture - ein lernfähiges Mausgesten-Erkennungssystem

  Alt 28. Jul 2004, 22:02
benutze doch einfach eine Liste (zum Beispiel TList) dann bist du nicht auf 2000 Einträge beschränkt und mitm aufräumen ist eigentlich auch kein Problem
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von OrallY
OrallY

Registriert seit: 29. Apr 2003
268 Beiträge
 
#2

Re: Gesture - ein lernfähiges Mausgesten-Erkennungssystem

  Alt 29. Jul 2004, 09:21
Die Idee ist gar nicht so schlecht! Ich denke ich werd mir mal selbst was zusammenhacken. Thx.
.oO'rallY
Linux is like a tipi: no gates, no windows and a gnu-eating apache inside...
  Mit Zitat antworten Zitat
Benutzerbild von OrallY
OrallY

Registriert seit: 29. Apr 2003
268 Beiträge
 
#3

Re: Gesture - ein lernfähiges Mausgesten-Erkennungssystem

  Alt 30. Jul 2004, 14:04
Ich habe ein paar kleine Veränderungen an Gesture vorgenommen. Das wichtigste ist die Einführung einer verketteten Liste, um den Mausweg zu speichern.

Allerings besteht das Problem, dass der Speicher nach dem Zeichnen einer Geste nicht wieder freigegeben wird. Ich weiß nicht, woran das liegt:
Auszug aus GestureList.pas:
Delphi-Quellcode:
{...}
PItem = ^TItem;
  TItem = packed record
    Data: TFloatingPoint;
    Next: PItem;
  end;

procedure TGestureList.Add(APoint: TFloatingPoint; pos: integer = -1);
var
  cur_item, new_item: PItem;
begin
  GetMem(new_item, SizeOf(TItem));

  new_item^.Data := APoint;

  if pos = -1 then
    pos := ItemCount;

  if pos = 0 then begin
    cur_item := StartItem;
    new_item^.next := cur_item;
    StartItem := new_item;
    Inc(ItemCount);
  end
  else
    if pos <= ItemCount then begin
      cur_item := GetItem(pos-1);
      new_item^.next := cur_item^.next;
      cur_item^.next := new_item;
      Inc(ItemCount);
    end else Dispose(new_item);
end;

procedure TGestureList.Delete(Pos: integer);
var
  del_item, cur_item: PItem;
begin    
  if StartItem <> nil then    
    if pos = 0 then begin    
      del_item := StartItem;    
      StartItem := StartItem^.Next;
      Dispose(del_item);
      Dec(ItemCount);
    end else
      if pos < ItemCount then begin    
        cur_item := GetItem(pos-1);
        del_item := cur_item^.Next;
        cur_item^.Next := del_item^.Next;
        Dispose(del_item);
        Dec(ItemCount);    
      end;
end;

procedure TGestureList.DelAllFromItem(var Item: PItem);
begin
  if Item <> nil then begin
    if Item^.Next <> nil then DelAllFromItem(Item^.Next); //Rekursion!
    FreeMem(Item, SizeOf(TItem));
    Item := nil;
  end;
end;
{...}
.oO'rallY
Linux is like a tipi: no gates, no windows and a gnu-eating apache inside...
  Mit Zitat antworten Zitat
Benutzerbild von OrallY
OrallY

Registriert seit: 29. Apr 2003
268 Beiträge
 
#4

Re: Gesture - ein lernfähiges Mausgesten-Erkennungssystem

  Alt 2. Aug 2004, 12:13
Der Speicherbug ist getilgt. Es lag nicht an der genannten Unit sondern an einem vergessenen ReleaseDC in der DesktopDraw.pas. Thx to Memproof und Keldorn@delphi-forum

Gesture 0.0.2 (Pre-Alpha-Version)
Änderungen: Nur Bugfixes
Kompilat: http://prdownloads.sourceforge.net/g...a.zip?download [26KB]
Source: http://prdownloads.sourceforge.net/g...a.zip?download [23KB]
.oO'rallY
Linux is like a tipi: no gates, no windows and a gnu-eating apache inside...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz