AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Stringlist als Index über TImages
Thema durchsuchen
Ansicht
Themen-Optionen

Stringlist als Index über TImages

Ein Thema von F.W. · begonnen am 15. Nov 2003 · letzter Beitrag vom 16. Nov 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#1

Stringlist als Index über TImages

  Alt 15. Nov 2003, 13:51
In meinem Programm werden kleine Kreise(TImage) erzeugt, das ganze wird von einem Timer gemacht, der alle Einstellungen anpasst und den Namen des erstellten Objekts in eine Stringlist einfügt.

Die Stringlist ist damit ich mit einer For-do Anweisung schnell auf alle erzeugten Bilder zugreifen kann.

Das geht, aber ich habe eine Anweisung geschrieben:
Delphi-Quellcode:
procedure TForm1.Move(B: TImage; P: TPanel);
begin
 if B.Tag = 3 then begin //Richtung überprüfen
    if B.Left+B.Width > P.Width //Wenn das Bild an den Rand kommt,
       then B.Tag := 9; //dann soll es in die entgegengesetzte Richtung weiter
    B.Left := B.Left+5; //5 Pixels nach Rechts
end;
Das ist nur ein kleiner Ausschnitt, aber hier gibts immer den Fehler. Im Tag des Bildes wird eine Zahl gespeichert, die als Richtung dient, wie auf einer Uhr.

Ein anderer Timer sorgt dafür, dass sich alle Bilder bewegen:
Delphi-Quellcode:
for I := 0 to StringList.Count-1 do
   Move(TImage( FindComponent(StringList[I]) ), Panel1);
end;
Wieso gibt es da einen Fehler, wenn ich das Bild schon zur Entwicklungszeit einsetzte, einen Namen gebe und dann ohne die for-do Anweisung sondern nur Move(...) eingebe, funktioniert alles.


Das ist ganz schön schwierig, ich hoffe jemand versteht mich.

Danke schonmal!!!!!!!!!!!!!!!!!!!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Stringlist als Index über TImages

  Alt 15. Nov 2003, 14:11
Moin F.W.,

Fehler ist gut. Welcher, und an welcher Stelle?
Hast Du Dir schon mal überlegt das ganze mit einer TImageList zu machen?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#3

Re: Stringlist als Index über TImages

  Alt 15. Nov 2003, 14:33
An der Stelle von "if B.Tag = 3 then begin //Richtung überprüfen" bekomme ich eine Zugriffsverletzung.

Eine Stringlist finde ich, ist hier besser geeignet, da ich sie ja nur brauche, um die Namen der Objekte zu "merken".(Daher FindComponent)

Es ist vielleicht besser, wenn ich das Projekt einfach mal hierherstelle.
Es soll am Ende ein Bildschirmschoner sein.

Edit:GANZ WICHTIG: Bei dem AddTimer muss der B.Tagwert auf 3 gestellt werden und der Hint auf '6'!!!
Das ist, weil ich herumprobiert habe und es dann aber vergessen habe, zurückzustellen!
Angehängte Dateien
Dateityp: zip bildschirmschoner.zip (207,4 KB, 11x aufgerufen)
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Stringlist als Index über TImages

  Alt 15. Nov 2003, 14:34
Moin F.W.,

Zitat von F.W.:
An der Stelle von "if B.Tag = 3 then begin //Richtung überprüfen" bekomme ich eine Zugriffsverletzung.
Dann schau mal Deine Programmstruktur genau durch.
Wenn Du hier eine AV bekommst, existiert das übergebene Image Objekt nicht.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#5

Re: Stringlist als Index über TImages

  Alt 15. Nov 2003, 14:43
Aber was kann ich jetzt tun?

Existieren müssen sie, weil ich ihre Namen mit Hilfe von einem OnclickEvent geprüft habe, sie hießen so, wie sie sollten.
Und genau so werden sie auch angesprochen.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Stringlist als Index über TImages

  Alt 15. Nov 2003, 14:56
Moin F.W.,

der Fehler liegt darin, dass Du das falsche FindComponent ansprichst.
Da Du es in einer Methode des Formulares direkt aufrufst, ist es das FindComponent des Formulares. Da nun aber der Parent für die TImages das Panel ist, liefert FindComponent immer nil zurück, denn die Images sind ja nicht im ComponentArray des Formulares enthalten.

Nimm mal einfach Feld.FindComponent.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

Re: Stringlist als Index über TImages

  Alt 15. Nov 2003, 14:58
Hi,

du lässt an der falschen Stelle suchen.

> Move(TImage(Feld.FindComponent(LB[I])),



Add: Da war wohl einer schneller
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#8

Re: Stringlist als Index über TImages

  Alt 15. Nov 2003, 15:15
Danke, es funktioniert! Jetzt nurnoch einige Spielereien rein, dann ist er fertig.

Soll ich das fertige Teil mal posten?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#9

Re: Stringlist als Index über TImages

  Alt 15. Nov 2003, 15:31
Ja.

Was hast du den gegen ein Image-Array?
Da müssen zum Beispiel die Bilder nicht jedes mal neu gesucht werden.
Angehängte Dateien
Dateityp: exe bildschirmschoner.exe (63,2 KB, 9x aufgerufen)
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#10

Re: Stringlist als Index über TImages

  Alt 15. Nov 2003, 16:22
Das ist eine gute Idee, die Variante ist jetzt aber nochnicht dabei, da ich keine großen Unterschiede feststellen konnte.

Ihr wisst ja sicher wie das mit den Bildschirmschonern ist, einfach ins Windows-Verzeichnis ziehen und dann über Desktop-Rechtsklick->Bildschirmschoner einstellen.

Was mich an der Stelle noch interessieren würde ist, welche Bedeutung ein Copyright hat, und wie man das am besten schreibt.

In meinem Programm steht es so drin, wie ich es für ok hielt, aber was ist wenn das nicht so ist?

Also danke nochmal an alle!!

Edit: Neue Version jetzt mit einem ImageArray
Wenn man rechtsklickt sieht man wie viele Bubbles schon über den Bildschirm gerauscht sind!
Edit2: Das obere ist das neue!
Angehängte Dateien
Dateityp: zip bubblebildschirmschoner.zip (217,1 KB, 13x aufgerufen)
Dateityp: zip bubblebildschirmschoner_612.zip (217,2 KB, 7x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 03:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz