Autor Beitrag
Pdd
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 142

Win XP
Delphi 7
BeitragVerfasst: 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 :lol: 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??? :roll:
Ich wäre dankbar für jeden-auch noch so verrückten vorschlag.


mfg Pdd :roll:


Moderiert von user profile iconChristian 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



BeitragVerfasst: Sa 22.01.05 16:31 
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 22.01.05 16:34 
Einfacher und schneller:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 43



BeitragVerfasst: Sa 22.01.05 16:34 
Oder besser...
ausblenden Quelltext
1:
  color := RGB(random(256), random(256), random(256));					

Sonst kommt niemals Weiß (Rot=255; Grün=255; Blau=255) zustande.
cybersoul
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 43



BeitragVerfasst: Sa 22.01.05 16:35 
Die Möglichkeit von BenBE ist natürlich besser,
ich war nur zu langsam.
Pdd Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 142

Win XP
Delphi 7
BeitragVerfasst: Sa 22.01.05 16:38 
Danke :) :) :)
Funktioniert

_________________
Wenn alles steht und nix mehr looft, denn isses was von Meikrosooft
Julian W.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47

Win 2000
D7 Enterprise
BeitragVerfasst: 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!! :arrow: :motz:
Kroni
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 720

Win 98, Win ME, Win2k, Win XP
D3 Pro
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Mi 06.04.05 06:51 
Schreib alle Wörter in eine Stringlist und zeigs dann so an:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: 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.

ausblenden 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.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47

Win 2000
D7 Enterprise
BeitragVerfasst: Mi 06.04.05 16:09 
Danke schonmal so weit.
Aber mal ne ganz dumme Frage :oops: : Wie erstellt mann denn so eine StringListe?
Ich habe mal in der Delphi hilfe geguckt, das hat mich dann nur noch mehr verwirrt. :? :eyecrazy:
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mi 06.04.05 16:16 
user profile iconJulian W. hat folgendes geschrieben:
Wie erstellt mann denn so eine StringListe?

In dem Du das Forum fragst: Suche in: Delphi-Forum, Delphi-Library STRINGLIST ERSTELLEN. Gleich im 2. Topic solltest Du die Antwort finden.

Gruß
Tino
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Mi 06.04.05 16:23 
user profile iconLossy eX hat folgendes geschrieben:
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.

ausblenden Delphi-Quelltext
1:
Label1.Caption := MyStringList.String[Random(MyStringList.Count)];					


Na, wenn dann aber richtig ;)

ausblenden Delphi-Quelltext
1:
label1.caption := MyStringList[Random(MyStringList.Count - 1)];					
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: 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 user profile iconcybersoul 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.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47

Win 2000
D7 Enterprise
BeitragVerfasst: 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 user profile iconAXMD: :?:-Taste war kaputt
zemy
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 207

Win XP Prof.
D7
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Mi 06.04.05 17:18 
user profile iconLossy eX hat folgendes geschrieben:
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 user profile iconcybersoul vom 22.01. ;-)



hmmm. da muss ich noch mal nachschauen :lol:


edit: Okay, stimmt. Dein Tippfehler mit dem MyStringList.String[...] bleibt aber ;)
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mi 06.04.05 17:24 
user profile iconKarlson hat folgendes geschrieben:
hmmm. da muss ich noch mal nachschauen :lol:

Man, jetzt wollte ich gerade auf Deinen ursprünglichen Beitrag antworten und Du änderst ihn einfach wieder :twisted:

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.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47

Win 2000
D7 Enterprise
BeitragVerfasst: Mi 06.04.05 19:47 
user profile iconzemy 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. :(
ausblenden volle Höhe Delphi-Quelltext
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
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  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 user profile iconChristian S.: Delphi-Tags hinzugefügt.
Einloggen, um Attachments anzusehen!