Autor |
Beitrag |
thedarkside2
Hält's aus hier
Beiträge: 7
|
Verfasst: Fr 06.03.09 17:25
Hallo,
ich bin neu hier im Board, und ich bin auch absolut neu in der Programmiersprache delphi.
Ich hab zwar jetzt das Buch Delphi für Kids durchgelesen und ein Paar Taschenrechner Projekte oder Zahlenraten und sowas
ausprobiert und selber geschrieben.
aber jetzt will ich mal mein eigenes Projekt starten.
Und zwar der Gedanke soll sein.
Ich habe 3 Felder für 3 Karten - hinter einer Karte befindet sich der Joker oder der Schatz
Leider scheitere ich bei dem Problem die Karten mischen zu lassen.
- ich habe es mit der procedure tauschen versucht also einfach nur text labe1 und label2 tauschen.
aber jetza wollte ich es mit zwei bildern ausprobieren - ich bringe das programm zwar zum laufen aber Die beiden Bilder
vertauschen sich nicht  bitte helft mir.
Und sorry für meine doofen Fragen.
nochwas ich habe einen button gemacht der bei jedem klick eine neue position annimmt den hab ich umgeschrieben wenn man auf
button klickt dann ändert er random position. aber wenn ich das auf meine karten umschreibe dann flattern die irgendwo im formular rum.
ich wollte aber das ich 3 bilderrahmen habe und sichdaran bei Klick(Mischen) die bilder ändern.
Bitte helft mir.
Mein Programmcode für die beiden Bilder die getauscht werden sollen.:
Zuletzt bearbeitet von thedarkside2 am Fr 06.03.09 17:29, insgesamt 1-mal bearbeitet
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 06.03.09 17:28
Moin und  im Forum!
Bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien:
1.2 Beiträge: | Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...] |
Einfach oben bei Deinem ersten Beitrag auf  oder  klicken und den Titel ändern. Danke Dir!
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
thedarkside2 
Hält's aus hier
Beiträge: 7
|
Verfasst: Fr 06.03.09 17:31
Hallo danke hab ich jetza gemacht  hab mir auch deinen link angeschaut.
das mit den kategorien versteh ich aber noch ned so ganz wie sind die eingeteilt ? wenn ich allgemeine fragen habe?
bzw. probleme bei meinem programm. in welche sparte schreib ich das dann ?
Kannst du mir auch eine Antwort auf meine Frage geben?
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 06.03.09 17:35
Moin!
thedarkside2 hat folgendes geschrieben : | das mit den kategorien versteh ich aber noch ned so ganz wie sind die eingeteilt ? wenn ich allgemeine fragen habe? |
Generell gilt hier: Pro Thread eine Frage.  Dann suchst du dir halt die deiner Meinung nach passendste Sparte aus und stellst die Frage dort. Wenn die Sparte nicht exakt passt, ist das nicht soo schlimm; notfalls verschiebt ein Teammitglied das Thema dann.
thedarkside2 hat folgendes geschrieben : | bzw. probleme bei meinem programm. in welche sparte schreib ich das dann ? |
Zunächst mal ist das hier ganz OK.
thedarkside2 hat folgendes geschrieben : | Kannst du mir auch eine Antwort auf meine Frage geben? |
Du hast noch nicht deinen Quelltext gepostet, allerdings schon mal die Ankündigung als letzten Satz oben. Hol´ das doch mal grad nach.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
thedarkside2 
Hält's aus hier
Beiträge: 7
|
Verfasst: Fr 06.03.09 17:39
das wollte ich eig. auch  aber ich glaub ich vergessen die finale version zu speichern ich bin gerade am tippen.
sobald er fertig ist bekommst du ihn allerdings kannst du mir vielleicht auch ohne quelltext auf die sprünge helfen.
das prinzip ist ja eig klar oder ?
Einloggen, um Attachments anzusehen!
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 06.03.09 17:44
Moin!
thedarkside2 hat folgendes geschrieben : | allerdings kannst du mir vielleicht auch ohne quelltext auf die sprünge helfen.
das prinzip ist ja eig klar oder ? |
Ich denke schon.
Was du brauchst, nennt man einen Dreiecks-Tausch.  Dazu brauchst du eine Hilfsvariable des Datentyps, der getauscht werden soll. Beispiel mit Integer: Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| var a,b, temp: Integer; begin a := 3; b := 5; ShowMessageFmt('a=%d b=%d',[a,b]); temp := a; a := b; b := temp; ShowMessageFmt('a=%d b=%d',[a,b]); | Soviel zum Prinzip. In deinem Fall - ich schätze mal, du hast TImage-Komponenten genommen - wirst du die Eigenschaft .Left der Images tauschen müssen.
Zeig mal deinen Code dazu, dann sehen wir weiter.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
thedarkside2 
Hält's aus hier
Beiträge: 7
|
Verfasst: Sa 07.03.09 15:21
also ich hab jetza versucht den code nachzustellen. alllerrdings habe ich fehler im code die original seite find ich nicht merh
wo ich diese form herhabe. Naja egal hier einmal mein derzeitiger code.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47:
| unit tauschen;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls;
type TForm1 = class(TForm) Image1: TImage; Image2: TImage; Button1: TButton; procedure Button1Click(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm} procedure tauschen(var s1, s2 : TImage); var temp : Timage; begin temp := s1; s1 := s2; s2 := temp; end;
procedure TForm1.Button1Click(Sender: TObject); var s1, s2 : TImage; begin s1 := Image1; s2 := Image2;
tauschen(s1,s2);
Image1 := s1; Image2 := s2; end; end. |
was heißt diese Zeile ? hab ich noch gesehen sowas.
was bedeutet der ausdruck temp?
Moderiert von Narses: Delphi-Tags hinzugefügt
|
|
Teekeks
      
Beiträge: 211
Erhaltene Danke: 23
|
Verfasst: Sa 07.03.09 16:26
Der Ausdruck "temp" bezeichnet in deinem Fall eine von dir definierte Variable vom Typen TImage. Sie dient dir zum Tauschen der Bilder. (nur so nebenbei: du könntest die Variable auch z.B. "abcd" nennen) Ich würde dir allerdings empfelen nicht das Bild auszutauschen sondern die Parameter Immage1.left. Das sieht dann folgendermaßen aus:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| procedure tausche(s1,s2:TImage); var temp:integer; begin temp:=s1.left; s1.left:=s2.left; s2.left:=temp; end; |
ps.: das:
Delphi-Quelltext 1: 2:
| Image1 := s1; Image2 := s2; | brauchst du nicht machen...
|
|
thedarkside2 
Hält's aus hier
Beiträge: 7
|
Verfasst: Sa 07.03.09 17:30
super danke  funktioniert prima. jetzt aber gleich zum nächsten thema wie mach ich das wenn ich 3 bilder habe.
dann funktioniert doch das tauschen nicht mehr oder? oder für 3 proceduren erstellen und diese dann mischen?
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36:
| procedure tausche(s1,s2:TImage); var temp:integer; begin temp:=s1.left; s1.left:=s2.left; s2.left:=temp; end;
procedure tauschen(s2,s3:TImage); var temp:integer; begin temp:=s2.left; s2.left:=s3.left; s3.left:=temp; end;
procedure TForm1.Button1Click(Sender: TObject); var s1, s2 : TImage; begin s1 := Image1; s2 := Image2;
tausche(s1,s2);
end;
var s2, s3 : TImage; begin s2 := Image2; s3 := Image3;
tauschen(s2,s3);
end; end. |
Moderiert von Narses: Delphi-Tags hinzugefügt
Zuletzt bearbeitet von thedarkside2 am Sa 07.03.09 17:35, insgesamt 1-mal bearbeitet
|
|
jaenicke
      
Beiträge: 19316
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 07.03.09 17:34
Du solltest zuerst mischen und dann die Bilder danach an die entsprechenden Positionen schieben. 
|
|
thedarkside2 
Hält's aus hier
Beiträge: 7
|
Verfasst: Sa 07.03.09 17:37
jaenicke hat folgendes geschrieben : | Du solltest zuerst mischen und dann die Bilder danach an die entsprechenden Positionen schieben.  |
aha und das heißt auf deutsch sorry das ich euch jetza so zulabere. aber ich hab halt wirklich noch nicht ahnung von delphi.
sorry.
|
|
jaenicke
      
Beiträge: 19316
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 07.03.09 17:45
Du musst ja irgendwo gespeichert haben welches Bild wo ist. Zum Beispiel in einem Array. Denn sonst wüsstest du ja nicht welches Bild eigentlich gerade wo ist.
Dort tauschst du dann die Werte aus und wenn du damit fertig bist, dann erst setzt du die Positionen der echten Bilder.
Zum Beispiel könntest du die Werte für Left in einem array of Integer speichern. Dann mischst du diese und setzt die danach. Erstes Bild bekommt dann in Left den Wert des ersten Eintrags des Array, das zweite den zweiten, etc.
Weißt du wie ein Array funktioniert?
Einen sehr guten Crashkurs findest du hier:
crashkurs.christian-stelzmann.de
und die neue Version speziell ab Turbo Delphi:
www.christian-stelzm...shkurs_reloaded.html
|
|
thedarkside2 
Hält's aus hier
Beiträge: 7
|
Verfasst: Sa 07.03.09 18:53
also die bedeutung von Arrays[ hab ich schon gelesen und auch schon benutzt.
Das ist doch sinnvoll wenn man zB 100 Variablen hat. dann braucht man icht alle einzeln schreiben sonderm
mit dem array befehl alle vereinen.
Das problem glaub ich ist weil ich nicht weiß wie Timage komponenete benutze.
Ich such mir das Symbol raus und ziehe das bild auf und unter objektionsinspector lade ich mir das bild rein.
aber wo lege ich die größe im quelltext fest. ich verändere derzeit die größe mit der maus. also in dem ich das
Bild einfach irgendwohin ziehe.
|
|
jaenicke
      
Beiträge: 19316
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 07.03.09 19:05
Wie du Left setzt hast du ja schon gesehen. Und wenn du einmal schaust welche Möglichkeiten es sonst noch gibt, dann wirst du Height, Width und Top finden.
Das findest du sowohl in der Hilfe als auch in der Syntaxergänzung, wenn du den Punkt hinter Image1 z.B. schreibst. (Oder du drückst Strg + Leertaste beim Schreiben eines Befehls.)
Und ein Array ist auch durchaus bei wenigen Werten sinnvoll.
|
|