Autor |
Beitrag |
Pdd
      
Beiträge: 142
Win XP
Delphi 7
|
Verfasst: Sa 22.01.05 16:29
Hi @all
Ich habe ne frage: Ich will mit der funktion canvas etwas zeichnen und das soll in einer nach zufall bestimmten farbe passieren. Da ich aber nicht zig-tausende if  abfragen machen will, denke ich das man das auch anders machen kann.
Ich habe schon gesucht aber nichts gefunden. Gibt es da vieleicht ein befehl wie:
canvas.pen.color:=clrandom???
Ich wäre dankbar für jeden-auch noch so verrückten vorschlag.
mfg Pdd :roll: Moderiert von Christian S.: Topic aus Off Topic verschoben am Sa 22.01.2005 um 16:22
_________________ Wenn alles steht und nix mehr looft, denn isses was von Meikrosooft
|
|
Elite
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 22.01.05 16:31
Delphi-Quelltext 1:
| color := RGB(random(256), random(256), random(256)); |
Edit: Fehler entfernt.
Zuletzt bearbeitet von Elite am Sa 22.01.05 16:36, insgesamt 1-mal bearbeitet
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Sa 22.01.05 16:34
Einfacher und schneller:
Delphi-Quelltext 1:
| Color := Random($01000000); |
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
cybersoul
      
Beiträge: 43
|
Verfasst: Sa 22.01.05 16:34
Oder besser...
Quelltext 1:
| color := RGB(random(256), random(256), random(256)); |
Sonst kommt niemals Weiß (Rot=255; Grün=255; Blau=255) zustande.
|
|
cybersoul
      
Beiträge: 43
|
Verfasst: Sa 22.01.05 16:35
Die Möglichkeit von BenBE ist natürlich besser,
ich war nur zu langsam.
|
|
Pdd 
      
Beiträge: 142
Win XP
Delphi 7
|
Verfasst: Sa 22.01.05 16:38
_________________ Wenn alles steht und nix mehr looft, denn isses was von Meikrosooft
|
|
Julian W.
      
Beiträge: 47
Win 2000
D7 Enterprise
|
Verfasst: Di 05.04.05 22:11
Hi Leute,
habe ein ganz ähnliches Problem. Gibt es eine Funktion, mit der man per random oder so zufällig eine Label ueberschrift auswählen kann?
Mit anderen Worten,
ich habe
- Hallo
- Wie gehts
- Tschüss
zur auswahl(als mögliche label captions) und möchte jetzt eine davon per zufall auswählen. Ist das soweit noch nachvollziehbar was ich meine
Natürlich könnte mann mit random eine zufällige Zahl erzeugen und dann mit if die Überschriften zuordnen. Ich habe aber leider 20-30 zur auswahl und das würde mir dann doch zu viel.
Ich hoffe ihr versteht mein Problem und könnt mir helfen.
Viele Grüße Julian
P.s.: Bin nicht wütend aber ich finde den Smiley einfach witzig!! 
|
|
Kroni
      
Beiträge: 720
Win 98, Win ME, Win2k, Win XP
D3 Pro
|
Verfasst: Di 05.04.05 23:26
Case of bla....
oder Definier ein Array of String.....
dort kannst du dann deine Captions einspeichern und die dann per ZUfall aufrufen!
|
|
GTA-Place
      

Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: Mi 06.04.05 06:51
Schreib alle Wörter in eine Stringlist und zeigs dann so an:
Delphi-Quelltext 1:
| Label1.Caption := MyStringList.String[Random(20)+1]; |
Wenn als Zufall 15 rauskommt und das 16. Wort = "Hallo" ist, dann ist die Caption des Labels auch "Hallo".
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mi 06.04.05 09:08
Ohne +1, da StringListen mit Index 0 anfangen.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Lossy eX
      
Beiträge: 1048
Erhaltene Danke: 4
|
Verfasst: Mi 06.04.05 10:09
Das Beste wäre dann auch noch, wenn du die Größe aus der Stringliste holst. Dann musst du nicht mehr wissen wie viele Texte drin stecken.
Delphi-Quelltext 1:
| Label1.Caption := MyStringList.String[Random(MyStringList.Count)]; |
_________________ Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
|
|
Julian W.
      
Beiträge: 47
Win 2000
D7 Enterprise
|
Verfasst: Mi 06.04.05 16:09
Danke schonmal so weit.
Aber mal ne ganz dumme Frage  : Wie erstellt mann denn so eine StringListe?
Ich habe mal in der Delphi hilfe geguckt, das hat mich dann nur noch mehr verwirrt.
Und im Internet oder hier im Forum hab ich auch nix vernümftiges gefunden.
Kann mann die nicht mit nem memo feld erstellen oder so?? Gruß Julian
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Mi 06.04.05 16:16
Julian W. hat folgendes geschrieben: | Wie erstellt mann denn so eine StringListe? |
In dem Du das Forum fragst: STRINGLIST ERSTELLEN. Gleich im 2. Topic solltest Du die Antwort finden.
Gruß
Tino
|
|
Karlson
      
Beiträge: 2088
|
Verfasst: Mi 06.04.05 16:23
|
|
Lossy eX
      
Beiträge: 1048
Erhaltene Danke: 4
|
Verfasst: Mi 06.04.05 16:53
Damit hättest du erfolgreich das letzte Item ausgeschlossen.
Der übergene Wert stellt nicht den größtmöglichen Wert sondern die Reichweite dar. Da Random bei 0 mit zählen anfängt stimmt deines leider nicht. Siehe auch Beitrag cybersoul vom 22.01. 
_________________ Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
|
|
Julian W.
      
Beiträge: 47
Win 2000
D7 Enterprise
|
Verfasst: Mi 06.04.05 16:58
Wäre es dann nicht am geschicktesten, wenn mann die Strings in eine Txt oder ini datei schreibt und sie dann aufruft?
Moderiert von AXMD: -Taste war kaputt
|
|
zemy
      
Beiträge: 207
Win XP Prof.
D7
|
Verfasst: Mi 06.04.05 17:03
Klingt nach kanonen und Spatzen... Was spricht dagegen, die paar Texte direkt im Code zu verankern, wenn du sie nicht wirklich extern brauchst?
_________________ LifeIsToShortToThinkAboutTheShortness
|
|
Karlson
      
Beiträge: 2088
|
Verfasst: Mi 06.04.05 17:18
|
|
UGrohne
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: Mi 06.04.05 17:24
Karlson hat folgendes geschrieben: | hmmm. da muss ich noch mal nachschauen  |
Man, jetzt wollte ich gerade auf Deinen ursprünglichen Beitrag antworten und Du änderst ihn einfach wieder
Aber hier der Ausschnitt aus der Hilfe:
Zitat: | Delphi-Syntax:
function Random [ ( Range: Integer) ];
Beschreibung
In Delphi gibt Random eine Zufallszahl im Bereich 0 <= X < Range zurück. Wird der Parameter Range nicht angegeben, liefert Random einen Real-Wert im Bereich |
< Range bedeutet also, dass in Deinem Beispiel die Funktion etwas kleiner als 4, also maximal 3 zurückliefern würde, womit das letzte Item niemals angezeigt werden würde
//EDIT: Musst Du es denn schon wieder editieren? *grrr*
|
|
Julian W.
      
Beiträge: 47
Win 2000
D7 Enterprise
|
Verfasst: Mi 06.04.05 19:47
zemy hat folgendes geschrieben: | Klingt nach kanonen und Spatzen... Was spricht dagegen, die paar Texte direkt im Code zu verankern, wenn du sie nicht wirklich extern brauchst? |
Wie soll dass den gehen??
Ich habe hir mal das, was ich bis jetzt geschrieben habe ihr könnt es euch ja mal angucken. Irgendwie geht das nicht und ich weiß nicht wo dran`s liegt.
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:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Label1: TLabel; Button1: TButton; procedure Button1Click(Sender: TObject); private public end;
var Form1: TForm1; f: string; LList: TStringlist; implementation
{$R *.dfm}
procedure test;
begin f := 'C:\Programme\Borland\Delphi7\Projects\Neu Textdatei.ini' ; LList := Tstringlist.Create; LList.loadfromfile(f); LList.Free; end;
procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption := LList.String[Random(LList.Count)]; end;
end. |
Gruß Juli
Moderiert von Christian S.: Delphi-Tags hinzugefügt.
Einloggen, um Attachments anzusehen!
|
|