Autor Beitrag
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: So 25.11.12 20:36 
Moin

wir sollen für den Kunst-Unterricht ein Logo in einem eigenen Bild sinngemäß darstellen.
Ich habe als Logo das Windows-Logo gewählt und möchte es als eine Art Fenster darstellen, dass eine bunte und schöne Landschaft zeigt. Der Raum, in dem der Betrachter steht, ist vollständig schwarz und über und über mit weißem oder grauem Text überzogen.
Das soll zeigen, dass die grafischen Windows-Versionen den farbigen Ausblick aus dem öden und langweiligen MS-DOS bieten.

Allerdings benötige ich dafür auch etwas, das ich in den Hintergrund schreiben kann und da ich Perfektionist bin, möchte ich natürlich ein funktionierendes Programm, beispielsweise in QBasic geschrieben, an die Wand schreiben, jedoch benötige ich dafür einen Quellcode, der groß genug wäre.


Hat jemand irgendwo ein altes Programm rum schwirren, von dem ich den Quellcode in meinem Bild darstellen darf?


Gruß
wunsiedler
ontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 506
Erhaltene Danke: 4

Win7

BeitragVerfasst: So 25.11.12 20:41 
Bitteschön. Ist zwar kein QBasic aber besser als nix :-)

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:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466:
467:
468:
469:
470:
471:
472:
473:
474:
475:
476:
477:
478:
479:
480:
481:
482:
483:
484:
485:
486:
487:
488:
489:
490:
491:
492:
493:
494:
495:
496:
497:
498:
499:
500:
501:
502:
503:
504:
505:
506:
507:
508:
509:
510:
511:
512:
513:
514:
515:
516:
517:
518:
519:
520:
521:
522:
523:
524:
525:
526:
527:
528:
529:
530:
531:
532:
533:
534:
535:
536:
537:
538:
539:
540:
541:
542:
543:
544:
545:
546:
547:
548:
549:
550:
551:
552:
553:
554:
555:
556:
557:
558:
559:
560:
561:
562:
563:
564:
565:
566:
567:
568:
569:
570:
571:
572:
573:
574:
575:
576:
577:
578:
579:
580:
581:
582:
583:
584:
585:
586:
587:
588:
589:
590:
591:
592:
593:
594:
595:
596:
597:
598:
599:
600:
601:
602:
603:
604:
605:
606:
607:
608:
609:
610:
611:
612:
613:
614:
615:
616:
617:
618:
619:
620:
621:
622:
623:
624:
625:
626:
627:
628:
629:
630:
631:
632:
633:
634:
635:
636:
637:
638:
639:
640:
641:
642:
643:
644:
645:
646:
647:
648:
649:
650:
651:
652:
653:
654:
655:
656:
657:
658:
659:
660:
661:
662:
663:
664:
665:
666:
667:
668:
669:
670:
671:
672:
673:
674:
675:
676:
677:
678:
679:
680:
681:
682:
683:
684:
685:
686:
687:
688:
689:
690:
691:
692:
693:
694:
695:
696:
697:
698:
699:
700:
701:
702:
703:
704:
705:
706:
707:
708:
709:
710:
711:
712:
713:
714:
715:
716:
717:
718:
719:
720:
721:
722:
723:
724:
725:
726:
727:
728:
729:
730:
731:
732:
733:
734:
735:
736:
737:
738:
739:
740:
741:
742:
743:
744:
745:
746:
747:
748:
749:
750:
751:
752:
753:
754:
755:
756:
757:
758:
759:
760:
761:
762:
763:
764:
765:
766:
767:
768:
769:
770:
771:
772:
773:
774:
775:
776:
777:
778:
779:
780:
781:
782:
783:
784:
785:
786:
787:
788:
789:
790:
791:
792:
793:
794:
795:
796:
797:
798:
799:
800:
801:
802:
803:
804:
805:
806:
807:
808:
809:
810:
811:
812:
813:
814:
815:
816:
817:
818:
819:
820:
821:
822:
823:
824:
825:
826:
827:
828:
829:
830:
831:
832:
833:
834:
835:
836:
837:
838:
839:
840:
841:
842:
843:
844:
845:
846:
847:
848:
849:
850:
851:
852:
853:
854:
855:
856:
857:
858:
859:
860:
861:
862:
863:
864:
865:
866:
867:
868:
869:
870:
871:
872:
873:
874:
875:
876:
877:
878:
879:
880:
881:
882:
883:
884:
885:
886:
887:
888:
889:
890:
891:
892:
893:
894:
895:
896:
897:
898:
899:
900:
901:
902:
903:
904:
905:
906:
907:
908:
909:
910:
911:
912:
913:
914:
915:
916:
917:
918:
919:
920:
921:
922:
923:
924:
925:
926:
927:
928:
929:
930:
931:
932:
933:
934:
935:
936:
937:
938:
939:
940:
941:
942:
943:
944:
945:
946:
947:
948:
949:
950:
951:
952:
953:
954:
955:
956:
957:
958:
959:
960:
961:
962:
963:
964:
965:
966:
967:
968:
969:
970:
971:
972:
973:
974:
975:
976:
977:
978:
979:
980:
981:
982:
983:
984:
985:
986:
987:
988:
989:
990:
991:
992:
993:
994:
995:
996:
997:
998:
999:
1000:
1001:
1002:
1003:
1004:
1005:
1006:
1007:
1008:
1009:
1010:
1011:
1012:
1013:
1014:
1015:
1016:
1017:
1018:
1019:
1020:
1021:
1022:
1023:
1024:
1025:
1026:
1027:
1028:
1029:
1030:
1031:
1032:
1033:
1034:
1035:
1036:
1037:
1038:
1039:
1040:
1041:
1042:
1043:
1044:
1045:
1046:
1047:
1048:
1049:
1050:
1051:
1052:
1053:
1054:
1055:
1056:
1057:
1058:
1059:
1060:
1061:
1062:
1063:
1064:
1065:
1066:
1067:
1068:
1069:
1070:
1071:
1072:
1073:
1074:
1075:
1076:
1077:
1078:
1079:
1080:
1081:
1082:
1083:
1084:
1085:
1086:
1087:
1088:
1089:
1090:
1091:
1092:
1093:
1094:
1095:
1096:
1097:
1098:
1099:
1100:
1101:
1102:
1103:
1104:
1105:
1106:
1107:
1108:
1109:
1110:
1111:
1112:
1113:
1114:
1115:
1116:
1117:
1118:
1119:
1120:
1121:
1122:
1123:
1124:
1125:
1126:
1127:
1128:
1129:
1130:
1131:
1132:
1133:
1134:
1135:
1136:
1137:
1138:
1139:
1140:
1141:
1142:
1143:
1144:
1145:
1146:
1147:
1148:
1149:
1150:
1151:
1152:
1153:
1154:
1155:
1156:
1157:
1158:
1159:
1160:
1161:
1162:
1163:
1164:
1165:
1166:
1167:
1168:
1169:
1170:
1171:
1172:
1173:
1174:
1175:
1176:
1177:
1178:
1179:
1180:
1181:
1182:
1183:
1184:
1185:
1186:
1187:
1188:
1189:
1190:
1191:
1192:
1193:
1194:
1195:
1196:
1197:
1198:
1199:
1200:
1201:
1202:
1203:
1204:
1205:
1206:
1207:
1208:
1209:
1210:
1211:
1212:
1213:
1214:
1215:
1216:
1217:
1218:
1219:
1220:
1221:
1222:
1223:
1224:
1225:
1226:
1227:
1228:
1229:
1230:
1231:
1232:
1233:
1234:
1235:
1236:
1237:
1238:
1239:
1240:
1241:
1242:
1243:
1244:
1245:
1246:
1247:
1248:
1249:
1250:
1251:
1252:
1253:
1254:
1255:
1256:
1257:
1258:
1259:
1260:
1261:
1262:
1263:
1264:
1265:
1266:
1267:
1268:
1269:
1270:
1271:
1272:
1273:
1274:
1275:
1276:
1277:
1278:
1279:
1280:
1281:
1282:
1283:
1284:
1285:
1286:
1287:
1288:
1289:
1290:
1291:
1292:
1293:
1294:
1295:
1296:
1297:
1298:
1299:
1300:
1301:
1302:
1303:
1304:
1305:
1306:
1307:
1308:
1309:
1310:
1311:
1312:
1313:
1314:
1315:
1316:
1317:
1318:
1319:
1320:
1321:
1322:
1323:
1324:
1325:
1326:
1327:
1328:
1329:
1330:
1331:
1332:
1333:
1334:
1335:
1336:
1337:
1338:
1339:
1340:
1341:
1342:
1343:
1344:
1345:
1346:
1347:
1348:
1349:
1350:
1351:
1352:
1353:
1354:
1355:
1356:
1357:
1358:
1359:
1360:
1361:
1362:
1363:
1364:
1365:
1366:
1367:
1368:
1369:
1370:
1371:
1372:
1373:
1374:
1375:
1376:
1377:
1378:
1379:
1380:
1381:
1382:
1383:
1384:
1385:
1386:
1387:
1388:
1389:
1390:
1391:
1392:
1393:
unit Uni;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Grids, Menus, Gauges, ComCtrls,
  Buttons, Mask;
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    Edit2: TEdit;
    Label5: TLabel;
    Label6: TLabel;
    Edit3: TEdit;
    Edit4: TEdit;
    Label7: TLabel;
    Edit5: TEdit;
    Label8: TLabel;
    Edit6: TEdit;
    Label9: TLabel;
    Edit8: TEdit;
    Label10: TLabel;
    Label11: TLabel;
    Edit9: TEdit;
    Button5: TButton;
    Button6: TButton;
    ComboBox1: TComboBox;
    Label13: TLabel;
    Edit10: TEdit;
    Edit11: TEdit;
    Label14: TLabel;
    Label15: TLabel;
    Edit12: TEdit;
    Label16: TLabel;
    Edit13: TEdit;
    Label17: TLabel;
    Edit14: TEdit;
    Label18: TLabel;
    Edit15: TEdit;
    Label19: TLabel;
    Edit16: TEdit;
    Button11: TButton;
    Button12: TButton;
    Button13: TButton;
    Label20: TLabel;
    ComboBox2: TComboBox;
    Label21: TLabel;
    ComboBox3: TComboBox;
    Label22: TLabel;
    Label23: TLabel;
    Edit17: TEdit;
    Label24: TLabel;
    Label25: TLabel;
    Edit19: TEdit;
    Button14: TButton;
    Button15: TButton;
    ComboBox4: TComboBox;
    Label26: TLabel;
    Button16: TButton;
    Label27: TLabel;
    ComboBox5: TComboBox;
    Button17: TButton;
    Label28: TLabel;
    Edit20: TEdit;
    sg1: TStringGrid;
    Button19: TButton;
    sg2: TStringGrid;
    Button21: TButton;
    Button20: TButton;
    Button22: TButton;
    Button24: TButton;
    Button25: TButton;
    sg3: TStringGrid;
    Button1: TButton;
    Bevel1: TBevel;
    Bevel2: TBevel;
    StatusBar1: TStatusBar;
    Label32: TLabel;
    MainMenu1: TMainMenu;
    Datei1: TMenuItem;
    Info1: TMenuItem;
    Beenden1: TMenuItem;
    Listen1: TMenuItem;
    Kundenliste1: TMenuItem;
    Artikelliste1: TMenuItem;
    Verkaufsliste1: TMenuItem;
    AlleVerkauftenaRtikel1: TMenuItem;
    AllebezahltenArtikel1: TMenuItem;
    AlleverkauftenArtikel2: TMenuItem;
    Aktionen1: TMenuItem;
    AlleartikelmitMenge0lschen1: TMenuItem;
    AlleverschicktenArtikellschen1: TMenuItem;
    Archiv1: TMenuItem;
    KompletteListe1: TMenuItem;
    Label1: TLabel;
    Label2: TLabel;
    Label12: TLabel;
    Timer1: TTimer;
    Label29: TLabel;
    Label31: TLabel;
    Label30: TLabel;
    Label33: TLabel;
    Label34: TLabel;
    Label35: TLabel;
    Label36: TLabel;
    Label37: TLabel;
    Label38: TLabel;
    dtp1: TDateTimePicker;
    dtp2: TDateTimePicker;
    procedure FormCreate(Sender: TObject);
    procedure Image3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button19Click(Sender: TObject);
    procedure ComboBox1Select(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure Button21Click(Sender: TObject);
    procedure sg2SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure sg1SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure ComboBox2Select(Sender: TObject);
    procedure ComboBox3Select(Sender: TObject);
    procedure Edit17Exit(Sender: TObject);
    procedure Button15Click(Sender: TObject);
    procedure ComboBox4Select(Sender: TObject);
    procedure Button16Click(Sender: TObject);
    procedure ComboBox5Select(Sender: TObject);
    procedure Button17Click(Sender: TObject);
    procedure Button22Click(Sender: TObject);
    procedure Button20Click(Sender: TObject);
    procedure Button24Click(Sender: TObject);
    procedure Button25Click(Sender: TObject);
    procedure sg3SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure Button1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure Beenden1Click(Sender: TObject);
    procedure AlleartikelmitMenge0lschen1Click(Sender: TObject);
    procedure AlleverschicktenArtikellschen1Click(Sender: TObject);
    procedure KompletteListe1Click(Sender: TObject);
    procedure Info1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2, Unit3;

{$R *.dfm}
// ===== Artikel definieren ==========================

const demo = 0;

type TArtikel = record
   artnr        :       string[15];
   artbez       :       string[50];
   startpreis   :       real;
   sofortkauf   :       real;
   menge        :       byte;
   versand      :       real;
   beginn       :       string[20];
   dauer        :       byte;
   egebuehr     :       real;
   status       :       byte;
 end;
var artikel: array[0..999of TArtikel;
var artikel_datei : File of TArtikel;
var artikel_anzahl,artikel_zeiger,artikel_neu : integer;
const artikelfile = 'artikel.bum';

// ===== Käufer definieren =============================

type TKunde = record
    vorname     :       string[50];
    nachname    :       string[50];
    strasse     :       string[50];
    plz         :       string[10];
    ort         :       string[50];
    email       :       string[50];
    ebayname    :       string[50];
end;
var kunde: array[0..999of TKunde;
var kunde_datei: File of Tkunde;
var kunde_anzahl, kunde_zeiger,kunde_neu: integer;
const kundefile ='kunde.bum';

// ===== Verkauf definieren ==============================

type TVerkauf = record
    artikel     :       string[50];
    kaeufer     :       string[50];
    endpreis    :       real;
    datum       :       string[20];
    vkgebuehr   :       real;
    menge       :       integer;
    status      :       integer;
end;
var verkauf : array[0..999of TVerkauf;
var verkauf_datei : File of TVerkauf;
var verkauf_anzahl,verkauf_zeiger : integer;
const verkauffile  = 'verkauf.bum';

// ===== Archiv definieren ===============================
type TArchiv = record

   artnr        :       string[15];
   artbez       :       string[50];
   startpreis   :       real;
   sofortkauf   :       real;
   versand      :       real;
   beginn       :       string[20];
   dauer        :       byte;
   egebuehr     :       real;

   vorname     :       string[50];
   nachname    :       string[50];
   strasse     :       string[50];
   plz         :       string[10];
   ort         :       string[50];
   email       :       string[50];
   ebayname    :       string[50];

   endpreis    :       real;
   datum       :       string[20];
   vkgebuehr   :       real;
   menge       :       integer;

end;
var archiv : array[0..1of TArchiv;
var archiv_datei : File of TArchiv;
const archivfile = 'archiv.bum';
// =======================================================


// ===== F U N K T I O N E N ========================

// ===== Verkaufte anzeigen ===========================
function verkauf_anzeigen(var a:integer):integer;
var x,y,z:integer;
var sta : array[0..9of string;
begin
z:=1;
sta[1]:='Verkauft';
sta[2]:='Bezahlt';
sta[3]:='Verschickt';
sta[4]:='Nicht verkauft';
for x := 1 to verkauf_anzahl do
 begin
  for y := 0 to 7 do
   begin
     Form1.sg3.Cells[y,x]:='';
   end;
  end;
if(verkauf_anzahl >0)then
begin
for x := 1 to verkauf_anzahl do
 begin
 if((a = verkauf[x].status) or (a = 0))then
 begin
  with verkauf[x] do
   begin
    form1.sg3.Cells[0,z]:=artikel;
    form1.sg3.Cells[2,z]:=IntToStr(menge);
    form1.sg3.Cells[3,z]:=kaeufer;
    form1.sg3.Cells[4,z]:=datum;
    form1.sg3.Cells[5,z]:=FormatFloat('0.00',endpreis)+' €';
    form1.sg3.Cells[7,z]:=sta[status];
   end;
  for y :=1 to artikel_anzahl do
     begin
      if(artikel[y].artnr = verkauf[z].artikel)then break;
     end;
    form1.sg3.Cells[1,z]:=artikel[y].artbez;
    form1.sg3.Cells[6,z]:=FormatFloat('0.00',artikel[y].versand)+' €';
    z:=z+1;
    endend;
    end;
Form1.sg3.RowCount:=z;
Form1.Label32.Caption:='Verkaufsliste';
form1.sg2.Visible := false;
form1.sg1.Visible := false;
form1.sg3.Visible := true;
verkauf_anzeigen:=0;
end;

// ===== VK - Gebühr ==================================

function vkgebuehr(vk: real):real;
var z: real;
begin
z:=0;
if(vk < 50)then z := vk * 0.05;
if((vk >= 50and (vk < 500.01))then z := 2.5 + vk * 0.04;
if (vk >500then z := 20.5 + vk * 0.02;
z:=z*100;
z := round(z);
z := z/100;
vkgebuehr := z;
end;

// ===== Grid löschen ====================================

function grid_loeschen():integer;
var x,y: integer  ;
begin
 for y:= 1 to artikel_anzahl +1 do

 begin
    for x :=0 to 9 do
   begin
    Form1.sg1.Cells[x,y]:='';
   end;
 end;
 grid_loeschen := 1;
end;

// ===== Anzeige der Artikel ========================

function artikel_anzeige():integer ;
begin
with artikel[artikel_zeiger] do
begin
 Form1.Edit1.Text := (artnr);
 Form1.Edit2.Text := artbez;
 Form1.Edit3.Text := formatfloat('0.00',startpreis);
 Form1.Edit4.Text := FormatFloat('0.00',sofortkauf);
 Form1.Edit5.Text := IntToStr(menge);
 Form1.Edit6.Text := FormatFloat('0.00',versand);
 Form1.dtp1.Date := StrToDate(beginn);
 Form1.Edit8.Text := IntToStr(dauer);
 Form1.Edit9.Text := FormatFloat('0.00',egebuehr);
end;
form1.sg1.RowCount:= artikel_anzahl +1;
artikel_anzeige:=1;
end;

// ===== Artikeldatei einlesen =====

function artikel_einlesen():integer;
begin
 AssignFile(artikel_datei,artikelfile);
 if not (fileexists(artikelfile))then
  begin
  rewrite(artikel_datei);

  end;
 Reset(artikel_datei);
 if(FileSize(artikel_datei)>0)then
  begin
   artikel_zeiger:=0;artikel_anzahl:=0;
   while not EOF(artikel_datei) do
    begin
     artikel_zeiger:=artikel_zeiger+1;artikel_anzahl:=artikel_anzahl+1;
     read(artikel_datei,artikel[artikel_zeiger]);
    end;
  artikel_zeiger:=1;artikel_anzeige;
  end
 else
  begin
   Form1.Edit2.Text:='Keine Daten!';
   artikel_zeiger:=0;artikel_anzahl:=0;
   grid_loeschen; //artikel_anzeige;
  end;
  artikel_einlesen:=1;
  CloseFile(artikel_datei);
end;

// ===== Verkaufsdatei speichern ==========================

function verkauf_speichern():integer;
var x:integer;
begin
AssignFile(verkauf_datei,verkauffile);
ReWrite(verkauf_datei);
for x :=1 to verkauf_anzahl do
 begin
  if(verkauf[x].status < 10then
  begin
  write(verkauf_datei,verkauf[x]);
  end;
 end;
CloseFile(verkauf_datei);
verkauf_speichern:=1;
end;

// ===== Verkaufdatei einlesen =====

function verkauf_einlesen():integer;
begin
 AssignFile(verkauf_datei,verkauffile);
 if not (fileexists(verkauffile))then
  begin
  rewrite(verkauf_datei);

  end;
 Reset(verkauf_datei);
 verkauf_zeiger:=0;verkauf_anzahl:=0;
 if(FileSize(verkauf_datei)>0)then
  begin
  while not EOF(verkauf_datei) do
    begin
     verkauf_zeiger:=verkauf_zeiger+1;verkauf_anzahl:=verkauf_anzahl+1;
     read(verkauf_datei,verkauf[verkauf_zeiger]);
    end;
  //verkauf_zeiger:=1;
  end ;
  verkauf_einlesen:=1;
  CloseFile(verkauf_datei);
end;

// ===== Artikeldatei speichern ==========================

function artikel_speichern():integer;
var x:integer;
begin
AssignFile(artikel_datei,artikelfile);
ReWrite(artikel_datei);
for x :=1 to artikel_anzahl do
 begin
  if(artikel[x].status < 10then
  begin
  write(artikel_datei,artikel[x]);
  end;
 end;
CloseFile(artikel_datei);
artikel_speichern:=1;
end;

// ===== ComboBox Suchen füllen =========================

function cb_suchen():integer   ;
var x:integer;
begin
Form1.ComboBox1.Items.Clear ;
for x := 1 to artikel_anzahl do
 begin
  Form1.ComboBox1.Items.Add(artikel[x].artbez);
 end;
 Form1.ComboBox1.Text:='';
 cb_suchen:=1;
end;

// ===== ComboBox Artikel füllen =========================

function cb_artikel():integer   ;
var x:integer;
begin
Form1.ComboBox2.Items.Clear ;
for x := 1 to artikel_anzahl do
 begin
  if(artikel[x].menge > 0then Form1.ComboBox2.Items.Add(artikel[x].artnr);
 end;
 Form1.ComboBox2.Text:='';
 cb_artikel:=1;
end;

// ===== ComboBox Käufer füllen =============================

function cb_kaeufer():integer;
var x:integer;
begin
Form1.ComboBox3.Items.Clear;
for x := 1 to kunde_anzahl do
 begin
  Form1.ComboBox3.Items.Add(kunde[x].ebayname);
 end;
 cb_kaeufer:=1;
end;

// ===== ComboBox Verkauft / Bezahlt füllen ============================

function cb_verkauf():integer;
var x:integer;
begin
 Form1.ComboBox4.Items.Clear;
 Form1.ComboBox5.Items.Clear;
 for x := 1 to verkauf_anzahl do
 begin
  if(verkauf[x].status = 1then
   Form1.ComboBox4.Items.Add(verkauf[x].artikel+'--'+verkauf[x].kaeufer);
  if(verkauf[x].status = 2then
   Form1.ComboBox5.Items.Add(verkauf[x].artikel+'--'+verkauf[x].kaeufer);

 end;
 cb_verkauf:=1;
end;

// ===== Kundendatei speichern ==========================

function kunde_speichern():integer;
var x:integer;
begin
AssignFile(kunde_datei,kundefile);
ReWrite(kunde_datei);
for x :=1 to kunde_anzahl do
 begin
  write(kunde_datei,kunde[x]);
 end;
CloseFile(kunde_datei);
kunde_speichern:=1;
end;

// ===== Kunden anzeigen ================================

function kunde_anzeige():integer;
begin
if(kunde_anzahl >0then
begin
 with kunde[kunde_zeiger] do
 begin
 Form1.Edit10.Text := vorname;
 Form1.Edit11.Text := nachname;
 Form1.Edit12.Text := strasse;
 Form1.Edit13.Text := plz;
 Form1.Edit14.Text := ort;
 Form1.Edit15.Text := email;
 Form1.Edit16.Text := ebayname;
 end   ;

end
else
begin
Form1.Edit10.Text := 'Keine Daten';
Form1.Edit11.Text := '';
Form1.Edit12.Text := '';
Form1.Edit13.Text := '';
Form1.Edit14.Text := '';
Form1.Edit15.Text := '';
Form1.Edit16.Text := '';
end;
form1.sg2.RowCount:= kunde_anzahl +1;
kunde_anzeige :=1;
end;

// ===== Kundendatei einlesen =====

function kunde_einlesen():integer;
begin
 AssignFile(kunde_datei,kundefile);
 if not (fileexists(kundefile))then
  begin
  rewrite(kunde_datei);
  
  end;
 Reset(kunde_datei);
 if(FileSize(kunde_datei)>=0)then
  begin
   kunde_zeiger:=0;kunde_anzahl:=0;
   while not EOF(kunde_datei) do
    begin
     kunde_zeiger:=kunde_zeiger+1;kunde_anzahl:=kunde_anzahl+1;
     read(kunde_datei,kunde[kunde_zeiger]);
    end;
  kunde_zeiger:=1;kunde_anzeige;
  end
 else
  begin
  kunde_zeiger:=0;kunde_anzahl:=0;
   kunde_anzeige;
  end;
  kunde_einlesen:=1;
  CloseFile(kunde_datei);
end;

// ===== S T A R T =======================================

procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Width :=1000;
Form1.Height := 665;
// Beschriften der Artikeltabelle
sg1.Cells[0,0]:='Artikelnummer';
sg1.Cells[1,0]:='Bezeichnung';
sg1.Cells[2,0]:='Menge';
sg1.Cells[3,0]:='Startpreis';
sg1.Cells[4,0]:='Sofortkauf';
sg1.Cells[5,0]:='Versand';
sg1.Cells[6,0]:='Beginn';
sg1.Cells[7,0]:='Dauer';
sg1.Cells[8,0]:='E-Gebühr';
sg1.Cells[9,0]:='Status';
artikel_zeiger:=0;
artikel_anzahl:=0;
artikel_einlesen;
cb_suchen; cb_artikel;
Button19Click(Edit1);
sg2.Cells[0,0]:='Vorname';
sg2.Cells[1,0]:='Nachname';
sg2.Cells[2,0]:='Straße';
sg2.Cells[3,0]:='PLZ';
sg2.Cells[4,0]:='Wohnort';
sg2.Cells[5,0]:='Emailadresse';
sg2.Cells[6,0]:='Ebayname';
kunde_einlesen;  cb_kaeufer;
verkauf_einlesen;
cb_verkauf;
sg3.Cells[0,0]:='Artikelnummer';
sg3.Cells[1,0]:='Bezeichnung';
sg3.Cells[2,0]:='Menge';
sg3.Cells[3,0]:='Käufer';
sg3.Cells[4,0]:='Datum';
sg3.Cells[5,0]:='Preis';
sg3.Cells[6,0]:='Versand';
sg3.Cells[7,0]:='Status';
dtp2.Date := (Date);
end;
//
// ===== Programm schließen ================================
//
procedure TForm1.Image3Click(Sender: TObject);
begin
Form1.Close;
end;

// ===== Artikel NEU =====

procedure TForm1.Button5Click(Sender: TObject);
begin
Form1.Edit1.Text := '';
Form1.Edit2.Text := '';
Form1.Edit3.Text := '0';
Form1.Edit4.Text := '0';
Form1.Edit5.Text := '0';
Form1.Edit6.Text := '0';
Form1.dtp1.Date := date;
Form1.Edit8.Text := '0';
Form1.Edit9.Text := '0';
artikel_neu := 1;
//artikel_anzahl := artikel_anzahl +1;
//artikel_zeiger := artikel_anzahl;
Form1.Edit1.SetFocus ;
end;

// ===== Artikel speichern =====

procedure TForm1.Button6Click(Sender: TObject);
var x : integer;
var m : real;
begin
// DEMO-VERSION
if(demo =1then
 begin
   if(artikel_anzahl > 4then
    begin
     Showmessage('Diese Version ist auf 5 Artikel beschränkt!');Exit;
    end;
 end;
//==========================

for x := 1 to artikel_anzahl do
begin
 if ((Edit1.Text = artikel[x].artnr) and (artikel_neu = 1))then
  begin
   Showmessage('Es gibt bereits einen Artikel mit der selben Artikelnummer!');
   Edit1.SetFocus;exit;
  end;
end;

if(length(Edit1.Text)<>10then
begin
 ShowMessage('Bitte die 10 stellige Ebayartikelnummer eingeben!');
 Edit1.SetFocus;Exit;
end;

try
m := StrToFloat(Edit1.Text);
except
ShowMessage('Ungültige Artikelnummer!');Edit1.SetFocus;Exit;
end;

if(length(Edit2.Text)=0)then
 begin
  ShowMessage('Keine Bezeichnung für den Artikel eingegeben!');
  Edit2.SetFocus;Exit;
 end;

try
if(Edit3.Text='')then Edit3.Text:='0';
m := StrTofloat(Edit3.Text);
except
ShowMessage('Ungültiger Startpreis!');Edit3.SetFocus;exit;
end;

try
if(Edit4.Text='')then Edit4.Text:='0';
m := StrToFloat(Edit4.Text);
if((m = 0and (StrTofloat(Edit3.Text) =0))then
 begin
  ShowMessage('Startpreis und Sofortkauf stehen auf 0 Euro. Ungültig!');
  Exit;
 end;
except
ShowMessage('Ungültiger Sofortkauf - Preis!');Edit4.SetFocus;exit;
end;

try
if(Edit5.Text='')then Edit5.Text:='0';
m := StrToFloat(Edit5.Text);
if(m < 1)then
 begin
  if(m = -1)then
   begin
   Edit5.Text :='0';
   end
  else
   begin
    ShowMessage('Menge ist kleiner 1!');
    Edit5.SetFocus;Exit;
   end;
 end;
except
ShowMessage('Ungültige Menge!');Edit5.SetFocus;exit;
end;

try
if(Edit6.Text='')then Edit6.Text:='0';
m := StrToFloat(Edit6.Text);
except
ShowMessage('Ungültiger Versandpreis');Edit6.SetFocus;exit;
end;

try
if(Edit8.Text='')then Edit8.Text:='0';
m := StrToFloat(Edit8.Text);
except
ShowMessage('Ungültige Dauer!');Edit8.SetFocus;Exit;
end;
if(StrTofloat(edit8.Text)= 0)then
 begin
  ShowMessage('Dauer muss größer 0 sein.');Exit;
 end;

try
if(Edit9.Text='')then Edit9.Text:='0';
m := StrToFloat(Edit9.Text);
except
ShowMessage('Ungültige Einstellgebühr!');Edit9.SetFocus;Exit;
end;



if(artikel_neu = 1)then
 begin
 artikel_anzahl := artikel_anzahl +1;
 artikel_zeiger := artikel_anzahl;
 artikel_neu :=0;
 end;
 if(artikel_anzahl >0)then begin
 with artikel[artikel_zeiger] do
  begin
   artnr        :=      (Edit1.Text);
   artbez       :=      Edit2.Text;
   startpreis   :=      StrToFloat(Edit3.Text);
   sofortkauf   :=      StrToFloat(Edit4.Text);
   menge        :=      StrToInt(Edit5.Text);
   versand      :=      StrToFloat(Edit6.Text);
   beginn       :=      DateToStr(dtp1.Date);
   dauer        :=      StrToInt(Edit8.Text);
   egebuehr     :=      StrToFloat(Edit9.Text);
   status       :=      1;
  end;
  artikel_speichern;
  //sg1.RowCount := artikel_anzahl;
  artikel_anzeige;
  cb_suchen; cb_artikel;
  button19click(edit1);
  end;
  showmessage('Artikel wurde gespeichert.');
end;

// ===== Artikel löschen ========================

procedure TForm1.Button13Click(Sender: TObject);
var frage,x : integer;
begin
if(artikel_neu = 1 ) then begin artikel_neu:=0;exit; end;
for x := 1 to verkauf_anzahl do
 begin
  if (verkauf[x].artikel = Edit1.Text) then
   begin
    ShowMessage('Dieser Artikel wird noch für den Verkauf gebraucht und deshalb nicht gelöscht.');
    exit;
   end;
 end;
frage := MessageDLGPosHelp(artikel[artikel_zeiger].artbez+' wirklich löschen?',mtConfirmation,[mbYes,mbNo],1,-1,-1,'xx');
if(frage=6)then
begin
if(artikel_anzahl>0)then
begin
artikel[artikel_zeiger].status := 99;
if(artikel_anzahl = 1)then artikel_anzahl :=0;
artikel_speichern;
artikel_einlesen;
button19click(edit1);
cb_suchen; cb_artikel;
endendend;

// ===== Artikelliste anzeigen ================

procedure TForm1.Button19Click(Sender: TObject);
var x,m:integer;
begin
grid_loeschen;
sg1.Visible := true ;
sg2.Visible:=false ;
sg3.Visible:=false ;
Label32.Caption := 'Artikelliste';
if(artikel_anzahl >0)then
begin
sg1.Canvas.TextExtent('right');
for m := 1 to artikel_anzahl do
begin
x := artikel_anzahl - m + 1;
 with artikel[m] do
  begin
   sg1.Cells[0,x]:= artnr;
   sg1.Cells[1,x]:= artbez;
   sg1.Cells[2,x]:= IntToStr(menge);
   sg1.Cells[3,x]:= FormatFloat('0.00 €',startpreis);
   sg1.Cells[4,x]:= FormatFloat('0.00 €',sofortkauf);
   sg1.Cells[5,x]:= FormatFloat('0.00 €',versand);
   sg1.Cells[6,x]:= beginn ;
   sg1.Cells[7,x]:= IntToStr(dauer);
   sg1.Cells[8,x]:= FormatFloat('0.00 €',egebuehr);
   sg1.Cells[9,x]:= IntToStr(status);
  end;
end;
sg1.RowCount:=artikel_anzahl+1;
end
else
sg1.RowCount:=3;
end;


//===== Gesuchten Artikel anzeigen ====================

procedure TForm1.ComboBox1Select(Sender: TObject);
var such: string [50];
var x:integer;
begin
//such := ComboBox1.Items.Strings[ComboBox1.Items];
such:=  ComboBox1.Text;
for x :=1 to artikel_anzahl do
 begin
  if(artikel[x].artbez = such)then break;
 end;
artikel_zeiger:=x;
artikel_anzeige;
end;
 
// ===== Neuer Kunde =====================================

procedure TForm1.Button11Click(Sender: TObject);
begin
Edit10.Text := '';
Edit11.Text := '';
Edit12.Text := '';
Edit13.Text := '';
Edit14.Text := '';
Edit15.Text := '';
Edit16.Text := '';
kunde_neu := 1;
Form1.Edit10.SetFocus ;
end;

// ===== Neuen Kunden speichern =============================

procedure TForm1.Button12Click(Sender: TObject);
var x :integer;
begin
for x := 1 to kunde_anzahl do
 begin
  if((Edit16.Text = kunde[x].ebayname)and(kunde_neu = 1)) then
   begin
    ShowMessage('Es gibt schon einen Kunden mit Ebayname " '+ Edit16.Text+'" !');Exit;
   end;
 end;
if (kunde_neu = 1then
 begin
 kunde_anzahl := kunde_anzahl+1; kunde_zeiger := kunde_anzahl;
 kunde_neu:=0;
 end;
if(kunde_anzahl >0)then
 begin
  with kunde[kunde_zeiger] do
   begin
    vorname      :=      Edit10.Text;
    nachname     :=      Edit11.Text;
    strasse      :=      Edit12.Text;
    plz          :=      Edit13.Text;
    ort          :=      Edit14.Text;
    email        :=      Edit15.Text;
    ebayname     :=      Edit16.Text;
   end;
  end;
  kunde_speichern; cb_kaeufer;
  Button21Click(Edit1);
  //if(sg2.RowCount<15)then
  //sg2.RowCount:=15
  //else
  //sg2.RowCount:=kunde_anzahl+0;
  ShowMessage('Käufer wurde gespeichert.');
 end;

//  ===== Kunde löschen ===============================

procedure TForm1.Button14Click(Sender: TObject);
var x,frage:integer;
begin
frage := MessageDLGPosHelp(kunde[kunde_zeiger].ebayname+' wirklich löschen?',mtConfirmation,[mbYes,mbNo],1,-1,-1,'xx');
if(frage=6)then
begin
AssignFile(kunde_datei,kundefile);
ReWrite(kunde_datei);
for x :=1 to kunde_anzahl do
 begin
  if(x <> kunde_zeiger) then write(kunde_datei,kunde[x]);
 end;
CloseFile(kunde_datei);
Edit10.Text :='';
Edit11.Text :='';
Edit12.Text :='';
Edit13.Text :='';
Edit14.Text :='';
Edit15.Text :='';
Edit16.Text :='';
kunde_einlesen; cb_kaeufer ;
Button21Click(Edit1);
end;
end;
// ===== Kundenliste =================================

procedure TForm1.Button21Click(Sender: TObject);
var x,y,m: integer  ;
begin
 for y:= 1 to kunde_anzahl + 1 do
 begin
    for x :=0 to 6 do
   begin
    Form1.sg2.Cells[x,y]:='';
   end;
 end;
for m := 1 to kunde_anzahl do
 begin
  x := kunde_anzahl - m +1;
  //x := m;
  with kunde[m] do
   begin
   sg2.Cells[0,x]:= vorname;
   sg2.Cells[1,x]:= nachname;
   sg2.Cells[2,x]:= strasse;
   sg2.Cells[3,x]:= plz;
   sg2.Cells[4,x]:= ort;
   sg2.Cells[5,x]:= email;
   sg2.Cells[6,x]:= ebayname;
   end;
 end;
sg2.Visible := true;
sg1.Visible := false;
sg3.Visible:=false ;
Label32.Caption:='Kundenliste';
kunde_anzeige;
end;

// ===== Kundenliste anklicken ==================================

procedure TForm1.sg2SelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
  var temp:integer;
begin
if(arow-1 < kunde_anzahl)then
begin
temp := kunde_anzahl - arow + 1;
kunde_zeiger:=temp;
kunde_anzeige;
ComboBox3.Text := Edit16.Text;
end;
kunde_neu :=0;
end;

//===== Artikelliste anklicken ==================================

procedure TForm1.sg1SelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
  var temp:integer;
begin
if(arow-1<artikel_anzahl)then
begin
temp := artikel_anzahl-arow+1;
artikel_zeiger:=temp ;
artikel_anzeige;
if(artikel[temp].menge > 0)then
ComboBox2.Text := artikel[temp].artnr
else
ComboBox2.Text:='';
end;
artikel_neu :=0;
end;

// ====== ComboBox Artikel =========================

procedure TForm1.ComboBox2Select(Sender: TObject);
var such: string [50];
var x:integer;
begin
//such := ComboBox1.Items.Strings[ComboBox1.Items];
such:=  ComboBox2.Text;
for x :=1 to artikel_anzahl do
 begin
  if(artikel[x].artnr = such)then break;
 end;
artikel_zeiger:=x;
artikel_anzeige;
if((artikel[x].startpreis = 0and (artikel[x].sofortkauf > 0))then
begin
Edit17.Text := FormatFloat('0.00',Artikel[x].sofortkauf);
end
else
Edit17.Text:='0';
dtp2.Date := Date;
Edit19.Text := floatToStr(vkgebuehr(StrToFloat(Edit17.Text)));
end;

// ====== ComboBox Käufer ============================

procedure TForm1.ComboBox3Select(Sender: TObject);
var such: string [50];
var x:integer;
begin
//such := ComboBox1.Items.Strings[ComboBox1.Items];
such:=  ComboBox3.Text;
for x :=1 to kunde_anzahl do
 begin
  if(kunde[x].ebayname = such)then break;
 end;
kunde_zeiger:=x;
kunde_anzeige;
end;

// ======= VK Gebühr anzeigen =============================

procedure TForm1.Edit17Exit(Sender: TObject);
begin
if(Edit17.Text = '')then Edit17.Text :='0';
try
Edit19.Text := floatToStr(vkgebuehr(StrToFloat(Edit17.Text)));
except
ShowMessage('Ungültiger Endpreis!');Exit;
end;

dtp2.Date := Date;
end;

// ===== Verkauft - Button ==============================

procedure TForm1.Button15Click(Sender: TObject);
var z:integer;
var m : real;
begin
z:=0;

try
m := StrTofloat(Edit17.Text);
except
ShowMessage('Ungültiger Endpreis!');exit;
end;

try
m := StrTofloat(Edit19.Text);
except
ShowMessage('Ungültige Verkaufsgebühr!');exit;
end;

try
m := StrToInt(Edit20.Text);
except
ShowMessage('Ungültige Menge!');exit;
end;

if(StrToInt(Edit20.Text)> artikel[artikel_zeiger].menge)then
 begin
  ShowMessage('Menge ist zu groß.');exit;
 end;

if(StrToFloat(Edit17.Text) < artikel[artikel_zeiger].startpreis) then
 begin
  ShowMessage('Endpreis ist niedriger wie der Startpreis!');Exit;
 end;

if(Combobox3.Text = '')then z:=1;
if(Combobox2.Text = '')then z:=1;
if(Edit17.Text = '')then z:=1;
//if(dtp2.Date = '')then z:=1;
if(Edit19.Text = '')then z:=1;
if(Edit20.Text = '')then z:=1;
//ShowMessage(IntToStr(z));
if(z=0)then
begin
verkauf_anzahl := verkauf_anzahl + 1;
verkauf_zeiger := verkauf_anzahl;
with verkauf[verkauf_zeiger] do
 begin
  artikel       :=      ComboBox2.Text;
  kaeufer       :=      ComboBox3.Text;
  endpreis      :=      StrToFloat(Edit17.Text);
  datum         :=      DateToStr(dtp2.Date);
  vkgebuehr     :=      StrToFloat(Edit19.Text);
  menge         :=      StrToInt(Edit20.Text);
  status        :=      1;
 end ;
verkauf_speichern;
artikel[artikel_zeiger].menge := artikel[artikel_zeiger].menge - StrToInt(Edit20.Text);
artikel_speichern;
artikel_anzeige;
button19click(edit1);
ComboBox2.Text:='';
ComboBox3.Text:='';
Edit17.Text:='';
dtp2.Date:=(Date);
Edit19.Text:='0';
Edit20.Text:='1';
cb_artikel; cb_verkauf;
end;
end;

// ===== Verkaufte Artikel Select =======================

procedure TForm1.ComboBox4Select(Sender: TObject);
var s1,s2 :string;
var x:integer;
begin
s1 := copy(ComboBox4.Text,0,10);
for x :=1 to artikel_anzahl do
 begin
  if(artikel[x].artnr = s1)then break;
 end;
artikel_zeiger:=x;
artikel_anzeige;
s2 := copy(ComboBox4.Text,13,length(ComboBox4.Text));
for x :=1 to kunde_anzahl do
 begin
  if(kunde[x].ebayname = s2)then break;
 end;
kunde_zeiger:=x;
kunde_anzeige;
end;

// ===== Verkaufter Artikel wird bezahlt =========================

procedure TForm1.Button16Click(Sender: TObject);
var x:integer;
var s1,s2:string;
begin
for x := 0 to verkauf_anzahl do
 begin
  s1 := copy(ComboBox4.Text,0,10);
  s2 := copy(ComboBox4.Text,13,length(ComboBox4.Text));
  if((verkauf[x].artikel = s1)and(verkauf[x].kaeufer = s2)and(verkauf[x].status=1)) then break ;
 end;
verkauf[x].status := 2;
verkauf_speichern;verkauf_einlesen;
cb_verkauf;

end;
// =======================================================================
procedure TForm1.ComboBox5Select(Sender: TObject);
var s1,s2 :string;
var x:integer;
begin
s1 := copy(ComboBox5.Text,0,10);
for x :=1 to artikel_anzahl do
 begin
  if(artikel[x].artnr = s1)then break;
 end;
artikel_zeiger:=x;
artikel_anzeige;
s2 := copy(ComboBox5.Text,13,length(ComboBox5.Text));
for x :=1 to kunde_anzahl do
 begin
  if(kunde[x].ebayname = s2)then break;
 end;
kunde_zeiger:=x;
kunde_anzeige;
end;
// ====== Ware verschickt ===============================
procedure TForm1.Button17Click(Sender: TObject);
var x,fahne:integer;
var s1,s2:string;
begin
fahne:=0;
for x := 1 to verkauf_anzahl do
 begin
  s1 := copy(ComboBox5.Text,0,10);
  s2 := copy(ComboBox5.Text,13,length(ComboBox5.Text));
  if((verkauf[x].artikel = s1)
  and(verkauf[x].kaeufer = s2)
  and(verkauf[x].status=2)) then begin fahne :=x; break; end;
 end;
if(fahne > 0)then begin
// archiv speichern
with archiv[1do
begin
artnr := artikel[artikel_zeiger].artnr;
artbez := artikel[artikel_zeiger].artbez;
startpreis := artikel[artikel_zeiger].startpreis;
sofortkauf := artikel[artikel_zeiger].sofortkauf;
versand := artikel[artikel_zeiger].versand;
beginn := artikel[artikel_zeiger].beginn;
dauer := artikel[artikel_zeiger].dauer;
egebuehr := artikel[artikel_zeiger].egebuehr;
vorname := kunde[kunde_zeiger].vorname;
nachname := kunde[kunde_zeiger].nachname;
strasse := kunde[kunde_zeiger].strasse;
plz := kunde[kunde_zeiger].plz;
ort := kunde[kunde_zeiger].ort;
email := kunde[kunde_zeiger].email;
ebayname := kunde[kunde_zeiger].ebayname;
endpreis := verkauf[fahne].endpreis;
datum := verkauf[fahne].datum;
vkgebuehr := verkauf[x].vkgebuehr;
menge := verkauf[fahne].menge;
end;
 AssignFile(archiv_datei,archivfile);
 if not (fileexists(archivfile))then
  begin
  rewrite(archiv_datei);
  ShowMessage('Archiv-Datenbank wurde angelegt!');
  end
 else
 begin
 Reset(archiv_datei);
 Seek(archiv_datei,filesize(archiv_datei));
 end;
 write(archiv_datei,archiv[1]);
 closefile(archiv_datei);
 verkauf[x].status := 3;
 verkauf_speichern;verkauf_einlesen;
 cb_verkauf;
end
end;
// ===== Alle verkauften anzeigen VERKAUF ======================
procedure TForm1.Button22Click(Sender: TObject);
var f:integer;
begin
f:=1;
verkauf_anzeigen(f);
end;
// ===== Alle anzeigen VERKAUF ======================
procedure TForm1.Button20Click(Sender: TObject);
var f:integer;
begin
f:=0;
verkauf_anzeigen(f);
end;
// ===== Alle bezahlten VERKAUF ======================
procedure TForm1.Button24Click(Sender: TObject);
var f:integer;
begin
f:=2;
verkauf_anzeigen(f);
end;
// ===== Alle verschickten VERKAUF ======================
procedure TForm1.Button25Click(Sender: TObject);
var f:integer;
begin
f:=3;
verkauf_anzeigen(f);
end;
// ========================================================
procedure TForm1.sg3SelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
var x:integer;
begin
for x := 1 to kunde_anzahl do
 begin
  if((kunde[x].ebayname = sg3.Cells[3,arow])and(x>0) ) then break;
 end;
kunde_zeiger:=x;kunde_anzeige;
if(artikel_anzahl > 0)then
begin
for x := 1 to artikel_anzahl do
 begin
  if((artikel[x].artnr = sg3.Cells[0,arow])and (x>0)) then break;
 end;
if(x <= artikel_anzahl) then artikel_zeiger:=x;artikel_anzeige;
end;
end;
// ===== Gitter an / aus ===========================================
procedure TForm1.Button1Click(Sender: TObject);
begin
if(sg1.GridLineWidth =0 ) then
 begin
  sg1.GridLineWidth:=1;
  sg2.GridLineWidth:=1;
  sg3.GridLineWidth:=1;
 end
else
 begin
  sg1.GridLineWidth:=0;
  sg2.GridLineWidth:=0;
  sg3.GridLineWidth:=0;
 end;
end;

// ================================================

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
Form1.Close;
end;

// ================================================

procedure TForm1.Beenden1Click(Sender: TObject);
begin
Form1.Close;
end;
//
// ===== Alle Artikel mit Menge 0 loeschen
//
procedure TForm1.AlleartikelmitMenge0lschen1Click(Sender: TObject);
var x: integer;
begin
for x := 1 to artikel_anzahl do
 begin
  if(artikel[x].menge = 0 ) then artikel[x].status := 99;
 end;
artikel_speichern;
artikel_einlesen;
artikel_anzeige;
end;

// ======================================================

procedure TForm1.AlleverschicktenArtikellschen1Click(Sender: TObject);
var x:integer;
begin
for x := 1 to verkauf_anzahl do
 begin
  if(verkauf[x].status = 3then verkauf[x].status := 99;
 end;
// verkauf_zeiger:=0;verkauf_anzahl:=0;
verkauf_speichern;verkauf_einlesen;
end;

// ========================================================

procedure TForm1.KompletteListe1Click(Sender: TObject);
begin
Form2.Show;
end;
// ========================================================
procedure TForm1.Info1Click(Sender: TObject);
begin
form3.AlphaBlendValue :=0;
Form3.Show;
end;
// ========================================================
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label29.Caption := inttostr(artikel_anzahl)+'/'+inttostr(artikel_zeiger);
Label31.Caption := inttostr(kunde_anzahl)+'/'+inttostr(kunde_zeiger);
Label30.Caption := inttostr(verkauf_anzahl)+'/'+inttostr(verkauf_zeiger);
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (key = 13)then
begin
key:=0;
keybd_event(vk_tab,0,0,0);
keybd_event(vk_tab,0, KEYEVENTF_KEYUP,0);
end;
end;
//===============

end.
Palladin007 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: So 25.11.12 20:53 
Danke für den Quellcode, wenn ich auf die Schnelle keine Alternative finde, werde ich den nehmen.



Da fällt mir grad noch eine Frage ein:

Kann man solche Sprachen auch ohne Zeilensprünge schreiben?
Bei C# geht das problemlos, bei PHP auch, oder HTML, bei Batch müssen die Befehle mit & getrennt werden ...


Was ich gesucht hab, ist ein schwarzer Hintergrund mit weißem oder grauen Programm-Code, der unter MS-DOS ausgeführt werden kann und das ganze Bild ausfüllt. Das Fenster überdeckt dann einfach einen Teil in der Mitte. Leider war dazu nichts passendes zu finden, also bau ich mir das Bild selber zusammen
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: So 25.11.12 21:13 
Schau mal unter www.fandecheng.com/p...unctional/qbasic.htm Dort gibt's u.a. Nibbles.bas und REMLINE. Auch JULIA dürfte interessant sein als Background ;-)

_________________
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.
Palladin007 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: So 25.11.12 21:16 
Stimmt, da findet sich einiges, danke ^^


Jetzt nur noch eine Frage:
Wie krieg ich einen QBasic-Quellcode funktionsfähig aber ohne Zeilensprünge dargestellt?
Bei Batch musste man einfach nur die Befehle mit einem & aneinander reihen, geht das hier auch?
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: So 25.11.12 22:11 
Mit Doppelpunkten trennen, wobei es da glaub paar Ausnahmen gab. Sollte aber nicht weiter auffallen ;-)

_________________
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.
Palladin007 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: So 25.11.12 22:29 
Stimmt auch wieder ^^


Danke für die Hilfe ^^
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: So 25.11.12 22:32 
Hallo Palladin,
user profile iconPalladin007 hat folgendes geschrieben Zum zitierten Posting springen:
Das soll zeigen, dass die grafischen Windows-Versionen den farbigen Ausblick aus dem öden und langweiligen MS-DOS bieten.

Nun ja, mit so einer Aussage wäre ich vorsichtig. MS-DOS war bei weitem nicht öde und langweilig. Es gab hervorragende Programme (nicht nur Spiele), welche die Fähigkeiten des Betriebssystems ausreizten und nicht nur grün auf schwarz waren. Als absoluter Klassiker sei nur Fractint genannt.

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Mit Doppelpunkten trennen, wobei es da glaub paar Ausnahmen gab. Sollte aber nicht weiter auffallen ;-)

Sehe ich auch so. Wer kann denn heute noch erkennen, dass ein QBasic-Quelltext nicht korrekt ist, vor allem, wenn ich an die Zielgruppe Deines "Kunstwerks" denke.
Ich hänge eine Variante von "4Gewinnt" in Qbasic an.
ausblenden volle Höhe 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:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
ST:
CLS
SCREEN 12

LINE (100, 100)-(460, 410), 15, B

FOR X = 130 TO 460 STEP 50
FOR Y = 130 TO 400 STEP 50
CIRCLE (X, Y), 20
NEXT
NEXT
INPUT "Wieviele Spieler (2-4)?", SP
IF SP > 4 OR SP < 2 THEN PRINT "Geht nicht !": SLEEP 3: CLS : GOTO ST
A1 = 0: A2 = 0: A3 = 0: A4 = 0: A5 = 0: A6 = 0
B1 = 0: B2 = 0: B3 = 0: B4 = 0: B5 = 0: B6 = 0
C1 = 0: C2 = 0: C3 = 0: C4 = 0: C5 = 0: C6 = 0
D1 = 0: D2 = 0: D3 = 0: D4 = 0: D5 = 0: D6 = 0
E1 = 0: E2 = 0: E3 = 0: E4 = 0: E5 = 0: E6 = 0
F1 = 0: F2 = 0: F3 = 0: F4 = 0: F5 = 0: F6 = 0
G1 = 0: G2 = 0: G3 = 0: G4 = 0: G5 = 0: G6 = 0
N:
S = S + 1
IF S > SP THEN S = 1
X:
IF S = 1 THEN F = 14
IF S = 2 THEN F = 4
IF S = 3 AND SP >= 3 THEN F = 1
IF S = 4 AND SP >= 4 THEN F = 2
DO
T$ = INKEY$
IF A6 <> 0 AND B6 <> 0 AND C6 <> 0 AND D6 <> 0 AND E6 <> 0 AND F6 <> 0 AND G6 <> 0 AND T$ = "2" GOTO ST
IF A6 <> 0 AND B6 <> 0 AND C6 <> 0 AND D6 <> 0 AND E6 <> 0 AND F6 <> 0 AND G6 <> 0 AND T$ = " " GOTO ST
IF A6 <> 0 AND B6 <> 0 AND C6 <> 0 AND D6 <> 0 AND E6 <> 0 AND F6 <> 0 AND G6 <> 0 AND T$ = CHR$(0) + "P" GOTO ST
IF A6 <> 0 AND B6 <> 0 AND C6 <> 0 AND D6 <> 0 AND E6 <> 0 AND F6 <> 0 AND G6 <> 0 AND T$ = CHR$(13) GOTO ST
IF T$ = "6" THEN CIRCLE (Z, 70), 20, 0: PAINT (Z, 60), 0: R = R + 1
IF T$ = "4" THEN CIRCLE (Z, 70), 20, 0: PAINT (Z, 60), 0: R = R - 1
IF T$ = CHR$(0) + "M" THEN CIRCLE (Z, 70), 20, 0: PAINT (Z, 60), 0: R = R + 1
IF T$ = CHR$(0) + "K" THEN CIRCLE (Z, 70), 20, 0: PAINT (Z, 60), 0: R = R - 1
IF R < -1 THEN R = 7
IF R > 7 THEN R = -1
Z = (R * 50) + 130
CIRCLE (Z, 70), 20, F: PAINT (Z, 70), F
LOCATE 5, 59: PRINT "ENDE"
LOCATE 5, 10: PRINT "NEU"
LOOP UNTIL T$ = "2" OR T$ = " " OR T$ = CHR$(0) + "P" OR T$ = CHR$(13)
IF R = -1 GOTO ST
IF R = 0 GOTO A
IF R = 1 GOTO B
IF R = 2 GOTO C
IF R = 3 GOTO D
IF R = 4 GOTO E
IF R = 5 GOTO F
IF R = 6 GOTO G
IF R = 7 THEN END
A:
IF S = 1 THEN F = 14
IF S = 2 THEN F = 4
IF S = 3 AND SP >= 3 THEN F = 1
IF S = 4 AND SP >= 4 THEN F = 2
IF A1 = 0 THEN A1 = S: CIRCLE (130, 380), 19, F: PAINT (130, 380), F: GOTO N
IF A2 = 0 THEN A2 = S: CIRCLE (130, 330), 19, F: PAINT (130, 330), F: GOTO N
IF A3 = 0 THEN A3 = S: CIRCLE (130, 280), 19, F: PAINT (130, 280), F: GOTO N
IF A4 = 0 THEN A4 = S: CIRCLE (130, 230), 19, F: PAINT (130, 230), F: GOTO N
IF A5 = 0 THEN A5 = S: CIRCLE (130, 180), 19, F: PAINT (130, 180), F: GOTO N
IF A6 = 0 THEN A6 = S: CIRCLE (130, 130), 19, F: PAINT (130, 130), F: GOTO N
GOTO X
B:                                          
IF S = 1 THEN F = 14
IF S = 2 THEN F = 4
IF S = 3 AND SP >= 3 THEN F = 1
IF S = 4 AND SP >= 4 THEN F = 2
IF B1 = 0 THEN B1 = S: CIRCLE (180, 380), 19, F: PAINT (180, 380), F: GOTO N
IF B2 = 0 THEN B2 = S: CIRCLE (180, 330), 19, F: PAINT (180, 330), F: GOTO N
IF B3 = 0 THEN B3 = S: CIRCLE (180, 280), 19, F: PAINT (180, 280), F: GOTO N
IF B4 = 0 THEN B4 = S: CIRCLE (180, 230), 19, F: PAINT (180, 230), F: GOTO N
IF B5 = 0 THEN B5 = S: CIRCLE (180, 180), 19, F: PAINT (180, 180), F: GOTO N
IF B6 = 0 THEN B6 = S: CIRCLE (180, 130), 19, F: PAINT (180, 130), F: GOTO N
GOTO X

C:
IF S = 1 THEN F = 14
IF S = 2 THEN F = 4
IF S = 3 AND SP >= 3 THEN F = 1
IF S = 4 AND SP >= 4 THEN F = 2
IF C1 = 0 THEN C1 = S: CIRCLE (230, 380), 19, F: PAINT (230, 380), F: GOTO N
IF C2 = 0 THEN C2 = S: CIRCLE (230, 330), 19, F: PAINT (230, 330), F: GOTO N
IF C3 = 0 THEN C3 = S: CIRCLE (230, 280), 19, F: PAINT (230, 280), F: GOTO N
IF C4 = 0 THEN C4 = S: CIRCLE (230, 230), 19, F: PAINT (230, 230), F: GOTO N
IF C5 = 0 THEN C5 = S: CIRCLE (230, 180), 19, F: PAINT (230, 180), F: GOTO N
IF C6 = 0 THEN C6 = S: CIRCLE (230, 130), 19, F: PAINT (230, 130), F: GOTO N
GOTO X

D:
IF S = 1 THEN F = 14
IF S = 2 THEN F = 4
IF S = 3 AND SP >= 3 THEN F = 1
IF S = 4 AND SP >= 4 THEN F = 2
IF D1 = 0 THEN D1 = S: CIRCLE (280, 380), 19, F: PAINT (280, 380), F: GOTO N
IF D2 = 0 THEN D2 = S: CIRCLE (280, 330), 19, F: PAINT (280, 330), F: GOTO N
IF D3 = 0 THEN D3 = S: CIRCLE (280, 280), 19, F: PAINT (280, 280), F: GOTO N
IF D4 = 0 THEN D4 = S: CIRCLE (280, 230), 19, F: PAINT (280, 230), F: GOTO N
IF D5 = 0 THEN D5 = S: CIRCLE (280, 180), 19, F: PAINT (280, 180), F: GOTO N
IF D6 = 0 THEN D6 = S: CIRCLE (280, 130), 19, F: PAINT (280, 130), F: GOTO N
GOTO X

E:
IF S = 1 THEN F = 14
IF S = 2 THEN F = 4
IF S = 3 AND SP >= 3 THEN F = 1
IF S = 4 AND SP >= 4 THEN F = 2
IF E1 = 0 THEN E1 = S: CIRCLE (330, 380), 19, F: PAINT (330, 380), F: GOTO N
IF E2 = 0 THEN E2 = S: CIRCLE (330, 330), 19, F: PAINT (330, 330), F: GOTO N
IF E3 = 0 THEN E3 = S: CIRCLE (330, 280), 19, F: PAINT (330, 280), F: GOTO N
IF E4 = 0 THEN E4 = S: CIRCLE (330, 230), 19, F: PAINT (330, 230), F: GOTO N
IF E5 = 0 THEN E5 = S: CIRCLE (330, 180), 19, F: PAINT (330, 180), F: GOTO N
IF E6 = 0 THEN E6 = S: CIRCLE (330, 130), 19, F: PAINT (330, 130), F: GOTO N
GOTO X

F:
IF S = 1 THEN F = 14
IF S = 2 THEN F = 4
IF S = 3 AND SP >= 3 THEN F = 1
IF S = 4 AND SP >= 4 THEN F = 2
IF F1 = 0 THEN F1 = S: CIRCLE (380, 380), 19, F: PAINT (380, 380), F: GOTO N
IF F2 = 0 THEN F2 = S: CIRCLE (380, 330), 19, F: PAINT (380, 330), F: GOTO N
IF F3 = 0 THEN F3 = S: CIRCLE (380, 280), 19, F: PAINT (380, 280), F: GOTO N
IF F4 = 0 THEN F4 = S: CIRCLE (380, 230), 19, F: PAINT (380, 230), F: GOTO N
IF F5 = 0 THEN F5 = S: CIRCLE (380, 180), 19, F: PAINT (380, 180), F: GOTO N
IF F6 = 0 THEN F6 = S: CIRCLE (380, 130), 19, F: PAINT (380, 130), F: GOTO N
GOTO X

G:
IF S = 1 THEN F = 14
IF S = 2 THEN F = 4
IF S = 3 AND SP >= 3 THEN F = 1
IF S = 4 AND SP >= 4 THEN F = 2
IF G1 = 0 THEN G1 = S: CIRCLE (430, 380), 19, F: PAINT (430, 380), F: GOTO N
IF G2 = 0 THEN G2 = S: CIRCLE (430, 330), 19, F: PAINT (430, 330), F: GOTO N
IF G3 = 0 THEN G3 = S: CIRCLE (430, 280), 19, F: PAINT (430, 280), F: GOTO N
IF G4 = 0 THEN G4 = S: CIRCLE (430, 230), 19, F: PAINT (430, 230), F: GOTO N
IF G5 = 0 THEN G5 = S: CIRCLE (430, 180), 19, F: PAINT (430, 180), F: GOTO N
IF G6 = 0 THEN G6 = S: CIRCLE (430, 130), 19, F: PAINT (430, 130), F: GOTO N
GOTO X


Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Palladin007 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: So 25.11.12 23:43 
Zitat:
Nun ja, mit so einer Aussage wäre ich vorsichtig. MS-DOS war bei weitem nicht öde und langweilig. Es gab hervorragende Programme (nicht nur Spiele), welche die Fähigkeiten des Betriebssystems ausreizten und nicht nur grün auf schwarz waren. Als absoluter Klassiker sei nur Fractint genannt.


Was ich meine ist, dass es vor der grafischen Oberfläche nur Weiß auf Schwarz, oder grau auf schwarz, oder was auch immer gab und das Windows-Logo ist das Fenster in eine schön bunte Landschaft.




Ein Spiel würde ich nur zu gerne nehmen, aber ich glaube, das größte Problem dabei ist, die Menge an Code.
Ich schau mal wie groß der Text am Ende auf dem Papier aus fällt, die Datei hat nämlich ein Format von 3508 x 2480 Pixel und das ist im Vergleich zum typischen Din A4 doch arg groß ^^
Aber ein Spiel wäre schon cool, denn ich würde fast drauf wetten, dass irgendwer fragt, was das denn machen soll, wenn es ein original Quellcode ist. :D
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: So 25.11.12 23:55 
Hallo,
user profile iconPalladin007 hat folgendes geschrieben Zum zitierten Posting springen:
Was ich meine ist, dass es vor der grafischen Oberfläche nur Weiß auf Schwarz, oder grau auf schwarz, oder was auch immer gab und das Windows-Logo ist das Fenster in eine schön bunte Landschaft.

Ich will Dir nicht pausenlos widersprechen, aber MS-DOS war nicht "zweifarbig".
Das von mir schon erwähnte Fractint erstellte, bis dahin unerreichte, Fraktalbilder mit verschiedenen Paletten zu je 256 Farben. Und mein Lieblingsspiel "Day of the Tentacle" dürfte wohl bunt genug sein. (siehe Anhang)

Beste Grüße
Mathematiker
Einloggen, um Attachments anzusehen!
_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Palladin007 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Mo 26.11.12 00:03 
Ok, ich drück mich anders aus:

Das, von der Zeit bekannte, Bild, was noch sehr viele von MS-DOS haben, sieht so aus, wie beschrieben. ^^


Und wenn das auch nicht stimmt, dann nenne ich es Künstlerfreiheit :D
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Mo 26.11.12 12:03 
user profile iconPalladin007 hat folgendes geschrieben Zum zitierten Posting springen:
Das, von der Zeit bekannte, Bild, was noch sehr viele von MS-DOS haben, sieht so aus, wie beschrieben. ^^
Hach ja, die Jugend von heute :roll: :lol:

Mein Bild von DOS bewegt sich irgendwo zwischen Norton Commander, Lemmings und ein bisschen TP7 (damals hab ichs allerdings nicht verstanden ;) ).

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
smt
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 45



BeitragVerfasst: Mo 26.11.12 12:16 
Wie sich die Jugend so ein "MS-DOS" vorstellt... Echt genial

Es gibt auch Leute, die hatten einen Schneider CPC mit CP/M und Turbo Pascal - das ist Nostalgie

- Sascha -
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mo 26.11.12 12:46 
Hallo,
im Prinzip kann ich Palladin700 ja verstehen.
Was ich jedoch nicht mag, ist eine gar zu absolute Aussage: Windows schön - MS-DOS schlecht!
Dabei wird vergessen, dass bis Windows 98/Me MS-DOS die Grundlage war. Ohne MS-DOS funktionierte auch Windows nicht. Erst seit Windows XP spricht man ja wirklich vom "Betriebssystem Windows".

Ich vermute, dass die "heutige Jugend" sich auch nicht vorstellen kann, dass ein PC nícht nur nach CPU-Takt und Hauptspeichergröße, sondern auch nach der Anzahl(!) der darstellbaren Farben eingestuft wurde.

@Martok: Ach ja, die Lemminge. Das waren noch Zeiten. :roll:
Kennt jemand von Euch eine legale Quelle, wo man eine ordentliche "moderne" Version der Lemminge herbekommen kann. Der Download von Computer-Blöd ist so grottig, dass man die Finger davon lassen sollte.

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 26.11.12 12:50 
Moin!

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Erst seit Windows XP spricht man ja wirklich vom "Betriebssystem Windows".
Naja, wenn wir genau sein wollen, dann war das Windows 2000. :nixweiss:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mo 26.11.12 12:58 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Naja, wenn wir genau sein wollen, dann war das Windows 2000. :nixweiss:

Richtig, mein Fehler.
Windows Me und Windows 2000 = NT 5 waren ja verschiedene Entwicklungslinien. Richtig hätte ich sagen sollen: Ab Windows NT liegt ein eigenständiges Betriebssystem vor.

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
smt
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 45



BeitragVerfasst: Mo 26.11.12 12:58 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Moin!

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Erst seit Windows XP spricht man ja wirklich vom "Betriebssystem Windows".
Naja, wenn wir genau sein wollen, dann war das Windows 2000. :nixweiss:

cu
Narses


Auch nicht wirklich.

Es gab die Windows 1.0 bis ME Schiene, die allesamt auf MS-DOS aufsetzte.
Und dann gab es OS/2, welches von IBM und MS entwickelt wurde. IBM sollte OS2 1.0 / 2.0 entwickeln, MS OS2 3.0 - daraus wurde bekanntermassen nichts und MS entwickelte darauf hin Windows NT 3.0 - welches als erstes ein echtes neues Betriebsystem ohne DOS-Aufsatz war. Dann kann NT 3.5 / 3.51, welche auch schon sehr gut und stabil waren. Die Version Windows NT 4.0 wird heute sogar teilweise noch eingesetzt (bei Banken und sowas - ähnlich wie OS2 auch). Die grosse Masser der User kam aber erst mit Windows 2000 und XP

Sascha
papa69
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 79
Erhaltene Danke: 23

Win 10, Ubuntu
C#, Java, C
BeitragVerfasst: Mo 26.11.12 13:07 
...jedenfalls konnte man sich ganz (gaaaaaaaaaanz) einfachfür jedes Programm eine eigene autoexec.bat und/oder config.sys zusammenschreiben...und diese dann in der Start-Dirkette speichern, sodass man jederzeit die optimale Umgebung für dieses Programm zur Verfügung hatte

Vor QBasic gab es dann ja noch GW-Basic, und dass passte zusammen mit dem ganzen DOS auf eine einzige 720kB-Diskette (oder hatten die schon 1,44 MB ??).
Im Keller habe ich noch ca. 200 Diskette....ähem, leider habe ich kein Disketten-LW mehr am PC/Notebook.

@Palladin: als Alternative könntest du ja auch eine autoexec.bat nehmen...

_________________
Daniel Bauer
... fatal ist nur, wenn sich das Licht am Ende des Tunnels als entgegenkommender ICE entpuppt ...
Palladin007 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Mo 26.11.12 18:48 
Mal anders gefragt:
Kennt irgendwer in der heutigen Jugend diese Unterschiede?
Ich mein, ich wurde ja schon als verrückt bezeichnet, weil ich Spaß daran finde, ein bisschen mit Java zu programmieren. O.o
Es versteht einfach keiner und die, die es verstehen, wollen es nicht verstehen, weil jemand, der sowas in der Jugend macht, gleich als Nerd abgestempelt wird.
Finde ich eigentlich ziemlich bescheuert, weil ich persönlich alles Andere als ein langweiliger Nerd bin, aber dennoch Spaß am Programmieren finde.


Naja, auf jeden Fall soll ich halt drei Bilder erschaffen, in denen alle das Windows-Logo enthalten ist und die alle die Thematik Windows, dessen Bedeutung, etc. auf eine andere Weise darstellt.
Als eine Interpretations-Möglichkeit vom Windows-Logo hab ich irgendwo gelesen, dass das Logo als Fenster gesehen wird.
Ursprünglich wollte ich nur das "Fenster" in einen einfachen schlichen Raum packen, aber das wäre zu wenig, also habe ich überlegt, was den Unterschied gut sichtbar machen würde. Wenn ich den Hintergrund also auf diese Weise gestalte, würde das jeder Trottel verstehen.

Hat denn jemand eine bessere, korrekte Darstellungsweise, die ich anstelle meiner Idee verwenden kann?
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Mo 26.11.12 19:24 
Reicht so was nicht aus ?
Einloggen, um Attachments anzusehen!
_________________
Gruß
Hansa